首页 > 代码库 > Linux监控、分区

Linux监控、分区

系统监控

top:是linux下常用的性能分析工具,类型windos任务管理器,5S刷新一次

技术分享

1、top(top命令)、当前时间、up(当前系统稳定运行时间)、2用户(桌面和终端)、CPU平均负载:一分钟的,十分钟的,十五分钟的

2、Tasks:系统中总共运行的任务数 405        2个运行的    403个睡眠(等待CPU执行)的    0个停掉的  0个僵尸的(进程是树形的,一个子进程只有一个父进程,父进程结束后子进程应该一起结束,如果父进程死后,子进程未被回收,就是不运作的死进程,也就是僵尸进程,占用内存资源)

3、%cpu(s):进程占CPU的百分比,多核的话会显示cpu0、1等排列显示; us:用户程序占CPU的百分比; sy:系统程序占CPU的百分比; ni(nice):被修改过的程序占CPU百分比(好心值,值越高,优先级越低); id: CPU空闲的百分比; wa: 等待运行的程序占CPU的百分比; hi: 硬件终端占的百分比; si: 软件终端占的百分比; st:CPU被偷走的百分比(如虚拟机在真机上运行)

4、KiB Mem:以KB为单位查看内存,物理内存;

5、KiB Swap:以KB为单位查看内存,虚拟内存;使用量0,如果大于0说明物理内存不够用了,用到了虚拟内存

进程信息

列名

含义

PID

进程id

PPID

父进程id

RUSER

Real user name

UID

进程所有者的用户id

USER

进程所有者的用户名

GROUP

进程所有者的组名

TTY

启动进程的终端名。不是从终端启动的进程则显示为 ?

PR

优先级

NI

nice值。负值表示高优先级,正值表示低优先级

P

最后使用的CPU,仅在多CPU环境下有意义

%CPU

上次更新到现在的CPU时间占用百分比

TIME

进程使用的CPU时间总计,单位秒

TIME+

进程使用的CPU时间总计,单位1/100秒

%MEM

进程使用的物理内存百分比

VIRT

进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

SWAP

进程使用的虚拟内存中,被换出的大小,单位kb。

RES

进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

CODE

可执行代码占用的物理内存大小,单位kb

DATA

可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

SHR

共享内存大小,单位kb

nFLT

页面错误次数

nDRT

最后一次写入到现在,被修改过的页面数。

S

进程状态。
            D=不可中断的睡眠状态
            R=运行
            S=睡眠
            T=跟踪/停止
            Z=僵尸进程

COMMAND

命令名/命令行

WCHAN

若该进程在睡眠,则显示睡眠中的系统函数名

Flags

任务标志,参考 sched.h

 

cpu负载<=1:能正常应付

cpu负载>1:超负荷运转

pu利用率和cpu负载过高,都是不好的现象,但是也有可能出现,低利用率,高负载的情况:

  为一个码农分配了100个项目,毫无疑问,该码农的负载是很高的,但是码农在具体去做一个项目时,可能会碰到需要购买机器,或者查询资料等耗费时间的问题,真正动手写代码的时间可能很短,而这段时间才是码农真正为公司干活的时间,如果每个项目都有类似这种问题,那么100个项目加到一起,码农真正工作的时间也不会太多,这就造成了低利用率。

 

  在两种情况下会导致一个进程在逻辑上不能运行,

  1. 进程挂起是自身原因,遇到I/O阻塞,便要让出CPU让其他进程去执行,这样保证CPU一直在工作

  2. 与进程无关,是操作系统层面,可能会因为一个进程占用时间过多,或者优先级等原因,而调用其他的进程去使用CPU。

buffer和cache的解释:

    • A buffer is something that has yet to be "written" to disk. 
    • A cache is something that has been "read" from the disk and stored for later use.

 就是说buffer是用于存放要输出到disk(块设备)的数据的,而cache是存放从disk上读出的数据。这二者是为了提高IO性能的,并由OS管理。

释放:

echo 3 > /proc/sys/vm/drop_caches

这里的"3"表示释放所有buffers和cached中能释放的部分。

 

free命令显示内存使用状态

使用free命令查看Linux系统使用内存时,used一项会把当前cache的大小也会加进去,这样会造成free这一栏显示的内存特别少:

技术分享

实际上,cache根据应用程序的需要是可以回收利用的,因此free这一栏并不能真实地表现有多少“可以使用”的内存。实际系统可用内存应该以available数据为准。

 使用-w命令行选项得到buffcache各自使用的数量:

技术分享

free表示的是当前完全没有被程序使用的内存;而cache在有需要时,是可以被释放出来以供其它进程使用的(并不是所有都会释放)

分区:

技术分享

如图操作

技术分享

接着:

技术分享

技术分享

 

进行格式化:

 技术分享

技术分享

 

Linux监控、分区