임시 해결책
재부팅하면 문제가 일시적으로 해결되었습니다.
내 시스템에서 동일한 설정이 있는 serverfault(kswapd는 종종 스왑이 사용 중일 때 100% CPU를 사용함) 에 대한 답변을 따릅니다.
# cat /proc/sys/vm/swappiness
60
# cat /proc/sys/vm/vfs_cache_pressure
100
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
솔루션은 실제로 echo 1 > /proc/sys/vm/drop_caches루트 사용자로 실행 중이었습니다.
# cat /proc/sys/vm/drop_caches
0
# echo 1 > /proc/sys/vm/drop_caches
# cat /proc/sys/vm/drop_caches
1
또는 theTuxRacer 가 지적한 대로 (감사합니다!) 루트로 로그인하지 않은 경우 다음 명령을 사용하십시오.
echo 1 | sudo tee /proc/sys/vm/drop_caches
Setting SuccessFully
# top
top - 10:08:58 up 5 days, 18:55, 1 user, load average: 0.72, 0.95, 0.98
Tasks: 220 total, 1 running, 219 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 3028784 total, 681704 used, 2347080 free, 2916 buffers
KiB Swap: 15624188 total, 3032 used, 15621156 free. 81924 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9 root 20 0 0 0 0 S 0.3 0.0 14:10.40 rcuos/0
1 root 20 0 45652 8124 2888 S 0.0 0.3 1:54.98 init
보다 영구적인 솔루션은 스왑 파일의 크기를 늘리는 것 입니다.
kswapd는 존재하지 않는 스왑 공간을 검색할 때 100% CPU를 차지합니다(스왑 파티션이 가득 찬 경우). htop화면 상단에 스왑 공간이 가득 찼는지 표시되거나 free -h명령을 사용하여 사용된 스왑을 확인할 수 있습니다.
다음 명령을 사용하여 스왑 파일의 크기를 4GB에서 8GB로 늘린 후 kswapd는 이제 swappiness가 60 * 으로 설정된 0% CPU에서 실행됩니다 .
sudo swapoff /swapfile
sudo rm /swapfile
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
이러한 명령에 대한 자세한 설명을 보려면 여기를 클릭하십시오.
이것은 이미 스왑 파일(기본 Ubuntu 설정)을 사용하고 있고 에서 /swapfile참조 한다고 가정합니다 /etc/fstab. 또한 스왑 파일은 RAM의 양에 따라 더 크거나 작을 수 있으므로 그에 따라 조정하십시오.
* 참고로 저는 SSD를 사용하므로 디스크 성능은 문제가 되지 않습니다. 그러나 RAM이 부족한 경우 스왑은 거의 항상 좋은 방법입니다.
출처 : https://askubuntu.com/questions/259739/kswapd0-is-taking-a-lot-of-cpu
'Study > Error' 카테고리의 다른 글
Job for nginx.service failed because the control process exited with error code. 해결방법 (0) | 2022.03.13 |
---|---|
Nginx: 고성능 웹 서버 및 역방향 프록시 서버를 시작하지 못했습니다. (0) | 2022.03.12 |
SSL_do_handshake() failed (0) | 2022.03.09 |