linu 中常用的查看系统的命令、cpu、内存、网卡流量

查看cpu信息概要(ubuntu 、linux、centos): #lscpu Architecture:          x86_64                           #架构x86_64 CPU(s):                2                                   #逻辑cpu颗数是2 Thread(s) per core:    1                           #每个核心线程数是1                  Core(s) per socket:    2                           #每个cpu插槽核数/每颗物理cpu核数是2 CPU socket(s):         1                            #cpu插槽数是1 Vendor ID:             GenuineIntel           #cpu厂商ID是GenuineIntel CPU family:            6                              #cpu系列是6 Model:                 58                                #型号58 Stepping:              9                              #步进是9\k CPU MHz:               800.000                 #cpu主频是800MHz Virtualization:        VT-x                         #cpu支持的虚拟化技术VT-x Hypervisor vendor: VMware #当前的平台 Virtualization type: full #支持虚拟化类型 L1d cache:             32K                         #一级缓存32K(表示cpu的L1数据缓存为32k) L1i cache:             32K                          #一级缓存32K(具体为L1指令缓存为32K) L2 cache:              3072K                      #二级缓存3072K 查看cpu运行模式

getconf LONG_BIT

32 (说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)

getconf LONG_BIT

64 (说明当前CPU运行在64bit模式下, 但不代表CPU不支持32bit)

查看当前操作系统内核信息 # uname -a Linux openstack 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 查看当前操作系统发行版信息  #cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m 查看linux的版本 cat /etc/redhat-release 监控系统状态 1.W 时间,系统运行时间,登录用户数,平均负载:有三个值 1:1分钟内系统的平均负载值; 2:5分钟内系统的平均负载值; 3:15分钟系统的平均负载值;单位时间内CPU活动进程数,当然这个值越大就说明你的服务器压力越大,正常状态小于服务器CPU总数。

2.Vmstat 1)procs 显示进程相关信息 r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了; b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要你关注一下了; 2)memory 内存相关信息 swpd :表示切换到交换分区中的内存数量 ; free :当前空闲的内存数量; buff :缓冲大小,(即将写入磁盘的); cache :缓存大小,(从磁盘中读取的); 3)swap 内存交换情况 si :由内存进入交换区的数量; so :由交换区进入内存的数量; 4)io 磁盘使用情况 bi :从块设备读取数据的量(读磁盘); bo: 从块设备写入数据的量(写磁盘); 5)system 显示采集间隔内发生的中断次数 in :表示在某一时间间隔中观测到的每秒设备中断数; cs :表示每秒产生的上下文切换次数; 6)CPU 显示cpu的使用状态 us :显示了用户下所花费 cpu 时间的百分比; sy :显示系统花费cpu时间百分比; id :表示cpu处于空闲状态的时间百分比; wa :表示I/O等待所占用cpu时间百分比; st :表示被偷走的cpu所占百分比(一般都为0,不用关注); 常会关注r列,b列,和wa列。IO部分的bi,bo如果磁盘io压力很大时,这两列的数值会比较高。另外当si, so两列的数值比较高,并且在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。 ’vmstat 1 5’ 表示每隔1秒钟打印一次系统状态,连续打印5次。 3.Top 这个命令用于动态监控进程所占系统资源,每隔3秒变一次。这个命令的特点是把占用系统资源(CPU,内存,磁盘IO等)最高的进程放到最前面。top命令打印的信息系统负载(load average)、进程数(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况。 top命令时使用-bn1 这个组合选项,它表示非动态打印系统资源使用情况,可以用在脚本中 -b : Batch mode operation Starts top in ’Batch mode’, which could be useful for sending output from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations limit you’ve set with the ’-n’ command-line option or until killed. -n : Number of iterations limit as: -n number Specifies the maximum number of iterations, or frames, top should produce before ending. •批量模式操作 从“批处理模式”开始,这可能是有用的,用于发送输出从顶部到其他程序或一个 文件。在这种模式下,顶部将不接受输入和运行,直到迭代限制,您已经设置的' - ' 命令行选项或直到死亡。 •迭代次数限制为:-数 指定的迭代次数最多,或帧,在结束前应该产生。 4.Sar 1)查看网卡流量信息 1.查看历史网卡流量信息 命令sar -n DEV IFACE:表示设备名称 rxpck/s 表示每秒进入收取的包的数量(单位Byte) txpck/s 表示每秒发送出去的包的数量 rxbyt/s 表示每秒收取的数据量(单位Byte) txbyt/s表示每秒发送的数据量 -A:所有报告的总和 -u:输出CPU使用情况的统计信息 -v:输出inode、文件和其他内核表的统计信息 -d:输出每一个块设备的活动信息 -r:输出内存和交换空间的统计信息 -b:显示I/O和传送速率的统计信息 -a:文件读写情况 -c:输出进程统计信息,每秒创建的进程数 -R:输出内存页面的统计信息 -y:终端设备活动情况 -w:输出系统交换活动信息 -o: -o log.txt 输出到当前目录中,将结果以文件的形式输出 如果有一天你所管理的服务器丢包非常严重,那么你就应该看一看这个网卡流量是否异常了,如果rxpck/s 那一列的数值大于4000,或者rxbyt/s那列大于5,000,000则很有可能是被***了或者在拷贝数据。 2.查看当前网卡流量 信息‘sar -n DEV 1 5‘ 3.查看20号的网卡流量信息 ‘sar -n DEV -f /var/log/sa/sa20|more‘ 2)查看历史负载 ‘sar -q’ [root@master local]# sar -h 用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ] 主选项和报告: -b I/O 和传输速率信息状况 -B 分页状况 -d 块设备状况 -I { <中断> | SUM | ALL | XALL } 中断信息状况 -m 电源管理信息状况 -n { <关键词> [,...] | ALL } 网络统计信息 关键词可以是: DEV 网卡 EDEV 网卡 (错误) NFS NFS 客户端 NFSD NFS 服务器 SOCK Sockets (套接字) (v4) IP IP 流 (v4) EIP IP 流 (v4) (错误) ICMP ICMP 流 (v4) EICMP ICMP 流 (v4) (错误) TCP TCP 流 (v4) ETCP TCP 流 (v4) (错误) UDP UDP 流 (v4) SOCK6 Sockets (套接字) (v6) IP6 IP 流 (v6) EIP6 IP 流 (v6) (错误) ICMP6 ICMP 流 (v6) EICMP6 ICMP 流 (v6) (错误) UDP6 UDP 流 (v6) -q 队列长度和平均负载 -r 内存利用率 -R 内存状况 -S 交换空间利用率 -u [ ALL ] CPU 利用率 -v Kernel table 状况 -w 任务创建与系统转换统计信息 -W 交换信息 -y TTY 设备状况 5.Free 当前系统的总内存大小和使用的内存以及剩余内存的情况,-m以MB显示-g以GB显示。 6.Ps ps aux|grep sshd 加管道符和grep使用 PID :进程的id,这个id很有用,在linux中内核管理进程就得靠pid来识别和管理某一个程,比如我想终止某一个进程,则用 ‘kill 进程的pid’,有时并不能杀掉,则需要加一个-9选项了’kill -9 进程pid’ STAT :表示进程的状态,进程状态分为以下几种 D  不能中断的进程(通常为IO) R  正在运行中的进程 S  已经中断的进程,通常情况下,系统中大部分进程都是这个状态 T  已经停止或者暂停的进程,如果我们正在运行一个命令,比如说sleep 10,如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态 W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配 X  已经死掉的进程(这个好像从来不会出现) Z  僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。 <  高优先级进程 N  低优先级进程 L   在内存中被锁了内存分页 s   主进程 l   多线程进程 +  代表在前台运行的进程 7.netstat查看网络状况 netstat命令用来打印网络连接状况、系统所开放端口、路由表等信息 netstat -lnp (打印当前网络状态以及系统启动哪些端口) netstat -an (打印网络连接状况) 配合grep和管道符来监控其他服务的具体信息例如netstat -an |grep 80