Red-Hat 기반 Linux의 출력이 Debian 기반 Linux에서 다르게 해석 될 수 있는지 알고 싶습니다.
질문을 좀 더 구체적으로 설명하기 top
위해 Red-Hat 시스템 에서 명령 의 첫 번째 줄에서 "부하 평균"을 해석하는 방법과 공식 문서 ro 코드로이를 확인하는 방법을 이해하고 있습니다.
[이 주제에 접근하는 방법은 여러 가지가 있으며,이 질문에 대한 대답은 모두 수용 가능합니다]
하나의 잠재적 인 접근 방법은이 정보가 공식적으로 문서화 된 곳을 찾는 것입니다.
다른 하나 top
는 내가 작업중 인 특정 배포 및 버전에서 빌드 된 코드 버전을 찾는 것 입니다.
내가 얻는 명령 출력은 다음과 같습니다.
top - 13:08:34 up 1:19, 2 users, load average: 0.02, 0.00, 0.00
Tasks: 183 total, 1 running, 182 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 96.8%id, 2.7%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3922520k total, 788956k used, 3133564k free, 120720k buffers
Swap: 2097148k total, 0k used, 2097148k free, 344216k cached
이 경우 부하 평균값을 어떻게 해석 할 수 있습니까?
나는 평균 부하가 한 문서 소스에서 마지막 순간에 있고 다른 문서 소스에 100을 곱한 후에 해석되어야한다는 것을 알았습니다.
따라서 문제는
0.02 % 또는 2 %가로드 되었습니까?
설명서 소스 및 버전 :
1) 첫 번째 별
TOP(1) Linux User’s Manual TOP(1)
NAME
top - display Linux tasks
출처 : man top
내 RedHat 배포판에
우분투에는 다음과 같은 부하 평균을 설명하지 않는 "작업"이 포함 된 버전이 있습니다
.
2) 두 번째로 시작
TOP(1) User Commands TOP(1)
NAME top
top - display Linux processes
출처 :
http://man7.org/linux/man-pages/man1/top.1.htm
3) 이것으로 시작합니다 :
TOP(1)
NAME
top - display and update information about the top cpu processes
출처 : http://www.unixtop.org/man.shtml
첫 번째 는 man top
안으로 RHEL
또는 안으로 볼 수 있으며 online ubuntu documentation
출력 형식에 대한 설명이 없습니다 ( 관심있는 로드 평균 에 대한 설명 없음 ) .
두 번째 는 부하 평균이 지난 1 분과 관련이 있지만 그 값의 해석에 대해서는 관련이 없음을 나타내는 간단한 설명이 포함되어 있습니다!
나는 두 번째 출처에서 직접 인용합니다.
2a. 가동 시간 및로드 평균
이 부분은
디스플레이 모드
현재 시간 및 마지막 부팅 이후의 시간 길이에 따라 프로그램 또는 창 이름을 포함하는 단일 행으로 구성됩니다 . 마지막 1, 5 및 15 분 동안의
총 사용자
시스템 총 평균 수
따라서이 설명이 실제로 정확하다면,로드 평균이 약 1 분 정도임을 이해하는 것으로 충분합니다.
그러나 숫자의 형식을 설명하지는 않습니다.
에서 세 번째 설명, 그것은 말한다 :
하중 평균에 숫자를 지정할 때는 100을 곱해야합니다.
이 설명은 0.02는 0.02 %가 아니라 2 %를 의미한다고 제안합니다. 그러나 이것이 맞습니까? 또한 모든 Linux 배포판과 잠재적으로 다른 구현에 대해 정확 top
합니까?
이 질문에 대한 답을 찾기 위해 온라인에서 코드를 검색하여 코드를 살펴 보았습니다. 그러나 적어도 top
RHEL과 관련된 두 가지 버전이 있습니다. builtin-top.c
와 리팩토링 top.c
. 코드 시작 부분에 공지 사항에 따라 Red-Hat이 저작권을 가지고 있으므로 RHEL이이 중 하나를 사용하는 것이 논리적으로 보입니다.
http://lxr.free-electrons.com/source/tools/perf/builtin-top.c
http://lxr.free-electrons.com/source/tools/perf/util/top.c
따라서 많은 코드를 조사하기 전에 CPU로드가 어떻게 해석되는지에 대한 정확한 이해를 형성하기 위해 어디에 집중 해야하는지에 대한 의견이 필요했습니다.
아래의 답변에 제공된 정보에서 일부 개인 검색 외에도 다음을 발견했습니다.
1- top
사용중인 패키지가 procps-3.2.8 패키지에 포함되어 있습니다. 를 사용하여 확인할 수 있습니다 top -v
.
2- procps-3.2.8
공식 웹 사이트에서 다운로드 한 버전에서는 도구 uptime
가 procfs
파일에서 /proc/loadavg
직접 정보를 얻는 것 같습니다 (Linux 기능을 사용하지 않음 getloadavg()
).
3-이제 top
명령에는 기능을 사용하지 않습니다 getloadavg()
. 나는 top
실제로와 같은 것을 확인했습니다.uptime
로드 평균을 표시하는 도구입니다. 실제로 uptime
도구의 함수를 호출 하여 procfs
파일 에서 정보를 가져옵니다 /proc/loadavg
.
따라서 모든 것이 /proc/loadavg
파일을 가리 킵니다 ! 따라서에 load average
의해 작성된 내용을 정확하게 이해 top
하려면 커널 코드를 읽어 파일 loadavg
이 어떻게 작성 되는지 확인해야합니다 .
또한 중 하나의 세 가지 가치에 대한 평신도의 용어 설명을 제공하는 훌륭한 기사가 있습니다 loadavg
.
따라서 모든 답변이 똑같이 유용하고 도움이 되었음에도 불구하고 http://www.linuxjournal.com//article/9001 기사를 가리키는
답변을 내 질문에 대한 "the"답변으로 표시하겠습니다. 당신의 기여에 감사합니다!
또한 top and load average 이해 질문에서 loadavg
계산 된 지점을 가리키는 커널의 소스 코드에 대한 링크를 찾았습니다 . 그것이 작동하는 방식을 설명하는 거대한 의견이있는 것처럼 보이 므로이 코드 부분도 있습니다 C
!
코드에 대한 링크는 http://lxr.free-electrons.com/source/kernel/sched/loadavg.c입니다.
다시 한 번 나는 어떤 표절에 관여하려고하지 않고, 이것을 완전성을 위해 추가하고 있습니다. 따라서 커널 코드에 대한 링크는 top and load average 이해 의 답변 중 하나에서 발견되었습니다 .
top -v
)