Как узнать количество памяти в Linux, Ubuntu

43 173 просмотра 7 комментариев 4 сентября 2013

Как можно узнать количество оперативной памяти (свободной, занятой, всего) в Linux (debian, ubuntu и пр.)?
Вы можете использовать следующие команды в терминале, чтобы выяснить реальный размер RAM под Linux, либо удаленно по ssh для сервера с Linux.

Файл /proc/meminfo

$ less /proc/meminfo

или

$ cat /proc/meminfo

Пример вывода

MemTotal:       512000 kB
MemFree:         64728 kB
Buffers:             0 kB
Cached:              0 kB
SwapCached:          0 kB
Active:              0 kB
Inactive:            0 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       512000 kB
LowFree:         64728 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:            2080 kB
Writeback:           0 kB
AnonPages:           0 kB
Mapped:              0 kB
Slab:                0 kB
PageTables:          0 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:         0 kB
Committed_AS:        0 kB
VmallocTotal:        0 kB
VmallocUsed:         0 kB
VmallocChunk:        0 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     2048 kB

Команда free

Команда free отображает общее количество свободной и занятой физической и своп памяти в системе, а также буферы, используемые ядром:

$ free -m

или

$ free -g

Пример вывода

             total       used       free     shared    buffers     cached
Mem:           500        436         63          0          0          0
-/+ buffers/cache:        436         63
Swap:            0          0          0

Опции

Из мануала:

       The -b switch displays the amount of memory in bytes; the -k switch (set by default) displays it in kilobytes; the -m switch displays it in megabytes.
       The -t switch displays a line containing the totals.
       The -o switch disables the display of a "buffer adjusted" line.  If the -o option is not specified, free subtracts buffer memory from the used memory and adds it to the free memory reported.
       The -s switch activates continuous polling delay seconds apart. You may actually specify any floating point number for delay, usleep(3) is used for microsecond resolution delay times.

Команда vmstat

Комманда vmstat показывает статистику памяти включая дополнительную информацию о процессах

$ vmstat -s

Пример вывода:

       512000 K total memory
       448132 K used memory
            0 K active memory
            0 K inactive memory
        63868 K free memory
            0 K buffer memory
            0 K swap cache
            0 K total swap
            0 K used swap
            0 K free swap
     16956820 non-nice user cpu ticks
         3531 nice user cpu ticks
      3533257 system cpu ticks
    459840831 idle cpu ticks
       141559 IO-wait cpu ticks
            0 IRQ cpu ticks
            0 softirq cpu ticks
            0 stolen cpu ticks
      1424740 pages paged in
     37143676 pages paged out
            0 pages swapped in
            0 pages swapped out
            0 interrupts
   1889466486 CPU context switches
   1373407048 boot time
    490111497 forks

Команда top

Эту команду я люблю больше всего, за ее реалтаймовость. Показывает в настоящем времени общую информацию о памяти, загруженности процессора и процессах которые выполняются

$ top

Пример вывода:

03:22:24 up 56 days,  2:24,  1 user,  load average: 1.49, 1.29, 1.28
Mem:    512000k total,   448372k used,    63628k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1628 mysql     15   0  265m  56m 7824 S 14.3 11.3 789:48.32 mysqld
26074 usamotor  15   0  193m  49m 7488 S 11.3  9.9  12:15.55 php
13721 usamotor  15   0  191m  45m 7472 R  7.3  9.1   2:18.71 php
1 root      15   0  8364  848  724 S  0.0  0.2   1:04.34 init
1397 root      15   0 63312 1996 1284 S  0.0  0.4   0:12.50 nmbd
1401 root      15   0 93348 3488 2516 S  0.0  0.7   0:05.01 smbd
1420 root      18   0 93480 1684  608 S  0.0  0.3   0:00.00 smbd
1421 root      23   0 54572  992  500 S  0.0  0.2   0:00.00 saslauthd
1422 root      23   0 54572  648  156 S  0.0  0.1   0:00.00 saslauthd
1429 root      15   0  5988  732  572 S  0.0  0.1   0:37.04 syslogd
1436 daemon    18   0 18720  440  284 S  0.0  0.1   0:00.00 atd
1444 bind      25   0  121m  11m 2388 S  0.0  2.3   0:00.55 named
1458 root      15   0  220m  13m 7616 S  0.0  2.7   2:14.62 apache2
1519 root      25   0  9144 1396 1136 S  0.0  0.3   0:00.00 mysqld_safe
1629 root      25   0  3860  664  568 S  0.0  0.1   0:00.00 logger
1680 root      18   0 21244  924  656 S  0.0  0.2   0:01.17 dovecot
1681 dovecot   15   0 12908 1148  876 S  0.0  0.2   0:00.52 anvil
1682 root      15   0 12908 1196  904 S  0.0  0.2   0:00.41 log
1766 root      15   0 72972 3156 1464 S  0.0  0.6   1:38.07 sendmail-mta
1783 root      15   0 49184 1168  620 S  0.0  0.2   0:27.42 sshd
1791 root      18   0 19340  984  780 S  0.0  0.2   0:00.00 xinetd
1806 root      16   0 33288 2036 1044 S  0.0  0.4   0:00.01 nginx
3209 root      19   0 20916 1016  772 S  0.0  0.2   0:16.68 cron
7983 proftpd   15   0  190m 2000  672 S  0.0  0.4   0:02.39 proftpd
8183 root      15   0 78980 3468 2748 S  0.0  0.7   0:00.01 sshd
9221 usamotor  15   0 78980 1728  988 R  0.0  0.3   0:00.22 sshd
9222 usamotor  15   0  121m 2164 1640 S  0.0  0.4   0:00.02 bash
11507 root      15   0  178m  13m 7812 S  0.0  2.6   0:50.33 ispmgr
13717 root      18   0 36740 3352 2816 S  0.0  0.7   0:00.00 cronrun
13719 usamotor  18   0 46056 1500 1196 S  0.0  0.3   0:00.00 su
13720 usamotor  20   0  9084 1240 1044 S  0.0  0.2   0:00.00 sh
15366 root      15   0 41956 1256  932 S  0.0  0.2   0:00.00 cron
15367 root      15   0  9068 1220 1036 S  0.0  0.2   0:00.00 sh
15368 root      20   0  9068  640  452 S  0.0  0.1   0:00.00 sh
15369 root      16   0  3860  596  496 S  0.0  0.1   0:00.00 run-parts
15381 root      18   0  9072 1256 1072 S  0.0  0.2   0:00.00 logrotate
15382 root      18   0  3876  508  432 S  0.0  0.1   0:00.00 sleep
16095 root      15   0 41956 1256  932 S  0.0  0.2   0:00.00 cron
16096 root      15   0  9068 1236 1056 S  0.0  0.2   0:00.00 sh
16097 root      15   0  3860  592  492 S  0.0  0.1   0:00.00 run-parts

UPD от 19.11.2015

Для того чтоб посмотреть сколько используется памяти сейчас использую htop. Который нужно предаврительно установить командой

apt-get install htop

Пример вывода:

7 комментариев

Надо бы еще про htop было упомянуть, да он и получше вышеупомянутых как консольный менеджер процессов.
Да, действительно, тогда не знал еще про него, чуть позже узнал, сейчас только им и пользуюсь.
htop врет.
При выводе htop показывает что занято 988 Мб из 8 Гб
При этом:
root@s1:~# free -m
        total     used     free   shared   buffers   cached
Mem:      7932     4903     3028       0     200     3717
-/+ buffers/cache:      986     6945
Swap:      19251       0     19251

Дальше думайте сами кому верить )
HTOPу верить.
free -m все зомби тоже там сидят.
Помогло когда была съедена вся память)
free -m | grep ‘Mem’ | cut -d":" -f2 | awk ‘{print "# memory info\n$total:", $1,";\n$used:",$2, ";\n$free:" ,$3,";"}’
исправил ковичек!
free -m | grep ‘Mem’ | cut -d":" -f2 | awk ‘{print "# memory info\n$total:", $1,";\n$used:",$2, ";\n$free:" ,$3,";"}’

Вы можете оставить комментарий