linux查看内存使用情况Linux 中内存使用情况的 8 条命令




linux查看内存使用情况Linux 中内存使用情况的 8 条命令

2022-07-20 21:10:32 网络知识 官方管理员

linux查看内存使用情况(Linux中内存使用情况的8条命令)(1)

作为一名Linux管理员,知道如何获取当前可用的和已经使用的资源情况,比如内存、CPU、磁盘等,是相当重要的。--MageshMaruthamuthu(作者)

Linux并不像Windows,你经常不会有图形界面可供使用,特别是在服务器环境中。

作为一名Linux管理员,知道如何获取当前可用的和已经使用的资源情况,比如内存、CPU、磁盘等,是相当重要的。如果某一应用在你的系统上占用了太多的资源,导致你的系统无法达到最优状态,那么你需要找到并修正它。

如果你想找到消耗内存前十名的进程,你需要去阅读这篇文章:如何在Linux中找出内存消耗最大的进程。

在Linux中,命令能做任何事,所以使用相关命令吧。在这篇教程中,我们将会给你展示8个有用的命令来即查看在Linux系统中内存的使用情况,包括RAM和交换分区。

创建交换分区在Linux系统中是非常重要的,如果你想了解如何创建,可以去阅读这篇文章:在Linux系统上创建交换分区。

下面的命令可以帮助你以不同的方式查看Linux内存使用情况。

  • free命令
  • /proc/meminfo文件
  • vmstat命令
  • ps_mem命令
  • smem命令
  • top命令
  • htop命令
  • glances命令

1)如何使用free命令查看Linux内存使用情况

free命令是被Linux管理员广泛使用的主要命令。但是它提供的信息比/proc/meminfo文件少。

free命令会分别展示物理内存和交换分区内存中已使用的和未使用的数量,以及内核使用的缓冲区和缓存。

这些信息都是从/proc/meminfo文件中获取的。

#free-mtotalusedfreesharedbuff/cacheavailableMem:1586791991702331549653039Swap:1745466616788
  • total:总的内存量
  • used:被当前运行中的进程使用的内存量(used=total–free–buff/cache)
  • free:未被使用的内存量(free=total–used–buff/cache)
  • shared:在两个或多个进程之间共享的内存量
  • buffers:内存中保留用于内核记录进程队列请求的内存量
  • cache:在RAM中存储最近使用过的文件的页缓冲大小
  • buff/cache:缓冲区和缓存总的使用内存量
  • available:可用于启动新应用的可用内存量(不含交换分区)

2)如何使用/proc/meminfo文件查看Linux内存使用情况

/proc/meminfo文件是一个包含了多种内存使用的实时信息的虚拟文件。它展示内存状态单位使用的是kB,其中大部分属性都难以理解。然而它也包含了内存使用情况的有用信息。

#cat/proc/meminfoMemTotal:16248572kBMemFree:1764576kBMemAvailable:3136604kBBuffers:234132kBCached:4731288kBSwapCached:28516kBActive:9004412kBInactive:3552416kBActive(anon):8094128kBInactive(anon):2896064kBActive(file):910284kBInactive(file):656352kBUnevictable:80kBMlocked:80kBSwapTotal:17873388kBSwapFree:17191328kBDirty:252kBWriteback:0kBAnonPages:7566736kBMapped:3692368kBShmem:3398784kBSlab:278976kBSReclaimable:125480kBSUnreclaim:153496kBKernelStack:23936kBPageTables:73880kBNFS_Unstable:0kBBounce:0kBWritebackTmp:0kBCommitLimit:25997672kBCommitted_AS:24816804kBVmallocTotal:34359738367kBVmallocUsed:0kBVmallocChunk:0kBPercpu:3392kBHardwareCorrupted:0kBAnonHugePages:0kBShmemHugePages:0kBShmemPmdMapped:0kBHugePages_Total:0HugePages_Free:0HugePages_Rsvd:0HugePages_Surp:0Hugepagesize:2048kBHugetlb:0kBDirectMap4k:1059088kBDirectMap2M:14493696kBDirectMap1G:2097152kB

3)如何使用vmstat命令查看Linux内存使用情况

vmstat命令是另一个报告虚拟内存统计信息的有用工具。

vmstat报告的信息包括:进程、内存、页面映射、块I/O、陷阱、磁盘和CPU特性信息。vmstat不需要特殊的权限,并且它可以帮助诊断系统瓶颈。

#vmstatprocs-----------memory-------------swap-------io-----system--------cpu-----rbswpdfreebuffcachesisobiboincsussyidwast1068206017693242341884853500032591311634135200

如果你想详细了解每一项的含义,阅读下面的描述。

  • procs:进程r:可以运行的进程数目(正在运行或等待运行)b:处于不可中断睡眠中的进程数目
  • memory:内存swpd:使用的虚拟内存数量free:空闲的内存数量buff:用作缓冲区内存的数量cache:用作缓存内存的数量inact:不活动的内存数量(使用-a选项)active:活动的内存数量(使用-a选项)
  • Swap:交换分区si:每秒从磁盘交换的内存数量so:每秒交换到磁盘的内存数量
  • IO:输入输出bi:从一个块设备中收到的块(块/秒)bo:发送到一个块设备的块(块/秒)
  • System:系统in:每秒的中断次数,包括时钟。cs:每秒的上下文切换次数。
  • CPU:下面这些是在总的CPU时间占的百分比us:花费在非内核代码上的时间占比(包括用户时间,调度时间)sy:花费在内核代码上的时间占比(系统时间)id:花费在闲置的时间占比。在Linux2.5.41之前,包括I/O等待时间wa:花费在I/O等待上的时间占比。在Linux2.5.41之前,包括在空闲时间中st:被虚拟机偷走的时间占比。在Linux2.6.11之前,这部分称为unknown

运行下面的命令查看详细的信息。

#vmstat-s16248580Ktotalmemory2210256Kusedmemory2311820Kactivememory2153352Kinactivememory11368812Kfreememory107584Kbuffermemory2561928Kswapcache17873388Ktotalswap0Kusedswap17873388Kfreeswap44309non-niceusercputicks164niceusercputicks14332systemcputicks382418idlecputicks1248IO-waitcputicks1407IRQcputicks2147softirqcputicks0stolencputicks1022437pagespagedin260296pagespagedout0pagesswappedin0pagesswappedout1424838interrupts4979524CPUcontextswitches1577163147boottime3318forks

4)如何使用ps_mem命令查看Linux内存使用情况

ps_mem是一个用来查看当前内存使用情况的简单的Python脚本。该工具可以确定每个程序使用了多少内存(不是每个进程)。

该工具采用如下的方法计算每个程序使用内存:总的使用=程序进程私有的内存程序进程共享的内存。

计算共享内存是存在不足之处的,该工具可以为运行中的内核自动选择最准确的方法。

#ps_memPrivateShared=RAMusedProgram180.0KiB30.0KiB=210.0KiBxf86-video-intel-backlight-helper(2)192.0KiB66.0KiB=258.0KiBcat(2)312.0KiB38.5KiB=350.5KiBlvmetad380.0KiB25.5KiB=405.5KiBcrond392.0KiB32.5KiB=424.5KiBrtkit-daemon852.0KiB117.0KiB=969.0KiBgnome-session-ctl(2)928.0KiB56.5KiB=984.5KiBgvfs-mtp-volume-monitor1.0MiB42.5KiB=1.0MiBdconf-service1.0MiB106.5KiB=1.1MiBgvfs-goa-volume-monitor1.0MiB180.5KiB=1.2MiBgvfsd..5.3MiB3.0MiB=8.3MiBevolution-addressbook-factory8.5MiB1.2MiB=9.7MiBgnome-session-binary(4)7.5MiB3.1MiB=10.5MiBpolkitd7.4MiB3.3MiB=10.7MiBpulseaudio(2)7.0MiB7.0MiB=14.0MiBmsm_notifier12.7MiB2.3MiB=15.0MiBevolution-source-registry13.3MiB2.5MiB=15.8MiBgnome-terminal-server15.8MiB1.0MiB=16.8MiBtracker-miner-fs18.7MiB1.8MiB=20.5MiBpython3.716.6MiB4.0MiB=20.5MiBevolution-calendar-factory22.3MiB753.0KiB=23.0MiBgsd-keyboard(2)22.4MiB832.0KiB=23.2MiBgsd-wacom(2)20.8MiB2.5MiB=23.3MiBblueman-tray22.0MiB1.8MiB=23.8MiBblueman-applet23.1MiB934.0KiB=24.0MiBgsd-xsettings(2)23.7MiB1.2MiB=24.9MiBgsd-media-keys(2)23.4MiB1.6MiB=25.0MiBgsd-color(2)23.9MiB1.2MiB=25.1MiBgsd-power(2)16.5MiB8.9MiB=25.4MiBevolution-alarm-notify27.2MiB2.0MiB=29.2MiBsystemd-journald28.7MiB2.8MiB=31.5MiBc29.6MiB2.2MiB=31.8MiBchrome-gnome-sh(2)43.9MiB6.8MiB=50.7MiBWebExtensions46.7MiB6.7MiB=53.5MiBgoa-daemon86.5MiB55.2MiB=141.7MiBXorg(2)191.4MiB24.1MiB=215.4MiBnotepadqq-bin306.7MiB29.0MiB=335.7MiBgnome-shell(2)601.6MiB77.7MiB=679.2MiBfirefox1.0GiB109.7MiB=1.1GiBchrome(15)2.3GiB123.1MiB=2.5GiBWebContent(8)----------------------------------5.6GiB==================================

5)如何使用smem命令查看Linux内存使用情况

smem是一个可以为Linux系统提供多种内存使用情况报告的工具。不同于现有的工具,smem可以报告比例集大小(ProportionalSetSize)(PSS)、唯一集大小(UniqueSetSize)(USS)和驻留集大小(ResidentSetSize)(RSS)。

  • 比例集大小(PSS):库和应用在虚拟内存系统中的使用量。
  • 唯一集大小(USS):其报告的是非共享内存。
  • 驻留集大小(RSS):物理内存(通常多进程共享)使用情况,其通常高于内存使用量。
#smem-tkPIDUserCommandSwapUSSPSSRSS3383daygeekcat092.0K123.0K1.7M3384daygeekcat0100.0K129.0K1.7M1177daygeek/usr/lib/gnome-session-ctl0436.0K476.0K4.6M1171daygeek/usr/bin/dbus-daemon--conf0524.0K629.0K3.8M1238daygeek/usr/lib/xdg-permission-sto0592.0K681.0K5.9M1350daygeek/usr/lib/gsd-screensaver-pr0652.0K701.0K5.8M1135daygeek/usr/lib/gdm-x-session--ru0648.0K723.0K6.0M..1391daygeek/usr/lib/evolution-data-ser016.5M25.2M63.3M1416daygeekcaffeine-ng028.7M31.4M66.2M4855daygeek/opt/google/chrome/chrome-038.3M46.3M120.6M2174daygeek/usr/lib/firefox/firefox-c044.0M50.7M120.3M1254daygeek/usr/lib/goa-daemon046.7M53.3M80.4M3416daygeek/opt/google/chrome/chrome-044.7M54.2M103.3M4782daygeek/opt/google/chrome/chrome-057.2M65.8M142.3M1137daygeek/usr/lib/Xorgvt2-displayf077.2M129.6M192.3M3376daygeek/opt/google/chrome/chrome0117.8M131.0M210.9M4448daygeek/usr/lib/firefox/firefox-c0124.4M133.8M224.1M3558daygeek/opt/google/chrome/chrome-0157.3M165.7M242.2M2310daygeek/usr/lib/firefox/firefox-c0159.6M169.4M259.6M4331daygeek/usr/lib/firefox/firefox-c0176.8M186.2M276.8M4034daygeek/opt/google/chrome/chrome-0179.3M187.9M264.6M3911daygeek/opt/google/chrome/chrome-0183.1M191.8M269.4M3861daygeek/opt/google/chrome/chrome-0199.8M208.2M285.2M2746daygeek/usr/bin/../lib/notepadqq/n0193.5M217.5M261.5M1194daygeek/usr/bin/gnome-shell0203.7M219.0M285.1M2945daygeek/usr/lib/firefox/firefox-c0294.5M308.0M410.2M2786daygeek/usr/lib/firefox/firefox-c0341.2M354.3M459.1M4193daygeek/usr/lib/firefox/firefox-c0417.4M427.6M519.3M2651daygeek/usr/lib/firefox/firefox-c0417.0M430.1M535.6M2114daygeek/usr/lib/firefox/firefox-c0430.6M473.9M610.9M2039daygeek/usr/lib/firefox/firefox--0601.3M677.5M840.6M-------------------------------------------------------------------------------90104.8G5.2G8.0G

6)如何使用top命令查看Linux内存使用情况

top命令是一个Linux系统的管理员最常使用的用于查看进程的资源使用情况的命令。

该命令会展示了系统总的内存量、当前内存使用量、空闲内存量和缓冲区使用的内存总量。此外,该命令还会展示总的交换空间内存量、当前交换空间的内存使用量、空闲的交换空间内存量和缓存使用的内存总量。

#top-b|head-10top-11:04:39up40min,1user,loadaverage:1.59,1.42,1.28Tasks:288total,2running,286sleeping,0stopped,0zombie%Cpu(s):13.3us,1.5sy,0.0ni,84.4id,0.0wa,0.3hi,0.5si,0.0stKiBMem:16248572total,7755928free,4657736used,3834908buff/cacheKiBSwap:17873388total,17873388free,0used.9179772availMemPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIMECOMMAND2114daygeek203182736616624328228R83.33.87:09.72WebContent2039daygeek204437952849616261364S13.35.27:58.54firefox1194daygeek204046856291288165460S4.21.81:57.68gnome-shell4034daygeek2080855627324488676S4.21.71:44.72chrome2945daygeek203309832416572150112S3.32.64:04.60WebContent1137daygeek20564316197292183380S2.51.22:55.76Xorg2651daygeek203098420547260275700S1.73.42:15.96WebContent2786daygeek202957112463912240744S1.72.93:22.29WebContent1root20182756102087760S0.80.10:04.51systemd442root-51S0.80:05.02irq/141-iw1426daygeek203736604894829820S0.80.30:03.55python32174daygeek20246668012219678604S0.80.80:17.75WebExtensi

7)如何使用htop命令查看Linux内存使用情况

htop命令是一个可交互的Linux/Unix系统进程查看器。它是一个文本模式应用,且使用它需要Hisham开发的ncurses库。

该名令的设计目的使用来代替top命令。该命令与top命令很相似,但是其允许你可以垂直地或者水平地的滚动以便可以查看系统中所有的进程情况。

htop命令拥有不同的颜色,这个额外的优点当你在追踪系统性能情况时十分有用。

此外,你可以自由地执行与进程相关的任务,比如杀死进程或者改变进程的优先级而不需要其进程号(PID)。

linux查看内存使用情况(Linux中内存使用情况的8条命令)(2)

8)如何使用glances命令查看Linux内存使用情况

Glances是一个Python编写的跨平台的系统监视工具。

你可以在一个地方查看所有信息,比如:CPU使用情况、内存使用情况、正在运行的进程、网络接口、磁盘I/O、RAID、传感器、文件系统信息、Docker、系统信息、运行时间等等。

linux查看内存使用情况(Linux中内存使用情况的8条命令)(3)


发表评论:

最近发表
网站分类
标签列表