2010-08-20 5 views
1

나는 모든 프로세스의 목록을 원하지 않습니다. Windows에서 taskmanager와 같은 총 비율을 원합니다.WMI 또는 T-SQL을 통해 총 CPU 수를 얻으십시오.

나는이 정보를 coldfusion을 통해 사용할 것이지만, 현재 모든 CPU 사용량을 찾기 위해 모든 종류의 문제가 발생합니다.

wmi 또는 t-sql에서 오는 것이 신경 쓰이지 않습니다. 아약스를 통해 현재 사용중인 CPU 사용률을 보여주는 게이지 차트를 채우기 위해 사용할 전체 숫자를 원합니다. 그것이 내가 설정 전체 CPU를 측정하는 문제의 컴퓨터의 성능 모니터 카운터를 것 저라면

+0

http://crosenblum.pastebin.com/sTjwsmck 내가 그 WMI의 CFC를 통해 WMI를 조회하는 방법이있다 쿼리 기능 : <의 cfparam 이름 = "이 cpu_usage"기본 = 0> ,515, \t \t \t ] .PercentPrivilegedTime /> \t crosenblum

답변

2

Win32_PerfRawData_PerfOS_Processor WMI 클래스를 사용하면이 정보를 얻을 수 있습니다. 귀하의 문의에서 Win32_PerfFormattedData_PerfOS_Processor.Name='_Total'을 사용하십시오. 이 article에서 샘플 vbscirpt 코드뿐 아니라 WMI 사용에 대한 자세한 내용은 ColdFusion and WMI 문서를 참조하십시오.

+0

taskmanager와 비슷한 총 CPU 사용량을 얻기 위해 사용해야하는 카운터는 무엇입니까? PercentUserTime 또는 PercentPrivaledgedTime 등 – crosenblum

+0

총 CPU 사용량을 원하면 PercentProcessorTime 및 TimeStamp_Sys100NS가 필요합니다. 두 번째 문서에는 이러한 값을 사용하여 VBscript에서 비율 (albiet)을 계산하는 방법을 보여주는 샘플 코드가 있습니다. – Garett

+0

내가 돌아 오는 값은 TimeSpan_Sys100NS가 항상 비어 있거나 비어 있습니다. 그래서 그 수식이 작동하지 않습니다. Vista에서 사용하기 위해이 기능을 조정해야합니까? – crosenblum

2

... 감사합니다. 이것은 몇 초마다 CSV 파일에 쓰도록 구성 할 수 있습니다.

그런 다음 파일을 매 분마다 데이터베이스에 쓰고 CF가 시간 경과에 따른 그래프를 볼 수 있도록 해당 데이터를 읽도록 할 수 있습니다. 또는 가장 최근의 값이 필요한 경우 CF를 가져 와서 CSV 파일의 마지막 값을 읽고이를 게이지에 사용하십시오.

개인적으로 모든 웹 서버의 모든 데이터를 데이터베이스에 저장하므로 시간이 지남에 따라 성능을 확인하고 사용량이 많거나 문제가 발생한 기간에 대한 보고서를 실행할 수 있습니다. 우리에게 위대한 작품.

희망 하시겠습니까?

0

이 다른 사람이의 대답하지만, T-SQL, 당신은이를 사용할 수 있습니다

DECLARE @ts_now BIGINT 
    SELECT @ts_now = cpu_ticks/CONVERT(FLOAT, ms_ticks) FROM sys.dm_os_sys_info 

    SELECT top 1 record_id, 
      DATEADD(ms, -1 * (@ts_now - [timestamp]), GETDATE()) AS EventTime, 
      SQLProcessUtilization, 
      SystemIdle, 
      100 - SystemIdle - SQLProcessUtilization AS OtherProcessUtilization, 
      100 - SystemIdle AS TotalCPU 
    FROM (
      SELECT 
        record.value('(./Record/@id)[1]', 'int') AS record_id, 
        record.value('(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]', 'int') AS SystemIdle, 
        record.value('(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]', 'int') AS SQLProcessUtilization, 
        TIMESTAMP 
      FROM (
        SELECT TIMESTAMP, CONVERT(XML, record) AS record 
        FROM sys.dm_os_ring_buffers 
        WHERE ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR' 
        AND record LIKE '% %') AS x 
      ) AS y 
    ORDER BY record_id DESC 
관련 문제