1、uptime

[root@smgsim02 ~]# uptime
  15:08:15 up 98 days,  4:19,  2
users,  load average: 0.07, 0.29, 0.14

当前时间   系统运行至今的时间   多少用户登录当前系统   分别是1分钟,5分钟,15分钟前至今的负载情况

load average是队列平均长度,在队列中等待执行的进程数量

该值越低,说明进程更有可能立即被CPU处理,相反越高,说明进程更有可能阻塞

该命令可以检查服务器负载是否高。

2、top

显示CPU实际使用情况

top的第一行就是uptime命令的内容

第二行:进程信息

Tasks:   71 total 进程总数

2
 running 正在运行的进程数

69
 sleeping 睡眠的进程数

0  
stopped 停止的进程数

0  
zombie 僵尸进程数

第三行:CPU信息

Cpu(s): 4.8%us   用户空间占用CPU百分比

6.9%sy   内核空间占用CPU百分比

0.0%ni    用户进程空间内改变过优先级的进程占用CPU百分比

87.2%id
  空闲CPU百分比

0.0%wa   等待输入输出的CPU时间百分比

1.1%
hi

0.0%
si

第四行:物理内存信息

Mem: 255102k total 物理内存总量

253572k
used 使用的物理内存总量

1548k
free 空闲内存总量

13576k
buffers 用作内核缓存的内存量

第五行:交换区信息

Swap: 522104k total 交换区总量

9892k
used 使用的交换区总量

512212k
free 空闲交换区总量

34120k
cached 缓冲的交换区总量。

内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,

该数值即为这些内容已存在于内存中的交换区的大小。

相应的内存再次被换出时可不必再对交换区写入。

进程信息区:

统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

序号 列名 含义

PID  进程id

PPID  父进程id

RUSER  Real user name

UID    进程所有者的用户id

USER 进程所有者的用户名

GROUP 进程所有者的组名

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

PR  优先级

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

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

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

RES: 进程使用的未被换出的物理内存的大小,单位kb,亦称常驻内存,RES=CODE+DATA

SHR:共享内存大小,单位kb,即该进程和其他进程共享内存的数量

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

TIME+:进程使用的cpu时间总计,单位1/100s

COMMAND:命令名称/行

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

SWAP:进程使用的虚拟内存中,未被换出的大小(kb)

CODE:可执行代码占用的物理内存的大小

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

nFLT 页面错误次数

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

STAT:进程的状态:S=休眠状态,R=运行状态,T=停止状态,D=中断休眠状态,Z=僵尸状态

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

Flags 任务标志,参考 sched.h

  SIZE:进程占用的内存数量(代码+数据+堆栈)

 RSS;进程使用的物理内存数量
 Badness=oom_score(bandness)
  Adj=oom_adjustment

输入完top命令后,可继续按下f键,选择需要添加的显示列

通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。

按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

top命令参数解释:

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。

p 通过指定监控进程ID来仅仅监控某个进程的状态。

q该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。

S 指定累计模式

s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。

i 使top不显示任何闲置或者僵死进程。

c 显示整个命令行而不只是显示命令名

下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。

  Ctrl+L 擦除并且重写屏幕。

  h或者? 显示帮助画面,给出一些简短的命令总结说明。

  k
终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。

  i 忽略闲置和僵死进程。这是一个开关式命令。

  q 退出程序。

  r
重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。

  S 切换到累计模式。

  s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5
s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。

  f或者F 从当前显示中添加或者删除项目。

  o或者O 改变显示项目的顺序。

  l 切换显示平均负载和启动时间信息。

  m 切换显示内存信息。

  t 切换显示进程和CPU状态信息。

  c 切换显示命令名称和完整命令行。

  M 根据驻留内存大小进行排序。

  P 根据CPU使用百分比大小进行排序。

  T 根据时间/累计时间进行排序。

W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

僵尸进程
 
 当一个进程被结束,在它结束之前通常需要用一些时间去完成所有的任务(比如关闭打开的文件),在一个很短的时间里,这个进程的状态为僵尸状态。在进程完成所有关闭任务之后,会向父进程提交它关闭的信息。有些情况下,一个僵尸进程不能关闭它自己,这时这个进程状态就为z(zombie)。不能使用kill命令杀死僵尸进程,因为它已经标志为“dead”。如果你无法摆脱一个僵尸进程,你可以杀死它的父进程,这个僵尸进程也就消失了。然而,如果父进程是init进程,你不能杀死init进程,因为init是一个重要的系统进程,这种情况下你只能通过一次重新启动服务器来摆脱僵尸进程。也必须分析应用为什么会导致僵死?

第二行tasks可以看到系统中僵尸进程的数量

3、iostat

avg-cpu:

%user:user
level(应用)的CPU占用率情况
%nice:加入nice优先级的user
level的CPU占用率情况
%sys:system
level(内核)的CPU占用情况
%idle:空闲的CPU资源情况

磁盘信息

Device:块设备名
Tps:设备每秒进行传输的数量(每秒的I/O请求)。多个单独的I/O请求可以被组成一个传输操作,因为一个传输操作可以是不同的容量。
Blk_read/s,
Blk_wrtn/s:该设备每秒读写的块的数量。块可能为不同的容量。
Blk_read,
Blk_wrtn:自系统启动以来读写的块设备的总量。

4、vmstat

Vmstat命令提供了对进程、内存、页面I/O块和CPU等信息的监控,vmstat可以显示检测结果的平均值或者取样值,取样模式可以提供一个取样时间段内不同频率的监测结果

·process(procs)
r:等待运行时间的进程数量
b:处在不可中断睡眠状态的进程
w:被交换出去但是仍然可以运行的进程,这个值是计算出来的
·memoryswpd:虚拟内存的数量
free:空闲内存的数量
buff:用做缓冲区的内存数量
·swap
si:从硬盘交换来的数量
so:交换到硬盘去的数量
·IO
bi:向一个块设备输出的块数量
bo:从一个块设备接受的块数量
·system
in:每秒发生的中断数量,
包括时钟
cs:每秒发生的context
switches的数量
·cpu(整个cpu运行时间的百分比)
us:非内核代码运行的时间(用户时间,包括nice时间)
sy:内核代码运行的时间(系统时间)
id:空闲时间
wa:等待I/O操作的时间

·m:显示内核的内存利用率
·a:显示内存页面信息,包括活跃和不活跃的内存页面
·n:显示报头行,这个参数在使用取样模式并将命令结果输出到一个文件时非常有用。例如root#vmstat
–n 2 10以2秒的频率显示10输出结果

5、ps和pstree

分析进程的好命令啊!

6、sar

自动收集保存系统信息,crontab配置系统定时任务

crontab命令格式含义:分钟(0-59)
小时(0-23)  日期(1-31)  月份(1-12)  星期(0-6) 命令段

下面看看看几个具体的例子:

0 */2 * * * /sbin/service httpd
restart  意思是每两个小时重启一次apache 


50 7 * * * /sbin/service sshd start  意思是每天7:50开启ssh服务 


50 22 * * * /sbin/service sshd stop  意思是每天22:50关闭ssh服务 


0 0 1,15 * * fsck /home  每月1号和15号检查/home 磁盘 


1 * * * * /home/bruce/backup  每小时的第一分执行
/home/bruce/backup这个文件 


00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {}
\;  每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。

30 6 */10 * *
ls  意思是每月的1、11、21、31日是的6:30执行一次ls命令

7、free

显示系统内存信息

·-b,-k,-m和-g分别按照bytes,
kilobytes, megabytes, gigabytes显示结果。
·-l区别显示low和high内存
·-c
{count}显示free输出的次数

8、pmap

pmap pid查看具体进程的内存使用情况

最新文章

  1. AngularJS 源码分析2
  2. iOS.ReactNative-5-make-react-native-to-support-dynamically-update
  3. Android屏幕适配常识
  4. Application,Session,Cookie,ViewState和Cache区别
  5. PHP 错误处理机制
  6. http中的KeepAlive
  7. Submine Text 3 代码自动换行
  8. static在实例Extends、Overload中理解
  9. [Swust OJ 1023]--Escape(带点其他状态的BFS)
  10. Postman几种常用方式
  11. hbuilder ios 打包失败,无法导入p12证书的解决方案
  12. 高仿QQ Xplan的H5页面
  13. Linux配置服务器的一点总结
  14. CyclicBarrier简介
  15. SpringMVC学习(四)———— 数据回显与自定义异常处理器
  16. 大堆文字不如几张图片-论信息传递的方式以NodeMCU入门为例
  17. 新建Maven项目建成后本应该有的src/main/java和src/test/java目录并没有出现:
  18. HDU 2043 密码
  19. centos7使用kubeadm配置高可用k8s集群
  20. 20165215 2017-2018-2 《Java程序设计》第九周学习总结

热门文章

  1. uva1619 Feel Good
  2. flask学习规划
  3. atoi (String to Integer) leetcode
  4. mybatis中配置中引入properties文件
  5. java 数据库(二)
  6. CreateProcess相关
  7. bzoj3272 Zgg吃东西
  8. 配置github SSH公钥登录
  9. (16) Cloudflare pki公钥基础设施
  10. GO:interface