저는 최근에 성능 문제를 조사하기 위해 prstat와 prstat -ma lot을 사용 해왔고, 기본적으로 샘플링과 마이크로 상태 계산의 차이를 이해했다고 생각합니다. 솔라리스 10. 그래서 나는 항상 정확히 같은 숫자를 보여주기를 기대하지 않습니다.Solaris에서 prstat과 'prstat -m'의 차이점 해석하기
오늘 나는 2가 너무 크게 다른 결과를 보인 상황에 직면했으며, 나는 그것을 해석하고 결과를 이해하는 데 문제가있었습니다. 이 머신은 다수의 대규모 WebSphere 프로세스와 Oracle 데이터베이스가있는로드가 많은 8-CPU Solaris 10입니다. 이 시스템은 실제로 약 15 분 동안 중단되었습니다 (부하 평균은> 700). 나는 prstat 정보를 얻는 데 어려움을 겪었지만 "prtstat 1 1"과 "prtstat -m 1 1"의 결과물을 하나씩 얻을 수있었습니다. 출력의
상단 라인 :
prstat의 1 : 1 (몇 초 후에)
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 8379 was 3208M 2773M cpu5 60 0 5:29:13 19% java/145 7123 was 3159M 2756M run 59 0 5:26:45 7.7% java/109 5855 app1 1132M 26M cpu2 60 0 0:01:01 7.7% java/18 16503 monitor 494M 286M run 59 19 1:01:08 7.1% java/106 7112 oracle 15G 15G run 59 0 0:00:10 4.5% oracle/1 7124 oracle 15G 15G cpu3 60 0 0:00:10 4.5% oracle/1 7087 app1 15G 15G run 58 0 0:00:09 4.0% oracle/1 7155 oracle 96M 6336K cpu1 60 0 0:00:07 3.6% oracle/1 ... Total: 495 processes, 4581 lwps, load averages: 74.79, 35.35, 23.8
prstat의 -m 1
PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/NLWP 7087 app1 0.1 56 0.0 0.2 0.4 0.0 13 30 96 2 33 0 oracle/1 7153 oracle 0.1 53 0.0 3.2 1.1 0.0 1.0 42 82 0 14 0 oracle/1 7124 oracle 0.1 47 0.0 0.2 0.2 0.0 0.0 52 77 2 16 0 oracle/1 7112 oracle 0.1 47 0.0 0.4 0.1 0.0 0.0 52 79 1 16 0 oracle/1 7259 oracle 0.1 45 9.4 0.0 0.3 0.0 0.1 45 71 2 32 0 oracle/1 7155 oracle 0.0 42 11 0.0 0.5 0.0 0.1 46 90 1 9 0 oracle/1 7261 oracle 0.0 37 9.5 0.0 0.3 0.0 0.0 53 61 1 17 0 oracle/1 7284 oracle 0.0 32 5.9 0.0 0.2 0.0 0.1 62 53 1 21 0 oracle/1 ... Total: 497 processes, 4576 lwps, load averages: 88.86, 39.93, 25.51
I 매우 곤란 해석을 출력. prstat은 정상적인 상황에서 기대하는 것처럼 Java 처리의 상당 부분이 일부 오라클과 함께 진행되고 있다고합니다. prtstat -m은 엄청난 양의 시스템 시간을 소비하는 오라클이 전적으로 지배적 인 시스템을 보여 주며 전반적인 CPU에 과부하가 걸렸습니다 (LAT가 많음).
나는이 시간 동안 시스템이 느낀 것과 밀접한 관련이 있기 때문에 prstat -m의 출력을 믿고 싶어합니다. 완전히 부진하고 WebSphere에서 계속 진행되는 사용자 요청 처리가 거의 필요하지 않습니다.하지만 prstat는 왜 다른 수치를 보여 줍니까?
모든 설명은 환영합니다!
CU, 조
감사합니다. 완벽하게 설명합니다. 그 동안 우리는 prstat -Lm, plockstat 및 dtrace를 사용하여 모니터링을 시작했지만 동일한 상황은 더 이상 없었습니다. 그래서 우리는 아직도 정확히 무슨 일이 일어 났는지 모른다. – jammann