2016-06-17 9 views
0

SmartOS 영역에는 영역 패키지에 정의 된 경량 프로세스의 최대 개수 또는 최대 개수가 있습니다. 현재 설정이 의미가 있는지 확인하려면 시간 경과에 따른 전체 경량 프로세스 수를 수집하고 싶습니다 (영역 내에서). 이미 kstat 카운터를 수집 할 수있는 도구가 있으므로 사용하는 것을 선호합니다. 나는 prstat가 lwps 카운트와 prstat가이 값을 얻는 것이 도움이 될 수있는 방법에 대한 정보를 제공합니다.kstat, 영역에서 실행중인 경량 프로세스 수 얻기

그동안 나는 'caps:*:nprocs_zone_*:usage' 또는 'unix:0:system_misc:nproc'을 사용하여 프로세스 수를 가져올 수 있었지만 경량 프로세스는 고려하지 않았습니다.

업을 요약하면, 내가 알고 싶습니다 :

  • 를 LWP를 또는 I는이 값을 얻기 위해 요약 할 수 프로세스 카운터 당 총 수를 나타내는 임의의 kstat 카운터가있는 경우.
  • 그렇지 않은 경우, prstat가 총 lwps 수를 얻는 방법은 무엇입니까?
  • 이 값을 얻는 다른 방법이 있습니까?

답변

0

prstat의이 정보에 대한/프록 파일 시스템에 질의한다 (희망 prstat의 출력을 분석하지 않고)와, prstat의 명령 프로그램에 대해 트러스 실행의 예 :

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

PROC 잘 대안 "로 검색 here을 문서화 오라클 맨 페이지 섹션 4 파일 형식 proc "를 참조하십시오.

각/proc/[pid] 디렉토리에는/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가 무엇 읽고 다시 제시 할 동일한 프로세스에 대해 PS 실행이 특정 PID는 FMD 서비스에 관한 것이다.

[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 }' 

영역의 LWP에 대한 세부 정보를 얻으려면 zlogin -c를 실행하십시오. 아마도 dtrace를 사용하여 동일한 정보를 얻을 수 있지만이 작업을 수행하는 방법을 알지 못합니다.

[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 :

당신이 LWP 정보 더 깊이 탐구 할해야 ... 당신이 밖으로 찾을 수 있어야 당신의 결과로 다시 게시는 -ll 스위치는 예를 들어 LWP를에 대한 자세한 정보를 제공합니다.