Найти - Пользователи
Полная версия: Процесс, нагрузка на ЦП
Начало » Python для новичков » Процесс, нагрузка на ЦП
1 2
Soteric
Я тут еще подумал. Возможно оптимальнее будет проверять общую нагрузку перед тем как начинать перебирать процессы. Потому что если на хосте все в порядке, то этот перебор уже смысла не имеет.
sanodin
Логично…, переделаю…спасибо
sanodin
Интересно, какой в основном процессор нагружается первым в списке, заметил что первый, наверно его и буду мониторить…хотя сегодня на работе тоже двухядерный сегодня проверял , там нагружается в основном второй по списку…
'''
config.ini
[connect]
process = iron.exe
cpu = 75
'''
import time
import psutil
import win32com.client
import subprocess
wmi=win32com.client.GetObject('winmgmts:')
def loadConfig():
    import ConfigParser
    config = ConfigParser.ConfigParser()
    config.read('config.ini')
    process = config.get('connect', 'process')
    cpu = config.get('connect', 'cpu')
    return {'process':process,'cpu':cpu}
config = loadConfig()
print config['process']
proc_n = config['process']
numb = int(config['cpu'])
while True:
    cp = psutil.cpu_percent(interval=1, percpu=True)
    print cp
    if cp[0] > numb or cp[1] > numb:
        for p in wmi.InstancesOf('win32_process'):
            try:
                res = p.Properties_('ProcessId')
                f = psutil.Process(int(res))
                if p.Name == proc_n:
                    print  p.Name,res , f.get_cpu_percent()
                    if f.get_cpu_percent() > numb:
                        time.sleep(2)
                        if f.get_cpu_percent() > numb:
                            subprocess.Popen('taskkill /PID %d /T /f' % int(res), shell = True)
                #print p.Name, p.Properties_('ProcessId')
            except Exception as e:
                print e.message
    
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB