swinger22
asked on
SBSMONITORING CPU constant CPU usage
Hi Folks,
I am running a few SBS boxes at different clients. And we recently setup a client with a new system with SBS 2008. The issue currently is that the SBSMONITORING service and along with it SQLSERVR.exe is using up a bit of the CPU. The server is a quad-core xeon with 4 gigs of ram. I know 4 gigs is the minimum but the ram doesn't seem to be the issue. the sql process was using up about 300 MB of ram and keeping the cpu at a constant 24-26% usage. I lowered the maximum ram usage of the database to 100 MB, and that is working fine now. The cpu usage lowered with that as well, but it is still using 5-10% CPU when running. If I disable the service CPU goes to 0 until something is used, and things are nice and speedy. Once enabled CPU goes back up and sluggish.
Other SBS 2008 servers we are running, including a test box with less than 4 gigs of RAM, do not show this symptom at all. Just wondering if someone can point me in the right direction. I also found a few things online about reinstalling the monitoring, but those articles were geared towards SBS 2003. Just wondering if that is an option and how to do that in 08.
Thanks,
I am running a few SBS boxes at different clients. And we recently setup a client with a new system with SBS 2008. The issue currently is that the SBSMONITORING service and along with it SQLSERVR.exe is using up a bit of the CPU. The server is a quad-core xeon with 4 gigs of ram. I know 4 gigs is the minimum but the ram doesn't seem to be the issue. the sql process was using up about 300 MB of ram and keeping the cpu at a constant 24-26% usage. I lowered the maximum ram usage of the database to 100 MB, and that is working fine now. The cpu usage lowered with that as well, but it is still using 5-10% CPU when running. If I disable the service CPU goes to 0 until something is used, and things are nice and speedy. Once enabled CPU goes back up and sluggish.
Other SBS 2008 servers we are running, including a test box with less than 4 gigs of RAM, do not show this symptom at all. Just wondering if someone can point me in the right direction. I also found a few things online about reinstalling the monitoring, but those articles were geared towards SBS 2003. Just wondering if that is an option and how to do that in 08.
Thanks,
In SBS2008 you can install the (only) SQL Server on a separate server. With the high CPU usage you mentioned I believe thats probably why MS do this trick?
ASKER
yeah i noticed that, my only concern is out of a few SBS 08 servers running similar hardware and organization sizes, this is the only one with this symptom. So I don't think I would have to off load all the SQL processing just for the SBS monitoring database. there are not even any other databases outside of the standard for SBS.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Seems to me that i have the same issue. Any idea ??
My setup:
Hardware ML350 G5 with 8 GB RAM, 3x146 GB 10K SAS disk
ESXi 4.0 U2 as host
one virtual machine
CPU: 2
RAM: GB
OS: Windows 2008 SBS fully updated from windows update
When i start SBS Console, the CPU hangs at 100% for a while.
My setup:
Hardware ML350 G5 with 8 GB RAM, 3x146 GB 10K SAS disk
ESXi 4.0 U2 as host
one virtual machine
CPU: 2
RAM: GB
OS: Windows 2008 SBS fully updated from windows update
When i start SBS Console, the CPU hangs at 100% for a while.
simply for posterity sake, and anyone coming along this way in the future.......
Found this to be successful
SBSMonitoring will have a significant period of high processor usage every three minutes, using 100% of one CPU for about 30 seconds.
Investigation showed that the offending call was GetAlertsPerComputer, which does a Cross Apply with GetAlertsPerID
If you create this index to support GetAlertsPerID, the periods of 100% processor usage go away:
1. Log on as an administrator.
2. Start SQL Server Management Studio. (Express edition is fine)
3. Attach to SBSMONITORING instance (replace SERVERNAME with the name of your server):
Server Type: Database Engine
Server Name: SERVERNAME\SBSMONITORING
Authentication: Windows Authentication
4. Once connected, from the Menu, click: File -> New -> Query with Current Connection. This creates a new query window.
5. Copy the commands below into the window, then press F5 to execute.
USE SBSMONITORING
GO
CREATE NONCLUSTERED INDEX [IDX_Alerts_GetAlertsPerID ] ON [dbo].[Alerts]
(
[DefinitionID] ASC,
[ComputerID] ASC,
[DateOccured] ASC,
[IsSet] ASC,
[ID] ASC
)
GO
CREATE NONCLUSTERED INDEX [IDX_WMICollectedData_GetS ecurityPro ductPerCom puter] ON [dbo].[WMICollectedData]
(
[WMIInstanceID] ASC,
[WMIPropertyID] ASC,
[DateCollected] ASC,
[ID] ASC
)
GO
create index IDX_WMIObjectProperties_Ob jectID on WMIObjectProperties(Object ID,ID)
Go
create index IDX_WMIObjectInstances_Obj ectID on WMIObjectInstances(ObjectI D,ID)
from: http://social.technet.microsoft.com/Forums/en/smallbusinessserver/thread/d195baac-da8b-4387-9079-c55d5e1879b4
Found this to be successful
SBSMonitoring will have a significant period of high processor usage every three minutes, using 100% of one CPU for about 30 seconds.
Investigation showed that the offending call was GetAlertsPerComputer, which does a Cross Apply with GetAlertsPerID
If you create this index to support GetAlertsPerID, the periods of 100% processor usage go away:
1. Log on as an administrator.
2. Start SQL Server Management Studio. (Express edition is fine)
3. Attach to SBSMONITORING instance (replace SERVERNAME with the name of your server):
Server Type: Database Engine
Server Name: SERVERNAME\SBSMONITORING
Authentication: Windows Authentication
4. Once connected, from the Menu, click: File -> New -> Query with Current Connection. This creates a new query window.
5. Copy the commands below into the window, then press F5 to execute.
USE SBSMONITORING
GO
CREATE NONCLUSTERED INDEX [IDX_Alerts_GetAlertsPerID
(
[DefinitionID] ASC,
[ComputerID] ASC,
[DateOccured] ASC,
[IsSet] ASC,
[ID] ASC
)
GO
CREATE NONCLUSTERED INDEX [IDX_WMICollectedData_GetS
(
[WMIInstanceID] ASC,
[WMIPropertyID] ASC,
[DateCollected] ASC,
[ID] ASC
)
GO
create index IDX_WMIObjectProperties_Ob
Go
create index IDX_WMIObjectInstances_Obj
from: http://social.technet.microsoft.com/Forums/en/smallbusinessserver/thread/d195baac-da8b-4387-9079-c55d5e1879b4