一、查看CPU的详细情况
判断服务器CPU的情况依据如下:
a. 具有相同的core id 的PUC是由同一个core的超线程。
b. 具有相同的physical id 的CPU是同一个CPU封闭的线程或核心
方法1:
物理个CPU个数如下:
以下为2个CPU
[[email protected] ~]# cat /proc/cpuinfo|grep "physical id"|sort|uniq|wc -l 2
每个物理CPU中的core的个数(即核数):
[[email protected] ~]# cat /proc/cpuinfo |grep "cpu cores"|sort|uniq|wc -l 1
逻辑CPU的个数
[[email protected] ~]# cat /proc/cpuinfo |grep "process"|wc -l 24
方法2:
lscpu命令查看
[[email protected] ~]# 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中没有此命令。
[[email protected] ~]# 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个字节来显示内容。
[[email protected] ~]# 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的硬盘
[[email protected] ~]# 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)
[[email protected] ~]# 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)
[[email protected] ~]# 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性能
[[email protected] ~]# 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等综合性能。
[[email protected] ~]# 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的使用情况等性能信息
[[email protected]_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:表示在输出显示中用的时间信息代替队列长度信息。
[email protected]_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命令组合,用来查看服务器网络连接状态并汇总,命令如下:
以下是我们线上环境的状态
[[email protected] ~]$ 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这行就是系统的默认网关。
[[email protected] ~]# 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
[[email protected] ~]# 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
[[email protected] ~]# 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
[[email protected] ~]# 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查询
[[email protected] ~]# 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追踪解析过程
[[email protected] ~]# 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使命令可以获得终端上所有用户的有关进程的所有信息,这个也是平时用得最多的命令
之一。
[[email protected] ~]# 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出去。
这时临时的效果,如果服务器重启则失效,如何能让其永久生效,则要写下面的内容。
[[email protected] ~]# vim /etc/sysconfig/network-scripts/route-eth0 172.16.6.0/24 via 172.16.2.25
写入上述信息后,它会一直生效。在Centos 下查看路由表的方式很多,netstat -rn 或route -n 均可。