2013-07-09 5 views
1

Я хотел бы контролировать следующую системную информацию в моем решении ASP.NET:Как контролировать компьютер, память и использование диска в ASP.NET?

  • текущее использование процессора (в процентах)
  • доступной памяти * (свободно/всего)
  • свободного места на диске (бесплатно/общие)

* обратите внимание, что я имею в виду общую памяти, доступную для всей системы

Я попытался с окнами PerfMon (бег -> perfmon.msc), но похоже, это не то, что я ищу. Мне нужно что-то, что может сказать мне нагрузку на ресурсы для каждой функции или метода, вызванного в моем приложении.

Любые предложения очень ценятся.

EDIT: Может быть, это может быть полезно знать, как контролировать, с PerfMon, время% Процесс cosumed одним процессом (istance w3wp для)

EDIT EDIT: Я нашел его! Добавить новый счетчик -> Процесс ->% время процессора на w3wp! THANKS

ответ

0

Perfomance counters - мой совет. Проверьте Setting up performance counters for ASP.NET

Помимо счетчиков производительности, если вы действительно хотите получить «внутри» взгляд на свой код, то вы можете попробовать профайлер памяти, например, следующее:

+0

Я прочитал вашу статью. CAn вы поможете мне понять, как связать «% процессорного времени» или другие счетчики с приложением, которое я запускаю. – parentissimo

+0

Ты загрузил 'PerfMon'? –

+0

Я пытаюсь сейчас с настройками, предложенными в статье – parentissimo

0

Перфо rmance Counter - это выбор, если вы хотите его профилировать свое приложение.

Однако, если вы хотите, чтобы это была информация о системе общего назначения, вы можете захотеть взглянуть на WMI. Вот пример, который я ранее использовал для получения диска информация:

Примечание: Вам нужно будет ссылка на System.Management

Dim scope As ManagementScope = New ManagementScope("\\.\root\CIMV2") 
scope.Options.Impersonation = ImpersonationLevel.Impersonate 
scope.Options.EnablePrivileges = True 

Dim wmiQuery = "SELECT SystemName, Name, VolumeName, Size, FreeSpace FROM Win32_LogicalDisk WHERE DriveType = 3 " 
Dim query As ObjectQuery = New ObjectQuery(wmiQuery) 
Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher(scope, query) 

Dim result As New List(Of MyDrive) 
For Each systemDrive As ManagementObject In searcher.Get 
    Dim diskDrive = New MyDrive 
    diskDrive.SystemName = systemDrive("SystemName").ToString 
    diskDrive.Name = systemDrive("Name").ToString 
    diskDrive.Size = CDec(systemDrive("Size"))/1073741824 
    diskDrive.FreeSpace = CDec(systemDrive("FreeSpace"))/1073741824 
    diskDrive.VolumeName = systemDrive("VolumeName").ToString 
    result.Add(diskDrive) 
Next 

Public Class MyDrive 
    Public Property SystemName As String 
    Public Property Name As String 
    Public Property VolumeName As String 
    Public Property Size As Decimal 
    Public Property FreeSpace As Decimal 
    Public ReadOnly Property PercentFree As Decimal 
     Get 
      Dim percent As Decimal = 0 
      If Size > 0 Then percent = FreeSpace/Size 
      Return percent 
     End Get 
    End Property 
End Class 

Обратите внимание, что я разделил дисковое пространство, чтобы преобразовать его в GB ,

 Смежные вопросы

  • Нет связанных вопросов^_^