查看Linux系统状态的相关命令使用

Posted 想剪个寸头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查看Linux系统状态的相关命令使用相关的知识,希望对你有一定的参考价值。

查看系统负载:

w/uptime   最后面三个数字表示1分钟,5分钟,15分钟平均有多少个进程占用CPU
占用CPU的进程可以是Running,也可以是Waiting
某一时刻1颗CPU只能有一个进程在使用其资源

top命令:

top 回车就可以进入到top界面
每3秒刷新一次
默认按cpu百分比排序,可以按M键按照内存使用率大小排序
按数字1,可以显示所有CPU使用率详情

top -bn1 静态显示所有进程的情况,也是按cpu百分比排序
静态显示进程信息,方便在shell脚本中使用top命令

查看cpu核数

cat /proc/cpuinfo
lscpu

free命令:内存相关的

free查看内存和swap使用情况,关注最后一列的available,这个数字是真正剩余的物理内存大小
free -k 
-m 
-g 
-h
表示已各种形式的显示出来 比如 100k 100M 显示。

buffer和cached
(cpu到磁盘经过的内存叫buffer)
(磁盘到cpu经过的内存叫cached)
两个为想法的
buffer : 这部分内存是从CPU产生即将写入到磁盘里去的那部分数据;
cached 这部分数据是先从磁盘里读出来,然 后临时存到内存里的那部分数据,(

手动增加swap

dd if=/dev/zero of=/bigfile bs=1M count=1000  
###dd对磁盘操作的一个工具 if表示来源 of表示目的  /bigfile表示根下 bs表示决定每一个块有多大 count表示挂载多少个块
mkswap /bigfile
chmod 600 /bigfile
swapon /bigfile

演示: 手动模拟一块儿磁盘,并格式化成swap的格式

监控磁盘:

iostat 看磁盘的使用率及读写速度

yum install -y sysstat  没有这个命令安装下
iostat  -dx 1     查看磁盘百分比信息  最右侧%util 显示的是磁盘百分比
iostat  -dx 1 5    表示显示五次自动停止

也可以使用 iotop  查看
 yum install -y iotop
iotop 直接回车执行  动态显示,按IO使用率大小排序

综合查看磁盘使用情况,断定瓶颈点

vmstat 1 10  表示一秒一次 显示十次停止


监控网卡流量 sar

### sar的命令是由  sysstat包装的   
yum install -y sysstat
sar -n DEV 1 10       DEV表示设备

sar 命令看的是ls /var/log/sa  下的文件  sa下有一个当前日期的文件
   cat无法查看,只能使用sar查看  例如 sar -f /var/log/sa/sa07 
   如果只是想看网卡的流量显示使用 -n 加DEV
   如:
sar -n DEV -f /var/log/sa/sa07     如图二所示!

sar  直接执行 看的是cpu
sar -b  看的是磁盘 (io)
sar -q  看的是系统负载   还可以看历史系统负载加上-f 指定文件即可 

ps: 小常识
bit   比特 (带宽单位)
Byte  字节 (速度传输单位)
8bit = 1Byte   2MB/s  2*8=16Mbit   100Mbit  12.8MB/s



监控网卡流量 nload

nload 监控查看网卡流量比sar 更直观

一般yum源是没有nload的包的 需要现先epel的扩展源才能赚nload

yum -y install epel-release   装完之后再转nload
yum -y install nload    

装好之后直接 输入nolad 执行  可以动态显示网卡流量  
inconming:表示进来的
outgoing: 表示出去的

可以按方向键切换网卡查看
ethtool 加网卡名字可以查看网卡的信息,查看网卡是否在链接状态
例如:
ethtool ens33

mii-tool 加网卡名称 也可以查看网卡信息,是否为链接状态
例如:
mii-tool ens33 

ps: link 0k  表示链接    no link 未连接

查看进程:

ps  执行 只查看当前终端运行的一些进程
ps  aux  可以查看系统里面所有的用户包括前台后台系统级别用户级别的所有的进程
ps -elf  与ps aux 类似
ps -eLf  查看线程  例如查看mysql的线程  ps -eLf | grep mysql
ls -l /proc/pid/  #查看一个进程的一些详细信息
ps aux 列出的的第一列为用户 第二列的PID下的数字为进程的id号
       可以通过 ls /proc/跟id号   可以查看列出该进程所有的相关目录
       第八列的 STAT 表示的字符为
       S Sleep 
       R Running
       s 父进程
       N 低优先级
       < 高优先级
       + 前台进程
       l 多线程进程
       Z 僵尸进程

查看网络连接状况:

netstat -lnp     查看监听端口 
netstat -lntp    只查看tcp的
netstat -lntup   查看tcp、udp的
netstat -an      查看系统的所有的网络链接
ss -an           与netstat -an  一样 只是 ss -an 显示的会比较快

抓包的工具:

tcpdump (安装:yum install -y tcpdump)
tcpdump 直接执行就可查看抓取的包
tcpdump -nn  表示以数字的形式显示IP和port    如果不显示 可以指定网卡名称 和port
例如:   tcpdump -nn -i ens33 port 80
tcpdump -nn -i ens33 -c 100 -w 1.txt (-c 指定抓100个包 -w指定把抓到的包写到1.txt中)
tcpdump -nn -r 1.cap   使用这个命令读取这个文件
tcpdump -i ens33  -nn not port 22 and not port 80 and not host 192.168.111.1
         表示抓包时不抓22和80端口、192.168.111.1 这个IP的也不要 (多个条件或者单个条件)

wireshark  (安装:yum install -y wireshark)
wireshark --> tshark   使用方法与tcpdump 类似
比较好用的就是下面这条命令 它主要针对的事80端口的   
最终执行后出来的结果就跟访问的日志一样
有来源IP、有域名和url等等……    (使用时可以直接复制执行 -i 指定网卡主要要跟自己的匹配)
tshark -i ens33  -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

以上是关于查看Linux系统状态的相关命令使用的主要内容,如果未能解决你的问题,请参考以下文章

查看Linux系统状态的相关命令使用

io性能freeps查看网络状态linux下抓包

Linux系统相关命令

如何查看linux系统中空闲内存/物理内存使用/剩余内存

linux查看磁盘空间 命令

怎么在linux 系统下查看网卡状态信息?