콘텐츠가 /proc
메모리에 있으므로 해당 콘텐츠를 반복적으로(예: 초당) 읽는 데 비용이 얼마나 듭니까? 프로그램이 다음과 같은 작업을 수행합니까 top
, htop
아니면 atop
그렇게 수행합니까( /proc
주어진 간격마다 읽음)?
답변1
/proc
일반적인 상황에서는 사용자가 초당 한 번씩 읽는 데 비용이 많이 들지 않습니다. 그러나 다른 작업을 지연시킬 수 있는 커널 측 잠금이 필요하기 때문에 비용이 많이 드는 일부 파일이 있습니다.
예를 들어 다음과 같은 경우가 있을 수 있습니다.https://serverfault.com/questions/943866/proc-sys-net-netfilter-nf-conntrack-count-extreme-drop-when-reading-proc-net-n
여러 가지 이유로 인해 top
프로그램은 conntrack
다음과 같은 다른 수단을 사용하려고 시도합니다.netlink
/proc
텍스트 기반 방식이므로 100% 안정적이지는 않습니다. 프로그램은 파일을 스캔하고 구문 분석해야 합니다. 커널 버전 간에 변경되지 않기를 바랍니다.- 앞에서 언급했듯이 일부 /proc 파일은 크기에 따라 읽기 비용이 많이 들 수 있습니다.
- 이
netlink
메소드는 비율을 반환할 수 있습니다./proc
답변2
이는 귀하가 찾고 있는 답변이 아닐 수도 있습니다. 예, 첫 번째 질문의 경우 여전히 존재하지만 비용이 많이 들 것이라고 생각하지 마십시오(변수가 너무 많음). 두 번째 질문은 모르겠습니다. 시스템 로드를 모니터링하는 동안 실행 중인 프로세스에서 메모리를 지우기 위해 추가된 명령을 "테스트"해 볼 수 있습니다.
동기화; 에코 1 > /proc/sys/vm/drop_caches
동기화; 에코 2 > /proc/sys/vm/drop_caches
에코 3 > /proc/sys/vm/drop_caches