나는 현재 top
메모리 사용량을 보았습니다. 그러나 일정 기간 동안 메모리 사용량을 모니터링하고 싶습니다. 예를 들어 모니터링을 시작한 다음 몇 가지 명령을 실행하고 마지막으로 모니터링을 중지하고 해당 기간 동안 사용 된 메모리 양을 확인하십시오.
우분투 서버에서 어떻게 할 수 있습니까?
5 초마다 cronjob을 시작하고 텍스트 파일에 현재 메모리 사용량을 기록하는 명령을 호출 할 수 있습니다. 그러나 텍스트 파일에 쉽게 기록 할 수있는 형식으로 현재 메모리 사용량을 얻으려면 어떤 명령을 사용해야합니까?
답변
이전 답변을 결합하는 것이 좋습니다
watch -n 5 free -m
리눅스는 여분의 메모리를 사용하여 하드 드라이브 블록 을 캐시 하는 것을 좋아한다 . 그래서 당신은 단지 무료를보고 싶지 않습니다 Mem
. 행 의 free
열 을 보려고 -/+ buffers/cache:
합니다. 응용 프로그램에서 사용할 수있는 메모리 양을 보여줍니다. 그래서 나는 방금 달려서 free -m
이것을 얻었습니다.
total used free shared buffers cached
Mem: 3699 2896 802 0 247 1120
-/+ buffers/cache: 1528 2170
Swap: 1905 62 1843
1528MB를 사용 하고 있으며 2170MB의 여유 공간 이 있다는 것을 알고 있습니다.
참고 : 이주기를 중단하려면 +를 watch
누르십시오 .CtrlC
답변
htop
최선의 해결책 이라고 생각 합니다.
sudo apt-get install htop
이 방법으로 어떤 프로그램이 대부분의 RAM을 사용하고 있는지 알 수 있습니다. 원하는 경우 쉽게 종료 할 수 있습니다. 스크린 샷이 있습니다!
답변
실행중인 각 프로세스에서 사용되는 메모리의 좋은 분류를 찾고 있다면 ps_mem.py ( 여기 에서 pixelbeat.org에 있음)를 확인하는 것이 좋습니다 .
위의 의견에서 무료 로 한 줄짜리 스냅 샷을 원한다고 언급 했지만 다른 사람들이 이것이 유용하다고 생각했습니다.
출력 예 :
user@system:~$ sudo ps_mem.py
[sudo] password for user:
Private + Shared = RAM used Program
4.0 KiB + 7.5 KiB = 11.5 KiB logger
4.0 KiB + 8.0 KiB = 12.0 KiB mysqld_safe
4.0 KiB + 10.0 KiB = 14.0 KiB getty
4.0 KiB + 42.0 KiB = 46.0 KiB saslauthd (5)
48.0 KiB + 13.0 KiB = 61.0 KiB init
56.0 KiB + 27.5 KiB = 83.5 KiB memcached
84.0 KiB + 26.5 KiB = 110.5 KiB cron
120.0 KiB + 50.0 KiB = 170.0 KiB master
204.0 KiB + 107.5 KiB = 311.5 KiB qmgr
396.0 KiB + 94.0 KiB = 490.0 KiB tlsmgr
460.0 KiB + 65.0 KiB = 525.0 KiB rsyslogd
384.0 KiB + 171.0 KiB = 555.0 KiB sudo
476.0 KiB + 83.0 KiB = 559.0 KiB monit
568.0 KiB + 60.0 KiB = 628.0 KiB freshclam
552.0 KiB + 259.5 KiB = 811.5 KiB pickup
1.1 MiB + 80.0 KiB = 1.2 MiB bash
1.4 MiB + 308.5 KiB = 1.7 MiB fail2ban-server
888.0 KiB + 1.0 MiB = 1.9 MiB sshd (3)
1.9 MiB + 32.5 KiB = 1.9 MiB munin-node
13.1 MiB + 86.0 KiB = 13.2 MiB mysqld
147.4 MiB + 36.5 MiB = 183.9 MiB apache2 (7)
---------------------------------
208.1 MiB
=================================
Private + Shared = RAM used Program
내가 싫어하는 유일한 부분은 스크립트가 루트 권한을 요구한다고 주장한다는 것입니다. 나는 이것이 왜 그런지 정확히 볼 기회가 없었습니다.
답변
free 명령을 사용하십시오 . 예를 들어, 이것은 다음의 출력입니다 free -m
.
total used free shared buffers cached
Mem: 2012 1666 345 0 101 616
-/+ buffers/cache: 947 1064
Swap: 7624 0 7624
free -m | grep /+
두 번째 줄만 반환합니다.
-/+ buffers/cache: 947 1064
답변
시계 명령이 유용 할 수 있습니다. watch -n 5 free
5 초마다 업데이트로 메모리 사용량을 모니터 하십시오 .
답변
을 사용하여 수행 할 수 있습니다 cat /proc/meminfo
.
MemTotal: 4039160 kB
MemFree: 309796 kB
MemAvailable: 3001052 kB
Buffers: 345636 kB
Cached: 2341288 kB
SwapCached: 8 kB
Active: 1725160 kB
Inactive: 1551652 kB
Active(anon): 538404 kB
Inactive(anon): 70076 kB
Active(file): 1186756 kB
Inactive(file): 1481576 kB
Unevictable: 32 kB
Mlocked: 32 kB
SwapTotal: 4194300 kB
SwapFree: 4194044 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 589988 kB
Mapped: 255972 kB
Shmem: 18596 kB
Slab: 374888 kB
SReclaimable: 310496 kB
SUnreclaim: 64392 kB
KernelStack: 6976 kB
PageTables: 26452 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 6213880 kB
Committed_AS: 3589736 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 147392 kB
DirectMap2M: 4046848 kB
답변
전체 RAM 사용량을 시각적으로 모니터링하기 위해 Byobu 를 사용하면 메모리 사용량이 터미널의 오른쪽 하단에 유지되고 터미널 세션 중에 실행됩니다.
스크린 샷에서 볼 수 있듯이 가상 머신의 가동 시간은 1 시간 3 분,로드가 0.00이며 시스템에서 사용할 수있는 2.8GHz (가상) 프로세서 및 994MB (21 %)의 RAM이 있습니다.