우리는 265개의 Linux RHEL 시스템으로 구성된 Hadoop 클러스터를 보유하고 있습니다.
총 265개의 머신 중 HDFS 파일 시스템을 갖춘 230개의 데이터 노드 머신이 있습니다.
각 데이터 노드의 총 메모리는 128G이며 이러한 시스템에서 많은 Spark 애플리케이션을 실행합니다.
지난 달에 또 다른 Spark 애플리케이션을 추가했기 때문에 프로세스가 데이터 노드 시스템에서 더 많은 메모리를 차지했습니다.
우리는 그 캐시를 발견했습니다. 메모리는 매우 중요한 부분이며 머신에서 더 많은 프로세스가 실행될 때 올바른 결론은 더 많은 RAM 메모리를 추가하는 것입니다.
향후 5~6개월 내에 메모리를 256G로 업그레이드할 수 없기 때문에 RHEL 시스템의 성능과 메모리 캐시를 최대한 향상시키는 방법을 고려하고 있습니다.
경험상 메모리 Csch는 애플리케이션 안정성에 매우 중요합니다.
한 가지 옵션은 아래와 같이 RAM 메모리 캐시와 버퍼를 지우는 것입니다.
1. Clear PageCache only.
# sync; echo 1 > /proc/sys/vm/drop_caches
2. Clear dentries and inodes.
# sync; echo 2 > /proc/sys/vm/drop_caches
3. Clear PageCache, dentries and inodes.
# sync; echo 3 > /proc/sys/vm/drop_caches
아래와 같이 cron에서 실행하세요. ( 에서https://www.wissenschaft.com.ng/blog/how-to-clear-ram-memory-cache-buffer-and-swap-space-on-linux/)
#!/bin/bash
# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"
echo "echo 3 > /proc/sys/vm/drop_caches"
Set execute permission on the clearcache.sh file.
# chmod 755 clearcache.sh
Now you may call the script whenever you required to clear ram cache.
Now set a cron to clear RAM cache everyday at 2am. Open crontab for editing.
# crontab -e
Append the below line, save and exit to run it at 2am daily.
0 2 * * * /path/to/clearcache.sh
그러나 우리는 프로덕션 데이터 노드 머신에 대해 이야기하고 있기 때문에 위의 설정이 안전한지 확실하지 않으며 메모리를 128G에서 256G로 늘릴 수 있을 때까지 몇 가지 솔루션을 제공(?)합니다.
내가 쓴 글에 대한 당신의 의견을 들을 수 있나요?
메모리 업그레이드까지 "RAM 메모리 캐시 지우기"가 올바른 임시 해결 방법인 경우