메모리를 해제하는 Linux debian 자동 스크립트 - 제안

메모리를 해제하는 Linux debian 자동 스크립트 - 제안

내 Gnu/Linux 데비안 서버에서 이 스크립트를 사용하는 데 조언이 필요합니다.

이 서버는 magento 플랫폼을 사용하여 웹사이트를 호스팅하는 데 사용됩니다. 2~3일마다 메모리를 확인해보니 총 64GB 중 사용 가능한 메모리가 5~7GB로 나타났습니다.

나는 우연히 이 사이트를 발견했습니다:Linux에서 RAM 메모리 캐시, 버퍼 및 스왑 공간을 지우는 방법.

스크립트는 다음과 같습니다.

#!/bin/bash
# Note, we are using "echo 3", but it is not recommended in production
# instead use "echo 1" 
echo 3 > /proc/sys/vm/drop_caches
  1. 문제는 이것이 안전한가 하는 것입니다.
  2. 매일 실행되는 crontab에 이것을 넣으면 약간의 손상이 발생합니까?

그들은 다음과 같이 말합니다:

Linux 커널에서 사용할 수 있는 버퍼와 캐시를 해제하는 것이 Linux에서 좋은 생각입니까? 다양한 설정을 적용하고 실제로 I/O 확장 벤치마크에서 구현되었는지 확인하고 싶다면 버퍼 캐시를 지워야 할 수도 있습니다. 시스템을 다시 시작하지 않고도, 즉 다운타임 없이 위의 지침에 따라 캐시를 삭제할 수 있습니다.

Linux가 설계된 방식은 디스크를 보기 전에 디스크 캐시를 보는 것입니다. 캐시에서 리소스를 찾으면 요청이 디스크에 도달하지 않습니다. 캐시를 지우면 운영 체제가 디스크에서 리소스를 찾기 때문에 디스크 캐시는 더 이상 유용하지 않습니다.

또한 캐시를 지우고 운영 체제에 필요한 모든 리소스를 디스크 캐시로 다시 로드하는 동안 몇 초 동안 시스템 속도가 느려집니다.

다른 웹사이트에서 메모리를 로드하는 명령이 다음과 같은 것을 발견했습니다.

#!/bin/bash
sync; echo 3 > /proc/sys/vm/drop_caches

에코 전에 "동기화"하는 것이 더 낫습니까?

답변1

내 제안은아니요!

메모리가 매우 구체적으로 필요한 경우가 아니면지금, 유용할 수 있는 것들을 기억에 보관하는 것이 더 좋습니다. Linux 커널은 실제로 필요한 경우 마이크로초 이내에 메모리를 회수할 수 있습니다. 이에 비해 기존 하드 드라이브에서 데이터를 가져오는 데는 수만 마이크로초가 걸립니다(7200rpm 하드 드라이브의 경우 디스크가 올바른 위치로 회전하는 데 평균 4.2밀리초가 걸리고 고급 디스크의 검색 시간도 4밀리초입니다). ) 실제로 필요한 것으로 판명되면. RAM에 비해 SSD 성능도 저하됩니다.

메모리에 유용한 정보가 없다고 해서 전력이 절약되는 것은 아닙니다.

캐시를 삭제하는 이유는 주로 벤치마킹, 특히 파일 시스템 벤치마킹을 위한 것입니다. 작성해야 하는 주 메모리의 양을 줄이고자 하는 최대 절전 모드 도구를 상상할 수도 있습니다.

답변2

예, 성능이 저하됩니다. 하지만 but을 소개하지 않는 한 다른 어떤 것도 깨져서는 안 됩니다.

그런데 왜 이러는 걸까요? 좋은 것은 없습니다. 커널은 사용되지 않은 메모리의 용도를 찾으려고 합니다.

관련 정보