답변:
프로세스 당 메모리 계산은 몇 분 안에 들어가게되는 여러 가지 이유로 까다 롭습니다. 간단한 모니터링을 위해서는 gkrellmd 또는 nagios 스크립트로 충분합니다. 더 높은 정확도를 원한다면 더 세게 봐야합니다.
smem 은 비례 세트 크기 의 개념을 소개합니다 .
실제 메모리의 많은 부분이 일반적으로 여러 응용 프로그램간에 공유되므로 RRS (Resident Set Size)라는 표준 메모리 사용량 측정 값이 메모리 사용량을 과대 평가합니다. PSS는 대신 각 응용 프로그램의 각 공유 영역에 대한 "공정한 점유율"을 측정하여 현실적인 측정 값을 제공합니다.
예 : 그놈을 시작하면 각 애플릿과 프로그램마다 하나씩 여러 프로세스가 시작됩니다. 그것들은 모두 libglib에 연결됩니다. Linux는 libglib를 하나의 메모리 블록에로드하여 libglib를 원하는 모든 프로세스에 맵핑합니다. 순진한 메모리 계정은 연결된 모든 프로세스에 대해 전체 libglib 크기를 계산합니다.
smem은 libglib의 비용을 그것을 사용하는 프로세스들 사이에서 나눠서 현실에 대한 자세한 그림을 제공합니다. 또한 웹 사이트에서 메모리 사용량을 표시하는 여러 옵션이 있습니다.
그러나 최신 커널 (> 2.6.27)이 필요합니다.
선반에서 아무것도 생각할 수 없다
그러나 ps -AH v를 실행하는 PHP 스크립트의 콤보 | awk '{print $ 8, $ 9, $ 10}' 그리고 pChart 와 함께 사용 하면 원하는 것을 수행하는 웹 페이지가 제공 될 수 있습니까? (Kb 사용량, 전체 백분율 및 프로세스 이름)
너 스스로해라. RRD 데이터베이스를 업데이트하는 간단한 쉘 스크립트를 작성하십시오. 그런 다음 rrdtool을 사용하여 그래프를 그립니다.
실제로 세부 수준이 낮다면 collectl을 잊지 마십시오. 다음은보고 할 수있는 프로세스 당 메모리 사용 유형의 예입니다.
레코드 1 cag-dl585-02 (1244758290.002) (2009 년 6 월 11 일 18:11:30) 프로세스 요약 (카운터는 / sec) # PID 사용자 S VmSize VmLck VmRSS VmData VmStk VmExe VmLib MajF MinF 명령 9089 루트 S 66856K 0 2328K 1440K 212K 736K 6812K 0 sendmail : 9097 smmsp S 57600K 0 1772K 1304K 204K 736K 5904K 0 sendmail : 9108 루트 S 6428K 0360K 180K 84K 88K 1944K 0 gpm 9120 루트 S 74808K 0 1136K 476K 520K 48K 1920K 0 crond 9173 xfs S 20904K 0 1828K 1124K 88K 104K 3084K 0 xfs
특정 프로세스에 관심이있는 경우 적절한 필터 (스레드를 표시하는 스위치 포함)를 지정할 수 있습니다.
또한 일반적으로 메모리에 관심이있는 경우 슬래브 세부 사항을 표시 할 수 있으며 vmstat 형식 출력도 있습니다. 기존 도구가 이미 그렇게 할 때 vmstat 형식으로 데이터를 표시하려는 이유는 무엇입니까? 통계를 파일에 기록하고 나중에 여러 형식으로 재생할 수 있습니다.
시도 해봐 좋아해
흠의 의 gnuplot FAQ는 말한다 파이 차트를 지원하지 않습니다 ,하지만 그들은 베른 하르트 라이터의 제안 pieChart로를 .
더 자세히 설명하지는 않았지만 collectl에는 구분 기호로 구분 된 출력을 생성하는 옵션이 있으므로 gnuplot의 경우 공백이있는 데이터를 생성하면 모든 준비가 완료됩니다. 심지어 엑셀에 멋지게로드됩니다. 쉼표를 원하면 구분 기호를 변경할 수 있고 실제로 rrd 경로를 원한다면 (그림이 데이터와 일치하지 않아도되므로주의하십시오!) 델리 미터를 콜론으로 변경하고 타임 스탬프를 UTC로 변경할 수도 있습니다. -표
kSar은 sar 데이터를 기반으로하지만 Java를 기반으로하므로 어느 정도 플랫폼 독립적이며 데이터를 가져 오기 위해 원격 호스트에 ssh 할 수 있습니다.
phpsysinfo가 프로세스 정보를 어떻게 든 볼 수있는 능력을 제공 하지 않습니까 ?