상단의 유틸리티는 다음을 표시합니다.
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 선만 빨간색입니다. 24GB RAM이 있지만 스왑을 사용하지 않습니다. 이 문제를 어떻게 해결할 수 있나요? 큰 문제인가요? 별 문제 없이 일하고 있는데, 안 좋은지 누가 알겠어요?
2) vmcom과 vmlim은 무엇을 의미합니까?
CPU는 쿼드코어입니다. RAID5의 3HDD. 저는 Debian Squeeze x64를 가지고 있고 KVM과 MySQL을 사용하고 있습니다.
답변 주셔서 감사합니다
답변1
주요 질문에 대한 답변은 아래와 같습니다. 하지만 먼저 Mirra의 조언에 대한 경고가 있습니다.
이에 주의하시기 바랍니다:
위치: /proc/sys/vm/overcommit_memory 거기에 2를 넣으려고 했습니다.
이 경우 물리적 메모리를 사용할 수 있더라도vmcom이 vmlim보다 크면 운영 체제에서 메모리를 요청하는 모든 프로세스에 오류가 발생합니다.(컴피즈 같은 기본 시스템 애플리케이션을 사용할 때 오류와 실패가 많이 발생했습니다.) 때문에:
vmlim = SWAP_size + 0.5 * RAM_size.
/proc/sys/vm/overcommit_ratio 매개변수의 기본값이 0.5(50%)인 경우 저처럼 오류가 많이 발생할 수 있습니다.
답변주요 질문: overcommit_memory 매개변수의 변경 사항을 기본값으로 되돌리는 것이 더 좋습니다(나의 경우 0(Ubuntu 12.04 LTS)이었지만 다른 운영 체제의 경우 1일 수 있음). ~에 따르면훌륭한 기사프로세스에서 사용되는 실제 메모리를 계산할 수 있습니다.
사용된 메모리 ~ 전체 - (캐시 + 버퍼 + 여유 공간) ~ 23.6G - ( 6.7G + 0.067G + 0.136G) ~ 16.7G
따라서 프로세스는 실제로 16.7G(설치된 23.6G RAM에서)만 사용하며 상단 출력의 빨간색 선은 무시될 수 있습니다.
답변2
매뉴얼 atop
페이지는 이 숫자가 실제로 무엇을 의미하는지 설명하는 데 도움이 됩니다.
메모리
커밋된 가상 메모리가 제한(SWP 줄의 "vmcom" 및 "vmlim")을 초과하는 경우 시스템 오버커밋으로 인해 SWP 줄에 색상이 지정됩니다.
남서부 수자원국
직업을 바꾸고 정보를 과도하게 사용합니다.
이 줄에는 디스크의 총 스왑 공간 크기("tot")와 사용 가능한 스왑 공간 크기("free")가 포함됩니다.
또한 커밋된 가상 메모리 공간('vmcom')과 커밋된 공간의 최대 제한('vmlim', 기본적으로 스왑 크기에 메모리 크기의 50%를 더한 값)이 표시됩니다. 커밋 공간은 프로세스의 모든 개인 메모리 공간 할당을 위해 예약된 가상 공간입니다. 엄격한 오버커밋 처리가 구성된 경우(vm.overcommit_memory는 2) 커널은 커밋된 공간이 제한을 초과하는지 확인합니다.
답변3
atop
위에서 언급한 것처럼 시스템이 메모리를 과도하게 커밋하고 있다는 의미입니다 .핵심:
오버커밋 정책은 sysctl을 통해 설정됩니다
vm.overcommit_memory
.
vm.overcommit_ratio
오버커밋은vm.overcommit_kbytes
(백분율) 또는 (절대값)으로 설정할 수 있습니다.현재 초과분 한도와 약정 금액은
/proc/meminfo
각각 CommitLimit 및 Comfilled_AS에서 볼 수 있습니다.
남용을 방지하기 위해 /proc/sys/vm/overcommit_memory
을 설정할 수 있습니다 2
.