查看Linux系统状态的常用命令

运维技术 jikk345 3814℃ 0评论

一、查看CPU的详细情况

判断服务器CPU的情况依据如下:
a. 具有相同的core id 的PUC是由同一个core的超线程。
b. 具有相同的physical id 的CPU是同一个CPU封闭的线程或核心
方法1:
物理个CPU个数如下:
以下为2个CPU

[root@Qinglin-A ~]# cat /proc/cpuinfo|grep "physical id"|sort|uniq|wc -l
2

每个物理CPU中的core的个数(即核数):

[root@Qinglin-A ~]# cat /proc/cpuinfo |grep "cpu cores"|sort|uniq|wc -l
1

逻辑CPU的个数

[root@Qinglin-A ~]# cat /proc/cpuinfo |grep "process"|wc -l
24

方法2:
lscpu命令查看

[root@Qinglin-A ~]# lscpu
Architecture:          x86_64                  ==>架构为64位
CPU op-mode(s):        32-bit, 64-bit          ==>32位和64位模式
Byte Order:            Little Endian           ==>大段小段
CPU(s):                24                      ==>CPU线程数
On-line CPU(s) list:   0-23                    ==>CPU线程0到23
Thread(s) per core:    2                       ==>每个盒数有多少线程
Core(s) per socket:    6                       ==>CPU的盒数
Socket(s):             2                       ==>CPU的插槽
NUMA node(s):          2                       ==>非统一内在访问,并不重要
Vendor ID:             GenuineIntel            ==>CPU厂商
CPU family:            6                       ==>CPU的家族系列
Model:                 62                      ==>CPU的型号
Stepping:              4                       ==>步进
CPU MHz:               2600.082                ==>CPU主频
BogoMIPS:              5199.24                 ==>Linux操作系统中衡量计算机处理器运行速度的一种尺度
Virtualization:        VT-x                    ==>是否支持虚拟化
L1d cache:             32K                     ==>一级缓存32K
L1i cache:             32K                     ==>一级缓存32K
L2 cache:              256K                    ==>二级缓存256k
L3 cache:              15360K                  ==>三级缓存15360k
NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22   ==>NUMA节点0
NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23   ==>NUMA节点1

二、查看linux服务器的内存使用情况

查看linux下内存使用情况,可以使用命令free -m。注意此命令在linux有效,在FreeBSD中没有此命令。

[root@Qinglin-A ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         15933      13142       2791          0        437       8810
-/+ buffers/cache:       3894      12038
Swap:        16383         10      16373

total:内存总数
used:已经使用的内在数
free:空闲的内存数
shared:多个进程共享的内存总额
-buffers/cache:(已用)的内存数,即used-buffers-cached
+buffers/cache:(可用)的内存数,即free+buffers+cached
结论:
可用内存的计算公式为:
可用内存=free+buffers+cachaed,即2791+437+8810=12038MB
疑问:
为什么windwos下内存才用了200M不到,但是linux上free才有232MB可用呢?
其实是Linux内存机制问题,以下举例说明,-m的意思是用M个字节来显示内容。

[root@Qinglin-A ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         15933      13142       2791          0        437       8810
-/+ buffers/cache:       3894      12038
Swap:        16383         10      16373

在第一部分Mem行中有如下参数
total:内存总数,即15933MB
used:已经使用的内存数,即13142MB
free:空闲的内存数,即2791MB
shared:当前已经废弃不用,总是0
buffers:缓存的内存数,即437MB
cache page:缓存的内存数,即8819MB
其中,内存总数与已使用内存数和空闲内存数的关系是
total(15933M)=used(13142M)+free(232M)
在第二部分内容(-/+buffers/cache)中各参数如下所示:
(-buffers/cache):used 内存数,即3894(指的是第一部分Mem行中的used(13142MB)-buffers(437MB)-cached(8810MB)=3894MB)
(+buffers/cache):free内存数,即12038(指的是第一部分Mem行中的free(2791MB)+buffers(437MB)+cache(8810MB)=12038MB)
-buffers/cache是实实在在用掉的内存
+buffers/cache是实实在在可用的内存
第三部分是指交换分区(swap)分区
补充
为什么第一部分的free会那么少?从两个度来说明
角度一:系统角度上讲buffers和cache都属于被使用的,为什么被使用呢?因为buffer和cache都属于被使用,所以它认为free只有2791MB,当程序使用
内存时,buffer/cached很快就会被使用
角度二:应用角度来讲,主要看used和free为主。
另外,为了提高磁盘和内存的存储效率,还采取两种cache方式,Buffer cache和Page Cache,前者针对磁盘的块的读写,后者针对文件inode的读写。
这些Cachae能有效的缩短I/O系统调用(比如:read(读),write(写),getdents(系统调用)

三、Linux服务器的硬盘使用情况

1、查看硬盘的信息
以下这是块21.5G的硬盘

[root@Qinglin-A ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000295a5
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        2220    17619968   83  Linux
/dev/sda3            2220        2611     3145728   82  Linux swap / Solaris

2、查看磁盘的使用情况
下面是查看磁盘占用情况(-h是human)

[root@Qinglin-A ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        17G  1.7G   15G  11% /
tmpfs           935M     0  935M   0% /dev/shm
/dev/sda1       194M   34M  151M  19% /boot

下面是查看inode占用情况(-i是inode)

[root@Qinglin-A ~]# df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sda2      1101600 61466 1040134    6% /
tmpfs           239312     1  239311    1% /dev/shm
/dev/sda1        51200    39   51161    1% /boot

3、查看磁盘I/O性能

[root@Qinglin-A ~]# iostat -x
Linux 2.6.32-431.el6.x86_64 (Qinglin-A)         05/27/2016      _x86_64_        (2 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.01    0.00    0.09    0.08    0.00   99.82
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.26     0.05    0.32    0.05    11.38     0.79    33.02     0.00    7.72   4.53   0.17
scd0              0.00     0.00    0.00    0.00     0.04     0.00     8.00     0.00    2.70   2.70   0.00

参数说明
device:设备名称
rrqm/s:每秒进行merge的写操作数目,即delta(rmerge)/s
wrqm/s:每秒进行merge的写操作数目,即delta(wmerge)/s
r/s:每秒完成的读I/O设备的次数,即delta(rio)/s
w/s:每秒完成的写I/O设备的次数,即delta(wio)/s
rsec/s:每秒读扇区数,即delta(rsect)/s
wsec/s:每秒写扇区数,即delta(wsect)/s
rkB/s:每秒读K字节数。是rsect/s的一半,因为每扇区大小为512字节
wkB/s:每秒写K字节数。是wsect/s的一半
avgrq-sz:平均每次设备I/O操作的数据大小(即扇区),即delta(rsect + wsect)/delta(rio+wio)
avgqu-sz:平均I/O队列的长度,即delta(aveq)/s/100(除以1000是因为aveq的单位为毫秒)
await:平均每次设备I/O操作的等待时间(单位:毫秒),即delta(ruse + wuse) /delta(rio+wio)
svtm:平均每次设备I/O操作的服务时间(单位:毫秒),即delta(use)/delta(rio+wi)
% utl:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的,即delta(use)/s/100(因为use的单位为毫秒)
如果%utl 接近100%,说明产生的I/O请求太多了,I/O系统已经满负荷,该磁盘可能存在瓶颈
如果idle小于70%,I/O的压力就比较大了,说明读取进程中有较多的wait。

四、查看Linux系统的平均负载

起因:有时候觉的系统响应很慢,但是没有迹象造成很慢的原因。这时候就需要看平均负载了。
负载会反映CPU、磁盘IO等综合性能。

[root@Qinglin-A ~]# uptime
 10:53:00 up 1 day, 23 min,  1 user,  load average: 0.01, 0.02, 0.03

10:53:00:代码当前时间
up 1 day, 23 min:代表系统运行了1天34分钟
user:代表运行了1个用户
load average:三个数字,以1分钟,5分钟,15分分别代码平均进程数量。
思考:
load average如何衡量当前系统负载过高呢?
1个CPU单核,这个值一定是1以下,超过1说明这条道路已经跑满。
2个CPU双核,这个值一定是4以下,双核x双核=4核,超过4,说明这条道路已经跑满。
1个CPU双核4线程,这个值一定是8以下,单核4线程+单核双线程=双核8线程,如果8,说明这条道路已经跑满了。

五、查看Linux系统的整体性能

vmstat,是用来监控linux系统的整体性能的工具
vmstat非常全面,可以观察系统的进程状态,内存使用情况,虚拟内存使用情况,I/O、中断、上下文切换、CPU的使用情况等性能信息

[root@cnCodec_31 ~]# vmstat 1 5     ==>1 5是显示5行,每行每秒递增1条最近状态
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0   3740 198748  68680 31246068    0    0     2     8    2    1  1  1 95  4  0
 0  0   3740 190560  68684 31253764    0    0     0    24 8119  847  0  0 100  0  0
 0  0   3740 187040  68684 31257584    0    0     0     0 8277  784  0  0 100  0  0
 0  0   3740 206140  68684 31238596    0    0     0     0 9033  868  0  0 100  0  0
 0  0   3740 199336  68684 31246040    0    0     0     0 8280  834  0  0 100  0  0

Procs:
r = 等待运行的进程数
b = 处在非中断睡眠状态的进程
w = 被交换出去的可运行的进程数,此数由linux计算得出,但Linux并不耗尽交换空间。
menory:
swpd = 虚拟内存使用的情况,单位为KB。
free = 空间的内存,单位为KB。
buff = 被用来作为缓存的内存数,单位为KB。
swap:
si = 从磁盘交换到内存的交换页数量,单位为KB。
so = 从内存交换到磁盘的交换页数量,单位为KB。
io:
bi = 发送到块设备的块数,单位为块。

bo = 从内存交换到磁盘的交换页面数量,单位为KB。
system:
in = 每秒的中断数,包括时钟中断。
cs = 每秒的环境(上下文)切换次数。
cpu:
按CPU的总使用百分比来显示。
us = CPU使用时间。
sy = CPU系统使用时间。
id = 闲置时间。
标准情况下r和b值应该为:
r < 5 , b ≈ 0
r经常大于3或4,且id经常少于50,表示CPU的负载很重。
bi、bo长期不等于0,表示内存不足
disk 经常不等于0,且在b中的队列大于2或3,表示io的性能不好。

六、查看Linux系统的网络连接

1、netstat 命令的功能是显示网络连接、路由表和网络接口的信息,可以让用户得知目前都有哪些网络连接正在动作。
下面是它的重要参数,以及详细的说明文字。
-A:显示任务失联的协议控制块的地址。主要用于调试。
-a:显示所有套接字的状态。在一般情况下不显示与服务器进程相关联的套接字。
-i:显示自动配置接口的状态。那此在系统初始引导后配置的接口状态不在输出之列。
-m:打印网络存储器的使用情况。
-n:打印实际地址,而不是对地址的解释或显示主机、网络名之类的符号。
-r:打印路由选择表。
-f address:family 会地给出名字的地址簇打印统计数字 和控制块信息。到目前为止,它唯 一支持的地址簇是inet
-I interface:表示只打印给出名字的接口状态。
-p prootocol-name:表示只打印给出名字的协议的统计数字和协议控制块信息。
-s:打印每个协议的统计数字。
-t:表示在输出显示中用的时间信息代替队列长度信息。

root@cmnet_lz_148:/# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:53263               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:30004               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:199               0.0.0.0:*                   LISTEN      
tcp        0      0 223.87.5.148:10050          124.251.55.199:48350        TIME_WAIT   
tcp        0      0 223.87.5.148:10050          124.251.55.199:52602        TIME_WAIT   
tcp        0      0 223.87.5.148:10050          124.251.55.199:52950        TIME_WAIT   
tcp        0      0 223.87.5.148:10050          124.251.55.199:51381        TIME_WAIT   
tcp        0      0 223.87.5.148:10050          124.251.55.199:47513        TIME_WAIT   
tcp        0      0 223.87.5.148:10050          124.251.55.199:47160        TIME_WAIT   
tcp        0      0 223.87.5.148:44973          124.251.55.201:4506         ESTABLISHED 

netstat -an参数 state的含义如下所示:
LISTEN:侦听来自远方的TCP端口的连接请求。
SYS-SENT:在发送连接请求后等待匹配的连接请求。
SYS-RECEIVED:在收到和发送一个连接请求后等待对方连接请求的确认。
ESTABLISHED:代表一个打开的连接,我们常用此作为并发数连接数。
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认。
FIN-WAIT-2:从远程TCP等待连接中断请求。
CLOSSE-WAIT:等待从本地用户发来的连接中断请求。
CLOSSE:等待远程TCP对连接中断的确认。
LAST-ACK:等待原来发向远程TCP的连接中断请求的确认。
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认。
CLOSED:没有任务连接状态。
实例:查看shell命令组合,用来查看服务器网络连接状态并汇总,命令如下:
以下是我们线上环境的状态

[qinglin@Qinglin-test ~]$ netstat -an|awk '/^tcp/ { ++s[$NF]} END {for (a in s) print a,s[a]}'
TIME_WAIT 80123
FIN_WAIT1 483
ESTABLISHED 103
FIN_WAIT2 15821
SYN_RECV 311
CLOSING 95
LAST_ACK 5
LISTEN 10

参数说明:
CLOSED:没有连接是活动的或正在进行的。
LISTEN:服务器在等等进入呼叫。
SYN_RECV:一个连接请求已经到达,等待确认。
SYN_SENT:应用已经开始,打开一个连接。
ESTABLISHED:正常数据传输状态。它的值 也可以近似理解为当前服务器的并发数。
FIN-WAIT1:应用已经开始,打开一个连接。
FIN-WAIT2:另一连已同意释放。
ITMED_WAIT:等待所有分组死掉。
CLOSING:两边同时尝试关闭。
TIME_WAIT:另一连已初始化一个释放。
LAST_ACK:等待两所有分组死掉。
2、查看路由表route -n
所显示的内容UG这行就是系统的默认网关。

[root@Qinglin-Site ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
123.56.224.0    0.0.0.0         255.255.252.0   U     0      0        0 eth1
10.172.128.0    0.0.0.0         255.255.248.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
172.16.0.0      10.172.135.247  255.240.0.0     UG    0      0        0 eth0
100.64.0.0      10.172.135.247  255.192.0.0     UG    0      0        0 eth0
10.0.0.0        10.172.135.247  255.0.0.0       UG    0      0        0 eth0
0.0.0.0         123.56.227.247  0.0.0.0         UG    0      0        0 eth1

3、跟踪路由traceroute

[root@Qinglin-Site ~]# traceroute www.baidu.com
traceroute to www.baidu.com (115.239.211.112), 30 hops max, 60 byte packets
 1  182.92.151.249 (182.92.151.249)  0.897 ms  1.182 ms  1.432 ms

4、域名解析nslookup与dig
nslookup

[root@Qinglin-Site ~]# nslookup 
> www.qinglin.net
Server:         10.202.72.116
Address:        10.202.72.116#53
Non-authoritative answer:
Name:   www.qinglin.net
Address: 123.56.227.214

dig

[root@Qinglin-Site ~]# dig www.qinglin.net          
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> www.qinglin.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<

dig指定DNS查询

[root@Qinglin-Site ~]# dig @8.8.8.8 www.qinglin.net
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @8.8.8.8 www.qinglin.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<

dig追踪解析过程

[root@Qinglin-Site ~]# dig www.qinglin.net +trace
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> www.qinglin.net +trace
;; global options: +cmd
.                       225813  IN      NS      b.root-servers.net.
.                       225813  IN      NS      l.root-servers.net.
.                       225813  IN      NS      c.root-servers.net.
.                       225813  IN      NS      j.root-servers.net.
.                       225813  IN      NS      e.root-servers.net.
.                       225813  IN      NS      g.root-servers.net.
.                       225813  IN      NS      k.root-servers.net.
.                       225813  IN      NS      d.root-servers.net.
.                       225813  IN      NS      i.root-servers.net.
.                       225813  IN      NS      a.root-servers.net.
.                       225813  IN      NS      m.root-servers.net.
.                       225813  IN      NS      h.root-servers.net.
.                       225813  IN      NS      f.root-servers.net.
;; Received 496 bytes from 10.202.72.116#53(10.202.72.116) in 61 ms
net.                    172800  IN      NS      a.gtld-servers.net.
net.                    172800  IN      NS      b.gtld-servers.net.
net.                    172800  IN      NS      c.gtld-servers.net.
net.                    172800  IN      NS      d.gtld-servers.net.
net.                    172800  IN      NS      e.gtld-servers.net.
net.                    172800  IN      NS      f.gtld-servers.net.
net.                    172800  IN      NS      g.gtld-servers.net.
net.                    172800  IN      NS      h.gtld-servers.net.
net.                    172800  IN      NS      i.gtld-servers.net.
net.                    172800  IN      NS      j.gtld-servers.net.
net.                    172800  IN      NS      k.gtld-servers.net.
net.                    172800  IN      NS      l.gtld-servers.net.
net.                    172800  IN      NS      m.gtld-servers.net.
;; Received 490 bytes from 198.41.0.4#53(198.41.0.4) in 215 ms
qinglin.net.            172800  IN      NS      dns21.hichina.com.
qinglin.net.            172800  IN      NS      dns22.hichina.com.
;; Received 180 bytes from 192.42.93.30#53(192.42.93.30) in 253 ms
www.qinglin.net.        600     IN      A       123.56.227.214
;; Received 49 bytes from 42.120.221.26#53(42.120.221.26) in 44 ms

七、查看Linux服务器的进程

在linux 服务器正常启动后,提供服务时会调用程序,占用进程。之时候我们如何查看系统中那些在被调用。
1、ps命令
ps 命令是最基本同时也是非常强大的进程查看命令。使用该命令可以确定那些进程正在运行和它所运行的状态、
进程 是否结束、进程有没有僵死、那些进程战胜了过多的资源等。总之大部分信息是可以通过执行该命令得到
的。PS命令最常用来监控后台进程的工作情况,因为后台进程是屏幕、键盘这些标准输入/输出设备进行通信的,
如果需要检测后台情况,就需要使用这个命令了。
格式:
其主要选项如下:
-a:显示系统中所有进程的信息。
-e:显示所有进程的信息。
-f:显示进程的所有信息。
-r:只显示正在运行的进程。
-u:显示面向用户的格式(包括用户名、CPU及内存的使用情况等信息)。
-x:显示所有非控制终端上的进程信息。。
-p:显示由进程ID指定的进程信息。
-t:显示指定终端上的进程信息。
要对进程进行检测和控制,首先要了解当前进程的情况,当然也就是需要查看当前进程的状态了。通过ps命令查
看进程,根据所显示的信息可以了解那个进程正在运行、那个进程被挂起了、进程已运行了多久、进程正在使用
的资源、进程的相对优先级,以及进程的标志号(PID)。所有这些信息对用户都有用,以于系统管理员来说优
其重要。要使用ps -aux使命令可以获得终端上所有用户的有关进程的所有信息,这个也是平时用得最多的命令
之一。

[root@Qinglin-Site ~]# ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  19232   572 ?        Ss    2015   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S     2015   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S     2015   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S     2015   1:34 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S     2015   0:00 [migration/0]

USER:表示启动用户
PID:表示进程标志号
%CPU:表示运行该进程占用CPU的时间与该进程总的运行时间之比。
%MEN:表示该进程占用内存与总内存之比。
VSZ:表示战胜的虚拟内存大小,以KB为单位
RSS:为进程占用的物理内存值,以KB为单位
TTY:表示该进程建立时所对应的终端,“?”表示该进程不占用终端
STAT:表示该进程的运行状态。包括以下几种代码:D:不可中断的睡眠,H:不可中断的睡眠,R:就绪(在可运行队列中);S:睡眠,T:被跟踪或停止,Z,终止(僵死)的进程,这些进程不存在但是暂时无法消除,W:没有足够的内存分页可分配,<:高优先级的进程,N:低优先级的进程,L:有内存分页分配并锁在内存体内(实时系统或I/O)
START:为进程开始时间
TIME:为执行的时间
COMMAND:是对应的命令名
2、TOP命令
top命令可动态显示服务器的进程信息。top命令和ps 命令的基本作用是相同的,都显示系统当前进程的状态。
但top是一个动态显示过程中,即用户可以通过按键来不断刷新当前状态。

top - 18:46:14 up 195 days, 5 min,  2 users,  load average: 0.68, 0.51, 0.56
Tasks: 102 total,   2 running, 100 sleeping,   0 stopped,   0 zombie
Cpu(s): 61.5%us,  2.0%sy,  0.0%ni, 36.2%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:   1920740k total,  1813968k used,   106772k free,   154040k buffers
Swap:        0k total,        0k used,        0k free,   528292k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                  
15798 nginx     20   0  334m  48m 4164 S 12.3  2.6   1:08.70 php-fpm                                                                  
15821 nginx     20   0  334m  48m 4164 S 12.0  2.6   0:53.05 php-fpm                                                                  
15826 nginx     20   0  334m  48m 3884 S 12.0  2.6   0:52.69 php-fpm                                                                  
15799 nginx     20   0  334m  48m 4184 S 11.6  2.6   0:53.47 php-fpm                                                                  
15816 nginx     20   0  333m  47m 4188 S  8.6  2.5   0:53.64 php-fpm                                                                  
15823 nginx     20   0  334m  48m 4240 R  6.0  2.6   0:49.74 php-fpm                                                                  
15719 nginx     20   0 47236 4984 2400 S  0.3  0.3   0:39.16 nginx                                                                    
15801 nginx     20   0  334m  48m 4168 S  0.3  2.6   1:03.08 php-fpm  

第一行内容依次表示当前时间、系统启动的时间、当前系统登陆的用户数、平台负载。
第二行依次显示的是所有启动的、目前运行的、挂起(sleeping)的和无用(Zombie)的进程。
第三行显示的是CPU的使用情况,包括系统战胜的比例、用户使用比例、闲置(Idle)比例。
第四行显示物理内存的使用情况、包括可以使用的内存、已经内存、空闲内存、缓冲区占用的内存。
第五行显示交换分区的使用情况、包括总的交换分区、使用的、空间的和用于高速缓存的交换分区。
第六行显示的内容如下:
PID:进程标志号,是非零正整数
USER:进程所有者的用户名
PR:进程的优先级别
NI:进行的优先级别数值
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR:进程使用的共享内存值
STAT:进程的状态,其中s表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程是负数
%CPU:该进程占用的CP时间
%MEN:该进程占用的物理内存和总内存的百分比
TIME:该进程启动后占用的CPU时间
COMMAND:进程启动的启动命令名称,如果这一行显示不下,在进程中会有一个完整的命令行。
在top命令使用过程中,还可以使用一些交互的命令一完成其他参数的功能,这些命令是通过快捷键启动的,格式如下所示:
<空格>:立刻刷新
主要参数如下所示:
P:根据CPU使用的多少进行排序
T:根据时间、累计时间排序。
q:退出top命令
m:切换显示进程和CPU状态信息
t:切换显示进程的CPU状态信息
c:切换显示命令名称和完整命令行
M:根据使用内存的大小进行排序
W:将当前设置写入 ~./top文件中,这是top配置文件的推荐方法
4、kill与killall命令
kill命令的作用是终止一个进程。其格式如下:
kill [ -s singnal | -p] [ -a ]pid…
它的主要选项如下所示。
-s:指定发送的信号。
-p:模拟发送信息号。
-l:指定诈的名称列表。
pid:要终止的进程ID号。
signal:表示信号。
kill可能指定的信息送至程序中。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,则可以使用SIGKILL(9)信息尝试强制删除程序。
kill命令的工作原理是,向linux系统的内核发送一个系统操作信号和某个程序的进程标志号,然后系统内核就可以对进程标志号指定的进程进行操作了。
当需要中断一个前台进程的时候,通常使用ctrl+c 组合键;但是对于一个后台进程来说,就不是一个组合键所能解决的了,这时就需要kill命令。
另外 kill -9 可以强制杀掉进程,尤其适用于僵尸进程。
killall命令的作用是通过程序的名字,直接杀死所有进程,这里简单介绍一下。如果要杀掉nginx的所有进程,要用kill的话需要执行9次,但如果用killall nginx则可以
轻松地一次性解决问题。另外,pkill可以在服务器踢人,很方便。

八、额外补充添加静态路由的命令

以下是Centos 5.5 添加静态路径的方法,手动添加路由的方式如下:

route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.25

其中route add -net 是Cenos 下添加静态路由网络的方式,netmask是网络段的子网,gw表示下一条地址,其实就是指172.16.6.0的网段的路由可以通过172.16.2.25出去。
这时临时的效果,如果服务器重启则失效,如何能让其永久生效,则要写下面的内容。

[root@Qinglin-Test1 ~]# vim /etc/sysconfig/network-scripts/route-eth0
172.16.6.0/24 via 172.16.2.25

写入上述信息后,它会一直生效。在Centos 下查看路由表的方式很多,netstat -rn 或route -n 均可。

01300000330328123519647361170

转载请注明:清麟博客 » 查看Linux系统状态的常用命令

喜欢 (2)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址