linux系统下如何查看内存占用情况

linux系统下如何查看内存占用情况

查看内存占用情况:

1.top

PID:当前运行进程的ID

USER:进程属主

PR:每个进程的优先级别

NInice:反应一个进程“优先级”状态的值,其取值范围是-20至19,一
共40个级别。这个值越小,表示进程”优先级”越高,而值越
大“优先级”越低。一般会把nice值叫做静态优先级

VIRT:进程占用的虚拟内存

RES:进程占用的物理内存

SHR:进程使用的共享内存

S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示
该进程优先值为负数

%CPU:进程占用CPU的使用率

%MEM:进程使用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

COMMAND:进程启动命令名称

2.free

total : 总计物理内存的大小。

used : 已使用多大。

free : 可用有多少。

Shared : 多个进程共享的内存总额。

Buffers/cached : 磁盘缓存的大小。

-/+ buffers/cached) :

used:已使用多大;

free:可用有多少。

注意:

(mem)的used/free与(-/+ buffers/cache) used/free的区别:

这两者的区别在于使用的角度来看,前者是从OS(Operating Sys)的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是11737644KB,,已用内存是54215352KB,后者所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。

所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。

3.cat /proc/meminfo

查看RAM使用情况最简单的方法是通过命令:cat /proc/meminfo;

这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。

/proc/meminfo列出了所有你想了解的内存的使用情况。

进程的内存使用信息也可以通过命令:cat /proc//statm 、 cat /proc//status 来查看。

4.ps aux –sort -rss

ps aux: 列出目前所有的正在内存当中的程序。

a显示终端上地所有进程,包括其他用户地进程(有的进程没有终端)。

-a 显示所有终端机下执行的进程,除了阶段作业领导者之外。

u  以用户为主的格式来显示进程状况。

x  显示所有进程,不以终端机来区分。

a会包括其他用户(否则只有用户本身); x会包括其他终端;

aux就可以包括内存所有;

USER:该 process 属于那个使用者账号的

PID :该 process 的号码

%CPU:该 process 使用掉的 CPU 资源百分比

%MEM:该 process 所占用的物理内存百分比

VSZ :该 process 使用掉的虚拟内存量 (Kbytes)

RSS :该 process 占用的固定的内存量 (Kbytes)

TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

STAT:该程序目前的状态,主要的状态有

R :该程序目前正在运作,或者是可被运作

S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。

T :该程序目前正在侦测或者是停止了

Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态

START:该 process 被触发启动的时间

TIME :该 process 实际使用 CPU 运作的时间

COMMAND:该程序的实际指令

5.vmstat -s

vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。

6.gnome-shell-system-monitor-applet

Gnome-shell系统监视器gnome-shell-system-monitor-applet,是一个Gnome-shell 面板小程序,此程序用户监视CPU占用百分比、内存使用和SWAP使用情况,如图通过顶部栏显示和关闭。

此程序下载地址:https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet

和其他gnome-shell扩展小程序相比,安装可能有点困难,首先需要安装git-core核心。

在终端输入命令:

mkdir ~/git_projects

cd ~/git_projects

git clone git://github.com/paradoxxxzero/gnome-shell-system-monitor-applet.git

mkdir -p ~/.local/share/gnome-shell/extensions

cd ~/.local/share/gnome-shell/extensions

ln -s ~/git_projects/gnome-shell-system-monitor-applet/system-monitor@paradoxxx.zero.gmail.com

sudo cp ~/git_projects/gnome-shell-system-monitor-applet/org.gnome.shell.extensions.system-monitor.gschema.xml /usr/share/glib-2.0/schemas

cd /usr/share/glib-2.0/schemas

sudo glib-compile-schemas .

如果你使用的jhbuild编译的gnome-shell,可能会无法工作!

7.相关知识

linux上进程有5种状态:

1. 运行(正在运行或在运行队列中等待)

2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)

3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)

4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)

5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

ps工具标识进程的5种状态码:

D 不可中断 uninterruptible sleep (usually IO)

R 运行 runnable (on run queue)

S 中断 sleeping

T 停止 traced or stopped

Z 僵死 a defunct (”zombie”) process

注: 其它状态还包括W(无驻留页), <(高优先级进程), N(低优先级进程), L(内存锁页).

使用ps格式输出来查看进程状态:

ps -eo user,stat..,cmd

user 用户名

uid 用户号

pid 进程号

ppid 父进程号

size 内存大小, Kbytes字节.

vsize 总虚拟内存大小, bytes字节(包含code+data+stack)

share 总共享页数

nice 进程优先级(缺省为0, 最大为-20)

priority(pri) 内核调度优先级

pmem 进程分享的物理内存数的百分比

trs 程序执行代码驻留大小

rss 进程使用的总物理内存数, Kbytes字节

time 进程执行起到现在总的CPU暂用时间

stat 进程状态

cmd(args) 执行命令的简单格式

例子:

查看当前系统进程的uid,pid,stat,pri, 以uid号排序.

ps -eo pid,stat,pri,uid –sort uid

查看当前系统进程的user,pid,stat,rss,args, 以rss排序.

ps -eo user,pid,stat,rss,args –sort rss

 

原文链接:https://88hzy.cn/5514.html,转载请注明出处。

0

评论0

请先

显示验证码
没有账号? 注册  忘记密码?