/proc/meminfo에 없는 Linux 메모리 사용량 소스

/proc/meminfo에 없는 Linux 메모리 사용량 소스

저는 조사하려는 메모리 사용량의 이상한 패턴을 보여주는 Linux 서버를 실행하고 있습니다.

munin에 따르면 정상적인 작동 중에 약 200MB의 메모리가 애플리케이션에 사용되지만 때때로(아마 며칠에 한 번씩) 다음 그래프에서 볼 수 있듯이 약 1GB씩 갑자기 증가합니다.

메모리 사용량의 급격한 증가를 보여주는 무닌 메모리 그래프

나는 이것의 원인을 찾으려고 노력했지만 그것이 무엇인지 잘 모르겠습니다. munin이 이 메모리를 "앱"에 귀속시킨다는 사실은 실행 중인 프로세스 중 하나가 단순히 많은 메모리를 사용하고 있음을 암시하지만, 이런 일이 발생하면 상단을 보면 어떤 프로세스도 거의 많은 메모리를 사용하지 않는다는 것을 알 수 있습니다. 실제로 상위 15개 메모리 소비 프로세스는 이 상황이 발생해도 전혀 변경되지 않으며 상위 프로세스는 메모리의 2.2%만 사용합니다. 또한 ps의 메모리 정보는 이 정도의 메모리에 거의 추가되지 않고 대략 200MB에 해당합니다.

증가 높이는 일반적으로 동일하며 이 예에서 볼 수 있듯이 몇 시간 후에 사라집니다.

이 동작을 트리거하는 신뢰할 수 있는 방법은 네트워크를 통해 SSH 터널을 통해 wget을 사용하여 대용량 파일(1.4G)을 로컬 디스크로 다운로드하는 것입니다(네트워크 활동만으로는 트리거되지 않음).

메모리 사용량을 좀 더 자세히 보기 위해 /proc/meminfo10초마다 로그를 시작해서이 데이터의 그래프가 포함된 타르볼. 문제의 동작을 일으키는 다운로드는 10:35:32에 시작되어 10:38:53에 완료되었습니다. 원본 로그 데이터도 tarball에 포함되어 있습니다.

에서는 /proc/meminfo여유 메모리의 엄청난 감소(본질적으로 munin이 "앱"에 부여하는 속성)를 설명할 만큼 가치가 올라가지 않아서 전혀 알 수 없습니다. munin이 보고하는 사용된 메모리 양도 free 및 top으로 보고되지만 프로세스 목록에는 이러한 높은 메모리 사용량이나 파일 다운로드 시 급격한 증가를 설명할 프로세스가 없습니다.

내가 이해하려는 것은 다음과 같습니다.

  • 늘어난 메모리를 사용하는 특별한 프로세스 없이 메모리 사용량이 이런 식으로 동작하는 것이 정상인가요?
  • 에서 설명되지 않은 다른 메모리 소스는 무엇입니까 /proc/meminfo?

아니면 시스템이 손상되었다는 신호일 수 있습니까?

답변1

munin은 그래프에 적합하지만 어떤 응용 프로그램이 로드를 유발했는지는 알려주지 않습니다.

상단 - 고급 상단을 사용할 수 있습니다.

맨 위에는 원시 로그 파일이 기록되어 있으며 그러한 파일을 열고 대화식으로 시간을 앞뒤로 이동하여 특정 순간에 무슨 일이 일어나고 있는지 확인할 수 있습니다.

ator -r /var/log/atop_oame_datet키 를 사용하는 것보다 T의심스러운 활동이 발생한 시점으로 돌아가 그곳에서 무슨 일이 일어났는지 확인할 수 있습니다.

답변2

시스템에 물리적 메모리 부족이 없습니다. 따라서 1.4GB 파일을 전송하려고 하면 1.4GB의 메모리를 사용하게 됩니다. 시스템에는 두 가지 선택이 있습니다. 즉, 메모리를 완전히 낭비하거나 비효율적으로 사용할 수 있습니다. 후자를 선택합니다. 이는 정상적인 동작입니다.

관련 정보