컴퓨터가 너무 느린 것 같아요. 에 따르면 free
RAM이 약 200M 정도 남았고 1GB 이상을 교체해야 합니다. 캐싱을 위해 메모리를 사용하는 것이 좋은 일이라는 것은 알지만 실제로는 RAM이 부족한 것 같습니다.
root@desktop:/proc free -h
total used free shared buff/cache available
Mem: 3.9G 3.4G 132M 44M 378M 213M
Swap: 8.0G 1.2G 6.7G
smem -tk
보고서에 따르면 애플리케이션은 최대 2GiB(RSS 열)를 사용합니다. smem -wk
사용된 모든 메모리를 고려합니다. 분명히 커널은 캐싱이 아닌 1.8GiB를 사용합니다.
root@desktop:/proc smem -wk
Area Used Cache Noncache
firmware/hardware 0 0 0
kernel image 0 0 0
kernel dynamic memory 1.9G 74.3M 1.8G
userspace memory 1.8G 250.9M 1.6G
free memory 173.9M 173.9M 0
이 동작이 예상됩니까? 그렇다면 커널은 어떤 작업에 그렇게 많은 메모리를 필요로 합니까?
답변1
다음을 시도해 볼 수도 있습니다.
사용남자 이름시간 경과에 따른 컨텍스트 스위치 및 irq 사용량을 보고합니다. Sar는 훌륭하지만 들어본 적이 없는 시스템 모니터링 도구입니다. 하루 동안 실행하고 다양한 보고서를 사용하여 이상 현상을 찾아보세요.
속도:
sysstat 패키지를 설치합니다. 다음과 같이 cron 작업을 설정합니다( /etc/cron.d/
이러한 파일이 있는지 확인).
* * * * * root /usr/lib64/sa/sa1 -S XALL 10 6
이렇게 되면 많은 데이터가 생성됩니다.-- 하루 약 300MB. 시스템 통계의 스냅샷을 찍습니다.6초마다. ("10 6"을 "2 30"으로 변경하면 빈도를 분당 2회로 줄일 수 있습니다)
캡처 빈도를 변경하는 경우 해당 날짜의 파일을 삭제해야 합니다 /var/log/sa/sa$(date +%d)
. 그렇지 않으면 보고서가 손상될 수 있습니다.
좋습니다. 데이터를 캡처한 후 다음을 시도해 보세요(힌트: 항상 파이프를 통과하세요 less
).
sar -q
로드 평균 및 실행 대기열 크기를 가져옵니다. 이 시간이 낮으면 IO 대기 시간을 살펴보세요.
sar -P ALL
%iowait에서 점프가 보이지 않거나 %idle에서 딥이 보이지 않으면 컨텍스트 스위치를 확인하십시오.
saw -w
대부분의 유휴 시스템에서는 초당 500개의 컨텍스트 전환이 정상입니다.
-s <hh:mm:ss>
활성 파일을 지정하고 시작 및 종료 시간( 및 각각 -e <hh:mm:sss>
)과 선택적 간격 -i <secs>
(cron 작업에서 설정한 캡처 해상도보다 커야 함)을 지정하여 sar 보고서를 제한할 수 있습니다.
예:
sar -f /var/log/sa/sa$(date +%d -d yesterday) -s 09:15:00 -e 12:15:00 -i 600
CPU 요약 정보는 어제 오전 9시 15분부터 12시 15분까지 10분 간격으로 제공됩니다.
더 많은 것이 있습니다... 훨씬 더 많은 것이 있습니다. 이 정보를 얻을 수 있습니다 man sar
.
답변2
free -h
출력 명령 편집에 해당 줄이 누락된 이유가 무엇인지 모르겠습니다 -/+ buffers/cache
. 중요합니다. 어쨌든 우리는 계속할 수 있습니다.
"Free" 열(Mem: 행) > 0인 한 실제로 RAM이 부족하지는 않습니다.절대 사용되지 않는 메모리. Linux는 얻을 수 있는 모든 RAM을 캐시로 사용하는 것으로 알려져 있습니다(더 나은 성능을 기대하면서).
스왑 부분은 전체 진실을 말하지 않습니다. 한 번만 실행되고 한동안 사용되지 않았기 때문에 많은 코드 + 데이터를 디스크로 스왑하는 것이 일반적입니다. Linux의 또 다른 부분은 RAM 성능에 대한 탐욕을 보여줍니다. 즉, 중요하지 않을 수 있는 항목을 빠르게 제거합니다(성능 측면에서도 마찬가지입니다). 조정 가능하지만(sysctl vm.swappiness) 대부분의 배포판은 기본적으로 "스왑 없이 스왑"합니다.
사용 가능한 RAM 부족으로 인해 속도가 느리다는 가정을 확인하는 중요한 요소는 현재 디스크로의 스왑 인 또는 아웃이 일어나고 있는지 여부입니다. 대부분의 경우 느린 현상을 컴퓨터에서 미친 듯이 깜박이는 디스크와 연관시키기 쉽습니다. 그렇지 않으면 실행하여 top
시간 경과에 따른 교환 데이터의 변화를 확인하세요. 더 간단한 것은 vmstat 1
초당 교환 IO 데이터를 직접 인쇄하는 것입니다(swap si/so).