/proc/*의 데이터는 어떻게 수집되며, 얼마나 신뢰할 수 있나요? [복사]

/proc/*의 데이터는 어떻게 수집되며, 얼마나 신뢰할 수 있나요? [복사]

/proc/*최근에는 각 시스템의 시스템 메트릭을 집계하는 클러스터 모니터링 도구(ganglia)를 사용하고 있습니다 .

  1. 데이터는 어떻게 /proc/*수집되나요?
    누가 거기에 데이터를 쓰나요? 데이터는 얼마나 자주 업데이트되나요?
  2. 더 정확하게 수집하기 위해 수집 방식을 조정할 수 있나요?

답변1

http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html

/proc은 가상 파일 시스템이기 때문에 매우 특별합니다. 프로세스 정보 의사 파일 시스템이라고도 합니다. 여기에는 "실제" 파일이 포함되어 있지 않지만 런타임 시스템 정보(예: 시스템 메모리, 설치된 장치, 하드웨어 구성 등)가 포함되어 있습니다. 따라서 커널의 제어 및 정보 센터로 간주할 수 있습니다. 실제로 상당수의 시스템 유틸리티는 이 디렉토리에 있는 파일을 호출합니다. 예를 들어, "lsmod"는 "cat /proc/modules"와 동일하고 "lspci"는 "cat /proc/pci"와 동의어입니다. 이 디렉토리의 파일을 변경하면 시스템이 실행되는 동안 커널 매개변수(sysctl)를 읽거나 변경할 수도 있습니다.

즉, 정기적으로 업데이트되는 파일이 아닌 커널 등에서 직접 들어오는 실시간 정보입니다.

답변2

내부 데이터는 /proc전혀 업데이트되지 않습니다. 요청 시 생성됩니다.

파일을 읽을 때 /proc(또는 실제로 어떤 파일을 읽을 때) 커널을 호출하게 됩니다. "실제" 파일을 읽는 경우 커널은 (캐시, 권한 등에 따라) 파일 시스템을 탐색하여 요청한 데이터를 검색합니다. "파일"을 읽는 경우 /proc커널은 관련 데이터를 즉시 생성합니다.

이 기술은 매우 대중화되었으며 현재 다양한 파일 시스템 영역에서 널리 사용되고 있습니다. 예를 들어,/sys가상 파일 시스템/proc아키텍처 관점에서 보면 내용은 완전히 다르지만 매우 유사합니다 . 최신 시스템에서는 이것이 /dev또한 가능하다는 것을 알 수 있습니다.가상 파일 시스템, 그렇지 않으면 /dev파일을 하드웨어 현실과 동기화하는 것이 상당히 어려울 것이기 때문입니다. 일부 사용자 수준 서비스는 다음을 통해 자체 가상 파일 시스템을 제공합니다.퓨즈.

답변3

의 파일은 /proc대부분 장치 드라이버로 구현됩니다. /dev/ttyS*프로그래머는 하드웨어에서 데이터를 반환하는 대신 프로그램에서 생성된 데이터를 반환한다는 점을 제외하면 기본적으로 직렬 장치( )처럼 구현됩니다 .

어떻게 보면 웹서버와 비슷합니다. 단, 파일이 TCP 소켓을 수신하고 응답하는 대신 /proc읽기 요청을 수신하고 응답하는 장치 드라이버입니다.

Unix 커널 드라이버 설계에는 장치 노드만 설치할 수 있도록 강제하는 것이 없었 으므로 사람들은 일부 런타임 정보를 반환하는 가상 장치를 포함하는 /dev디렉터리를 개발하고 표준화할 기회를 얻었습니다 . /proc오늘날 Linux 커널에는 /proc드라이버를 처리하기 위한 특수한 방법이 포함되어 있습니다.

다음은 드라이버 예제가 포함된 장치 드라이버에 대한 기사입니다 /proc.http://www.linuxdevcenter.com/pub/a/linux/2007/07/05/devhelloworld-a-simple-introduction-to-device-drivers-under-linux.html

관련 정보