유틸리티는 다음을 보여줍니다.
ATOP - MyServer 2013/01/07 00:03:57 10 seconds elapsed
PRC | sys 2.18s | user 8.33s | #proc 141 | #zombie 0 | #exit 0 |
CPU | sys 21% | user 139% | irq 0% | idle 228% | wait 11% |
cpu | sys 5% | user 40% | irq 0% | idle 51% | cpu002 w 3% |
cpu | sys 5% | user 35% | irq 0% | idle 56% | cpu001 w 3% |
cpu | sys 7% | user 30% | irq 0% | idle 61% | cpu000 w 2% |
cpu | sys 4% | user 34% | irq 0% | idle 61% | cpu003 w 1% |
CPL | avg1 1.00 | avg5 1.12 | avg15 1.25 | csw 389208 | intr 223367 |
MEM | tot 23.6G | free 136.3M | cache 6.7G | buff 66.5M | slab 205.1M |
SWP | tot 0.0M | free 0.0M | | vmcom 21.8G | vmlim 11.8G |
DSK | sdc | busy 12% | read 70 | write 109 | avio 6 ms |
DSK | sde | busy 4% | read 37 | write 131 | avio 2 ms |
DSK | sdd | busy 3% | read 38 | write 144 | avio 1 ms |
NET | transport | tcpi 160 | tcpo 171 | udpi 0 | udpo 0 |
NET | network | ipi 188 | ipo 172 | ipfrw 0 | deliv 160 |
NET | vnet1 0% | pcki 510 | pcko 442 | si 60 Kbps | so 26 Kbps |
NET | eth0 0% | pcki 449 | pcko 527 | si 27 Kbps | so 65 Kbps |
NET | vnet0 0% | pcki 0 | pcko 44 | si 0 Kbps | so 3 Kbps |
NET | vnet7 0% | pcki 1 | pcko 44 | si 0 Kbps | so 3 Kbps |
NET | vnet2 0% | pcki 0 | pcko 43 | si 0 Kbps | so 3 Kbps |
NET | vnet3 0% | pcki 0 | pcko 43 | si 0 Kbps | so 3 Kbps |
NET | vnet6 0% | pcki 0 | pcko 43 | si 0 Kbps | so 3 Kbps |
NET | vnet5 0% | pcki 0 | pcko 5 | si 0 Kbps | so 0 Kbps |
NET | vnet4 0% | pcki 0 | pcko 5 | si 0 Kbps | so 0 Kbps |
NET | vnet8 0% | pcki 0 | pcko 5 | si 0 Kbps | so 0 Kbps |
NET | bond0 ---- | pcki 449 | pcko 527 | si 27 Kbps | so 65 Kbps |
NET | br0 ---- | pcki 157 | pcko 126 | si 12 Kbps | so 17 Kbps |
NET | lo ---- | pcki 46 | pcko 46 | si 3 Kbps | so 3 Kbps |
내 질문은 다음과 같습니다 : 1) 모두 흰색이며 SWP가있는 줄은 빨간색입니다. RAM이 24GB이고 스왑을 사용하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까? 큰 문제입니까? 나는 문제없이 일하고 있지만 누가 나쁜지 아는 사람은 누구입니까?
2) vmcom과 vmlim의 의미는 무엇입니까?
CPU는 쿼드 코어입니다. RAID5의 3HDD. 데비안 스퀴즈 x64가 있고 KVM과 MySQL을 사용하고 있습니다.
답변 주셔서 감사합니다
답변
주요 질문에 대한 답변은 아래에 있습니다-그러나 먼저 Mirra의 제안에 관한 경고 :
이 점에주의하십시오 :
: / proc / sys / vm / overcommit_memory에 2를 넣어보십시오.
이 경우 실제 메모리를 사용할 수있는 경우에도 vmlim보다 큰 vmcom이있을 때 OS에서 메모리를 요청하는 모든 프로세스는 오류를 수신합니다 (많은 오류가 있고 compiz와 같은 기본 시스템 응용 프로그램에서는 실패합니다). 그리고 때문에 :
vmlim = SWAP_size + 0.5 * RAM_size.
여기서 0.5 (50 %)는 / proc / sys / vm / overcommit_ratio 매개 변수의 기본값이며, 나와 같은 많은 오류를 쉽게 얻을 수 있습니다.
답변 주요 질문 : 기본 값으로 overcommit_memory에 매개 변수 다시 변경 되 돌리는 것이 낫다 (나를 위해 0 (우분투 12.04 LTS)를하지만, 다른 OS`es 1 일 수있다). 위대한 기사 에 따르면 프로세스에서 실제로 사용하는 메모리를 계산할 수 있습니다.
MemoryUsed ~ tot-(캐시 + 버프 + 프리) ~ 23.6G-(6.7G + 0.067G + 0.136G) ~ 16.7G
따라서 실제로는 16.7G 만 (23.6G 설치된 RAM에서) 프로세스에서 사용되며 출력 상단의 빨간색 선은 무시 될 수 있습니다.
답변
atop
매뉴얼 페이지 숫자가 실제로 나타냅니다 무엇인지 설명하는 데 도움이됩니다.
기억
커밋 된 가상 메모리가 한계 (SWP 라인의 ‘vmcom’및 ‘vmlim’)를 초과하면 시스템 오버 커밋으로 인해 SWP 라인이 색상으로 표시됩니다.
SWP
직업을 교환하고 정보를 과도하게 사용하십시오.
이 줄에는 디스크의 총 스왑 공간 크기 ( ‘tot’)와 사용 가능한 스왑 공간 크기 ( ‘free’)가 포함됩니다.
또한 커밋 된 가상 메모리 공간 ( ‘vmcom’)과 커밋 된 공간의 최대 제한 ( ‘vmlim’, 기본적으로 스왑 크기에 메모리 크기의 50 %)이 표시됩니다. 커밋 된 공간은 프로세스를위한 모든 개인용 메모리 공간 할당을위한 예약 된 가상 공간입니다. 커널은 엄격한 오버 커밋 처리가 구성된 경우 커밋 된 공간이 제한을 초과하는지 여부 만 확인합니다 (vm.overcommit_memory는 2).
https://linux.die.net/man/1/atop
답변
당신 atop
이 말하는 것은 다음과 같이 시스템이 메모리를 초과 커밋하고 있다는 것입니다.
초과 커밋을 방지하기 위해을 /proc/sys/vm/overcommit_memory
설정할 수 있습니다 2
.