나는 종종 시스템 부하에 관한 데이터를 계산해야 할 필요성을 느낍니다. 예를 들어 top
표시된 데이터에 관한 것입니다. 아마도 .iotop
htop
내가하고 싶은 일 중 일부는 다음과 같습니다.
코어(또는 평균 코어)당 10초 동안의 평균, 최대 및 최소 CPU 로드(상단에 표시된 대로 사용자 시간, 시스템, 유휴 등으로 구분)를 계산합니다.
프로세스당 10초 이상의 컴퓨터 평균, 최대 및 최소 CPU 시간입니다. 그런 다음 동일한 프로세스 이름이나 그룹 ID를 공유하는 각 프로세스에 대해 평균, 최대 및 최소값이 계산됩니다.
공유 메모리 영역을 두 번 계산하지 않고 모든 Chrome 또는 Firefox 프로세스에서 사용되는 상주 RAM의 총량을 계산합니다.
몇 분 동안 프로세스당, 인터페이스당 평균 네트워크 사용량과 최대 대역폭을 계산합니다.
나는 이것을 알고 있고 top
그로부터 ps
데이터를 얻고 있지만 /proc
이러한 파일의 의미를 이해하고 구문 분석하는 것은 내가 기대했던 것보다 어렵습니다. 적절한 스크립트/프로그램이 필요합니다. 이 데이터를 처리하기 위해 bash에서 for 루프를 작성하고 싶습니다.
간단하고 빠르게 사용할 수 있는 시스템 로드 데이터 추상화가 있습니까?
답변1
top은 ncurses를 대화식으로 사용하므로 출력 스트림은 커서 이동으로 채워집니다. 그러나 각 간격마다 데이터를 인쇄하는 -b(배치) 옵션이 있습니다. 그래서 awk로 파싱할 수 있습니다. 모든 프로세스가 필요하지 않은 경우(-b 모드에 창 크기가 없기 때문에 필요함) 거의 모든 출력을 사용자 정의할 수 있는 옵션이 있습니다. 또한 간격을 측정하므로 프로세스를 계속 다시 실행할 필요가 없습니다.