Linux 시스템에서 성능 통계를 가져 오는 애플리케이션을 작성해야합니다. 불행히도 환경은 메모리가 극도로 제한되어 있으므로 표준 명령 줄 도구를 사용하는 것은 꽤 자주 폴링해야하므로 실제로 옵션이 아닙니다.
이상적으로 제가 할 수있는 것은 커널 자체에서 직접 성능 데이터를 가져 오는 것입니다.이 버퍼와 동일한 버퍼와 데이터를 사용하여 애플리케이션의 RAM 요구 사항을 최대한 줄이려고합니다. 내 앱을 Linux 커널에 너무 가깝게 묶는 것은 우리가 프로덕션에서 Linux를 사용한 적이있는 문제가 아니며 실제로 변화하는 것을 볼 수 없습니다.
커널 소스를 살펴보면서 마지막 하루나 이틀을 보냈지 만 어느 정도 길을 잃었다는 사실을 인정해야합니다. 누구든지 CPU 성능 정보 / I / O 성능 정보 / 네트워킹 성능 정보 및 대역폭 사용 정보에 액세스 할 수있는 올바른 위치를 알려줄 수 있습니까?
/ proc / stat, / proc / diskstats, / proc / net / *과 같은 / proc 아래에 여러 파일이 있다고 생각합니다.
CPU 성능 정보의 경우 / proc / stat를 사용하여 Linux 커널 소스 코드 트리의 ./fs/proc/stat.c 파일에 파일 형식이 정의됩니다.
디스크 액세스 정보의 경우 / proc / diskstats를 사용하여 파일 형식은 Linux Kernel 소스 코드 트리의 ./block/genhd.c 파일에 정의되며 함수는 diskstats_show ()입니다.
네트워크 관련 통계의 경우 / proc / net /에있는 파일을 참조 할 수 있습니다. 하지만 / proc / net 디렉토리 아래의 파일을 기반으로 대역폭 사용량을 계산하는 방법을 모르겠습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다