Oracle Solaris 에서 의 성능 및 조정 안내 (2)
3. 성능 병목 찾기
일단 해결 해 야 할 성능 문 제 를 정의 했다 면 다음 단 계 는 병목 이 발생 하 는 곳 으로 범 위 를 좁 히 는 것 이다.
이 단 계 는 이런 질문 을 할 필요 가 있다.
응용 프로그램 은 나 에 게 그것 이 어떤 것 이 병목 인지 알려 줄 수 있 습 니까?Oracle 을 예 로 들 면 Oracle 데이터베이스 관리 자 는 BSTAT / ESTATS 가 무엇 인지, 어떻게 실행 하고 이해 하 는 지 알 아야 한다.아니면 그 말 인지 응용 프로그램의 측면 에서 볼 때 BSTATS / ESTATS 는 Oralce 의 성능 을 제한 하 는 병목 을 나 타 낼 수 있 는데 이것 은 진일보 한 분석 을 위 한 지도 가 될 수 있다.
대부분의 시간 은 어디 에 쓰 입 니까? 커 널 입 니까? 사용자 프로 세 스 입 니까?vmstat, mpstat, sar, ps, prstat 를 통 해 이 질문 에 대답 할 수 있 습 니 다.
비슷 한 유형의 모든 자원 이 똑 같이 바 쁘 지 않 습 니까?이 문제 의 의 의 는 자원 의 불평 등 분 포 를 찾 는 데 있다.예 를 들 어 하나의 디스크 가 병목 이 있 거나 다른 CPU 보다 CPU 가 더 바 쁠 수 있 습 니 다.CPU디스크 에 iostat 를 사용 합 니 다.어떤 프로 세 스 가 가장 많은 자원 을 사용 하고 있 습 니까?이 명령 을 사용 하면 CPU 와 메모 리 를 가장 많이 사용 하 는 프로 세 스 를 볼 수 있 습 니 다.
ps -eo pid,pcpu,args | sort +1n
CPU 백분율:
ps -eo pid,vsz,args | sort +1n
K 바이트 의 가상 메모리:
/usr/ucb/ps aux |more
출력 이 정렬 되 었 습 니 다. CPU 와 메모 리 를 가장 많이 사용 하 는 프로 세 스 가 위 에 있 습 니 다.
Solaris 8 작업 환경 은 CPU 와 메모리 사용 상황 에 대한 동적 주 해 를 제공 합 니 다.prstat - cvm 의 출력 결 과 는 매우 유용 합 니 다.
흔히 볼 수 있 는 Solaris 명령 으로 성능 분석 을 시작 하 는 방법 을 살 펴 보 자.
vmstat 명령 은 간단 합 니 다.실행 중인 프로그램 에 CPU 능력 이 부족 한 예 를 볼 수 있 습 니 다.
% vmstat 15
procs memory page disk faults cpu
r b w swap free re mf pi po fr de sr m0 m1 m2 m3 in sy cs us sy id
45 0 0 2887216 182104 3 707 449 6 455 0 80 2 6 1 0 1531 5797 983 61 30 9
58 0 0 2831312 46408 5 983 582 56 3211 0 492 0 0 0 0 1413 4797 1027 69 31 0
55 0 0 2830944 56064 2 649 656 3 806 0 121 0 0 0 0 1441 4627 989 69 31 0
57 0 0 2827704 48760 4 818 723 6 800 0 121 0 0 1 0 1606 4316 1160 66 34 0
56 0 0 2824712 47512 6 857 604 56 1736 0 261 0 0 1 0 1584 4939 1086 68 32 0
58 0 0 2813400 47056 7 856 673 33 2374 0 355 0 0 0 0 1676 5112 1114 70 30 0
60 1 0 2816712 49464 7 861 720 6 731 0 110 7 0 3 0 2329 6131 1067 64 36 0
58 0 0 2817552 48392 4 585 521 0 996 0 146 0 0 0 0 1357 6724 1059 71 29 0
vmstat 출력의 첫 줄 은 항상 무시 할 수 있 습 니 다."procs" 아래 에 "r" 라 고 표 시 된 열 은 CPU 를 가 져 오 기 를 기다 리 는 프로 세 스 실행 대기 열 에 있 는 프로 세 스 수 입 니 다."id" 열 은 CPU 의 남 은 시간 입 니 다.이 기 계 는 프로 세 스 가 실행 되 는 수 요 를 만족 시 키 기 위해 충분 한 CPU 자원 이 없습니다. 대부분의 CPU 시간 을 사용자 공간 에서 볼 수 있 습 니 다 ("us" 열 참조).
여기 에는 두 가지 방법 이 있 습 니 다. 첫째, 더 많은 CPU 를 추가 하거나 둘째, 응용 프로그램의 코드 를 성능 분석 하여 응용 프로그램의 특정한 부분 이 최적화 되 는 지 확인 할 수 있 습 니 다.코드 세 션 을 최적화 하 는 데 는 많은 노력 이 필요 할 수도 있 고, 때로는 효과 가 적 을 수도 있다.시간 이 걸 릴 때 가능 한 '투자 수익' 을 고려 할 때 현실 적 으로 생각 하 는 것 이 좋다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 작업 은 Clob 또는 NClob 데이터 형식의 저장 프로 세 스 인 스 턴 스 를 포함 합 니 다.텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.