Home » Форум

Форум

tasklist, консольна...
 

tasklist, консольная утилита для скриптов мониторинга использования памяти Windows  

 

Shkiper
(@shkiper)
Active Member
Присоединился: 4 недели назад
Сообщения: 15
22.08.2019 11:07  

это, опять же для начинающих, тухлыми помидорами просьба не кидать, для "молодых специалистов" это будет очень полезная тема

как-то так получается, что со скриптами в линуксе попроще (да и вообще по проще :) )

а при работе с Windows возникают некоторые нюансы, например когда надо разобраться - кто кушает  память!?

открываем диспетчер задач и видим, что кушает ее процесс svchost.exe, который запущен раз 15, и это есть 15 отдельных служб

выяснить что к чему, какой процесс чем является можно конечно с помощью замечательной программы "process explorer"

а как это передать в скрипт?

если есть потребность мониторить какая служба сколько ест например или типа того

при недостатке памяти выдать список процессов или служб потребляющих больше 100 МБ например

в общем нужна консольная утилита вывод которой пригоден для дальнейшей обработки, для этого есть замечательная программа tasklist, вот несколько примеров

список всех процессов svchost.exe:

tasklist /fi "imagename eq svchost.exe" 

список всех служб использующих образ svchost.exe:

tasklist /svc /fi "imagename eq svchost.exe"

список всех процессов, использующих памяти больше 10000 КБ:

tasklist /fi "memusage gt 10000"

список всех процессов, использующих памяти больше 10000 КБ с указанием служб на них запущенных:

tasklist /svc /fi "memusage gt 10000"

список процессов svchost.exe пользующих памяти больше 10000 КБ:

tasklist /fi "imagename eq svchost.exe" /fi "memusage gt 10000"

список процессов svchost.exe пользующих памяти больше 10000 КБ, с указанием служб на них запущенных:

tasklist /svc /fi "imagename eq svchost.exe" /fi "memusage gt 10000"

список служб содержащих в названии слово начинающееся на "net" и занимающих более 10000 КБ памяти:

tasklist /svc /fi "services eq net*" /fi "memusage gt 10000"


Цитата
Zerox
(@zerox)
Reputable Member Admin
Присоединился: 6 лет назад
Сообщения: 384
22.08.2019 11:20  

Хорошие рекомендации. А есть какие-то наработки на эту же тему в линуксе? Мне, к примеру, всегда хотелось как-то реализовать мониторинг основных потребителей ресурсов сервера. К примеру, мониторится нагрузка процессора или памяти. Срабатывает триггер на 30 минут, что процессор сильно нагружен, потом проходит нагрузка. Постфактум уже невозможно проанализировать, что было на сервере. Ты на него заходишь, а там все ок. 

Есть идея сделать как-то анализ запущенных процессов при сработке какого-то триггера. В целом, задача понятная и не сказать, что сильно сложная, но у меня никогда не доходят руки собраться и все сделать красиво и удобно. 

Первое, что приходит в голову, это запускать скрипт по триггеру, который соберет инфу о процессах. Но дальше идут вопросы, куда вывод скрипта направлять? В почту? Не очень удобно, хочется тоже в мониторинг, или желательно в то же письмо, что и уведомление триггера. Тут возникает следующий вопрос. Как их удобно передать и оформить? В каком виде, в какой итем и вообще, как это сделать чисто организационно? Много вопросов, задача не такая простая, как кажется на первый взгляд. 


ОтветитьЦитата
STALKER_SLX
(@stalker_slx)
Estimable Member
Присоединился: 10 месяцев назад
Сообщения: 122
26.08.2019 21:15  

@shkiper

Спасибо за интересные подходы по мониторингу Windows!

Как отметил выше Вам @zerox очень хотелось бы увидеть, что-то подобное и для Linux :)


ОтветитьЦитата
Shkiper
(@shkiper)
Active Member
Присоединился: 4 недели назад
Сообщения: 15
28.08.2019 11:54  

честно говоря вопрос на счет "такое же для линукc" меня озадачил, так сложилось что у меня больше 20-и виртуалок на линуксе и несколько серверов, и в принципе под каждую задачу свой сервер и если сервер переклинит, то виновник как-бы сразу ясен, кроме апача или mysql (смотря какой сервер), это делать некому :)

и все сервера дублированы, а базы данных реплицируются, т.е. выход из строя сервера это конечно печально, но не критично

и еще так сложилось, что в отделе постоянно кто-то сидит из отдела разработки, и ему сразу (им всем :) ) вылетает тригер в джабере, т.е. если что-то начинает виснуть, то это сразу становиться известно

под виндовс сервер один - под 1С :), и традиционно сервера на виндовс более критичны к отказам, их меньше, они дороже

и на виндовс сервере более вероятна ситуация что там что-то начнет есть память и не сразу разберешь - что это

поэтому вопрос - практическая потребность в обработке таких ситуаций на линуксе действительно есть?


ОтветитьЦитата
Shkiper
(@shkiper)
Active Member
Присоединился: 4 недели назад
Сообщения: 15
28.08.2019 12:09  

tasklist это аналог линуксового ps, например команда:

ps -auxf

выведет список всех процессов и потреблеямых ими процессора и памяти

только отслеживать это в момент сработки тригера может быть поздновато и может быть имеет смысл обратить внимание на процесс когда он начинает себя "нехорошо вести"?

тем более, что при разборе подобных инциндентов часто возникает вопрос, когда это началось?

так что может быть имеет смысл создать LLD с помощью ps, чтоб оно "подхватывало" в качестве отслеживаемых объектов те процессы которые только начинают занимать процессор и память, а в прототипах элементов данных уже прописать нужные триггеры?

 


ОтветитьЦитата
Share:

Пожалуйста, Вход или Зарегистрироваться