다음은 하루에 수천 명의 방문자에게 512MB RAM 및 nginx/php-fpm/mysqld 제공(주로 정적) 콘텐츠를 제공하는 CentOS를 실행하는 VPS의 메모리 그래프입니다.
(x축의 날짜는 날짜입니다)
보시다시피 캐시와 버퍼가 상당히 증가했습니다. 메모리 캐시는 가끔 지워집니다(책임 있는 cron 작업 제외). 더 이상 성장할 수 없을 때 일반적으로(항상은 아니지만) 지워집니다. 때로는 거의 완전히 지워지기도 하고 때로는 절반만 지워지기도 합니다.
저는 이러한 제거 뒤에 숨은 논리를 이해하려고 노력하고 있습니다. 파일 데이터를 더 오래 캐시하고, 메모리 캐시를 지울 때 평소보다 더 많은 메모리를 사용하는 다른 프로그램이 표시되지 않기를 바랍니다.
이것은 정상적인 동작입니까, 아니면 제가 뭔가를 놓치고 있는 것입니까?
업데이트: 메모리 업그레이드로 차트가 안정화된 것 같습니다. 여전히 작은 하락이 있지만 업그레이드 전만큼 크지는 않습니다.
답변1
그것은 많은 것일 수 있습니다. 어쩌면 실행 중인 프로그램 중 하나가 가끔 일시적으로 많은 RAM을 사용할 수도 있습니다. X축의 시간이 실제로 몇 주라면 캐시가 삭제된 원인에 대한 자세한 정보를 얻기 위해 더 높은 해상도(예: 분당 한 번 또는 초당 한 번)로 샘플링해야 합니다. 해당 시간 동안의 ps
출력 top
(로드 평균 포함)도 유용합니다.
답변2
가능한 이유 중 하나는 로그와 같은 파일이 계속 증가하고, 특정 크기에 도달하면 삭제되거나 압축되거나 다른 곳으로 전송된다는 것입니다.
두 경우 모두 원본 파일이 삭제되면 캐시 크기(운영 체제에 메모리 부족이 없는 경우 전체 크기)가 캐시에서 해제됩니다.