In my server I have a SQL process that consumes CPU (~10%) but no one is using the server.
There are many background tasks that run, regardless of user activity inside of SQL Server. The key is to understand if 10% CPU is abnormal.
I have 2 virtual processors.
You have 2 processors, 10% cpu is not a problem. The system, idling, is probably going to use that just due to the low processor count. I honestly don't see a problem here.
I think there is a problem because we can see this when no one is using the server.
Again, this doesn't seem to be abnormal for the small environment. The background tasks in SQL Server along with OS tasks can easily make the system "idle" at 10% with 2 virtual processors.
I understand but we have other instances where this never happens. With this one, this does not always happen, for example if you do a restart, this is no longer true, but other times it stays that way.
We have no idea what the others instances look like, are they all 2-virtual cores? Same host? Same memory? Same workload pattern? Same databases? etc.
I'm all for getting to the bottom of things and figuring it out but honestly the pay-off just isn't worth it. I'm not saying you can' investigate further, I'm pointing out that this site would not be the best place for an ongoing triage of ~10% cpu on a 2-core virtual server which may or may not be all contained inside of SQL Server.