실제로 필요할 때만 스왑 파티션을 사용하지 못하도록 프로세스를 비활성화하는 방법

실제로 필요할 때만 스왑 파티션을 사용하지 못하도록 프로세스를 비활성화하는 방법

내 임베디드 시스템에는 2GB RAM과 100MB 스왑 파티션이 있습니다. 계속해서 모니터링을 해본 결과, RAM의 평균 메모리 사용량이 50% 정도인 것으로 나타났습니다. 어떤 이유에서인지 시스템은 SWAP 메모리를 사용하기 시작했고 거의 40%(40MB)를 사용했습니다. 내 장치의 플래시는 쓰기 횟수에 큰 문제가 있고 약 10년 동안 지속되어야 하기 때문에 이런 일이 발생하지 않도록 방지하고 싶습니다. 이 명령 세트를 실행한 후 SWAP을 사용하여 프로세스 목록을 얻습니다.

for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less​

내 시스템 파일은 /etc/sysctl.conf매개변수로 구성되어 있으므로 vm.swappiness=1내가 읽은 기사에 따르면 꼭 필요한 경우에만 SWAP를 사용해야 합니다. (설문조사 결과를 사용했는데 vm.sappiness=0, 아직 결과가 없습니다.)

특정 프로세스가 스왑을 사용하는 것을 방지하는 방법이 있다는 것을 알고 있지만 올바른 방법은 무엇입니까?

답변1

각 프로세스의 교환성을 설정할 수 있습니다.cgroup

echo 0 > /sys/fs/cgroup/<your custom group>/memory.swappiness

어쨌든 내 제안은 사용하는 것입니다즈람메모리 내 압축 스와핑에 사용됩니다.

답변2

두 시스템에서 테스트한 결과 SWAP 옵션의 40%가 이전에 사용된 것으로 나타났습니다.

vm.swappiness=0

이 옵션은 정말 유용합니다. 지난 4일 동안 거래소 사용량을 본 적이 없습니다.

관련 정보