2016-06-17 6 views
0

Зоны SmartOS имеют колпачок или максимальное количество легких процессов, определенных в пакете зоны. Чтобы проверить, имеют ли мои текущие настройки смысл, я хотел бы собирать общее количество легких процессов с течением времени (изнутри зоны). У меня уже есть инструменты для сбора счетчиков kstat, поэтому я бы предпочел использовать его. Я заметил, что prstat предоставляет счет lwps, и любая информация о том, как prstat получит это значение, может быть полезна.kstat, получение количества легких процессов, работающих в зоне

В то же время мне удалось получить количество процессов, используя 'caps:*:nprocs_zone_*:usage' или 'unix:0:system_misc:nproc', но ничего относительно легких процессов.

Подводя вверх, я хотел бы знать:

  • если есть kstat счетчик, представляющий общее количество LWP, или за процессы счетчиков, которые я мог бы подвести, чтобы получить это значение.
  • если нет, то как prstat получает общее количество lwps?
  • есть ли другой способ получить это значение? (Надеется, без разбора вывода prstat)

ответ

0

prstat это запрос/ргоса файловой системы для информации, пример запуска бандажа против команды prstat показывает:

open("/proc/25841/psinfo", O_RDONLY)   = 158 

прока хорошо документирован here, в качестве альтернативы поиска " oracle man pages section 4 File Formats proc ".

Внутри каждого/proc/[pid] dir существует каталог/proc/[pid]/lwp /. Например:

[email protected]:/proc/597/lwp# ls -l 
total 35 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 1 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 10 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 11 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 12 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 13 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 14 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 15 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 16 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 17 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 18 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 19 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 2 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 20 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 21 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 22 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 23 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 24 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 26 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 27 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 28 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 29 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 3 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 30 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 31 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 33 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 34 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 35 
dr-xr-xr-x 2 root  root   256 Jun 3 13:07 36 
dr-xr-xr-x 2 root  root   256 Jun 16 11:16 37 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 4 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 5 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 6 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 7 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 8 
dr-xr-xr-x 2 root  root   256 Jun 3 13:06 9 

Запуска п.с. против того же процесса будет читать то, что каждый LWP есть и представить его обратно, этот конкретный PID относится к службе ящура.

[email protected]:/proc/597/lwp# ps -Lp 597 
    PID LWP LNAME   TTY  LTIME CMD 
    597  1 -    ?   0:00 fmd 
    597  2 fmd_timerq_exec ?   0:04 fmd 
    597  3 fmd-self-diagnosis ?   0:00 fmd 
    597  4 sysevent-transport ?   0:00 fmd 
    597  5 door_xcreate_startf ?   0:00 fmd 
    597  6 door_xcreate_startf ?   0:00 fmd 
    597  7 subscriber_event_handler ?   0:01 fmd 
    597  8 fmd_door_server ?   0:00 fmd 
    597  9 fmd_thread_start ?   0:00 fmd 
    597 10 cpumem-retire ?   0:00 fmd 
    597 11 ses-log-transport ?   0:04 fmd 
    597 12 ext-event-transport ?   0:00 fmd 
    597 13 door_xcreate_startf ?   0:00 fmd 
    597 14 door_xcreate_startf ?   0:00 fmd 
    597 15 sas-cabling  ?   0:01 fmd 
    597 16 io-retire  ?   0:00 fmd 
    597 17 eft    ?   0:00 fmd 
    597 18 endurance-transport ?   0:00 fmd 
    597 19 fdd-msg   ?   0:00 fmd 
    597 20 disk-transport ?   0:00 fmd 
    597 21 sensor-transport ?   0:04 fmd 
    597 22 -    ?   0:00 <defunct> 
    597 23 syslog-msgs  ?   0:00 fmd 
    597 24 disk-diagnosis ?   0:00 fmd 
    597 26 zfs-retire  ?   0:00 fmd 
    597 27 fru-monitor  ?   0:02 fmd 
    597 28 -    ?   0:00 fmd 
    597 29 software-response ?   0:00 fmd 
    597 30 enum-transport ?   0:00 fmd 
    597 31 non-serviceable ?   0:00 fmd 
    597 33 fabric-xlate  ?   0:00 fmd 
    597 34 software-diagnosis ?   0:00 fmd 
    597 35 zfs-diagnosis ?   0:00 fmd 
    597 36 umem_update_thread ?   0:06 fmd 
    597 37 fmd_door_server ?   0:00 fmd 

Следующая команда должна проанализировать общие LWP для вас.

prstat -n 1,1 1 1 | nawk '/Total/ { print $4 }' 

Запуск с zlogin -c для получения информации о LWP в зонах. Вероятно, вы можете получить такую ​​же информацию с dtrace, но я не знаю, как это сделать. Сообщение обратно с выводами вы должны узнать ...

Если вы хотите углубиться в LWP информации, то -lL переключатели обеспечивают подробную информацию о LWP,, например:

[email protected]:/etc# ps -lLp 597 
F S UID PID PPID LWP LNAME    C PRI NI  ADDR  SZ WCHAN TTY  LTIME CMD 
0 S  0 597  1  1 -     0 40 20  ? 25470  ? ?   0:00 fmd 
0 S  0 597  1  2 fmd_timerq_exec 0 40 20  ? 25470  ? ?   0:04 fmd 
0 S  0 597  1  3 fmd-self-diagnosis 0 40 20  ? 25470  ? ?   0:00 fmd 
0 S  0 597  1  4 sysevent-transport 0 40 20  ? 25470  ? ?   0:00 fmd 
0 S  0 597  1  5 door_xcreate_startf 0 40 20  ? 25470  ? ?   0:00 fmd 
0 S  0 597  1  6 door_xcreate_startf 0 40 20  ? 25470  ? ?   0:00 fmd 
0 S  0 597  1  7 subscriber_event_handler 0 40 20  ? 25470  ? ?   0:01 fmd 

HTH.