一、监控io性能

iostat命令

iostat命令被用于监视系统输入输出设备和cpu的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出cpu使用情况。通vmstat一样,iostat也有一个弱点,就是它不能对耨个进程进行深入分析,仅对系统的整体情况进行分析。

iostat -x (查看磁盘状态)

iostat和sar是同一个包,安装sysstat即可。

[root@localhost ~]# iostat -x 1

Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 2017年11月28日 _x86_64_ (1 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

0.58 0.00 0.79 0.58 0.00 98.04

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 0.00 0.27 5.04 1.88 187.33 72.45 75.09 0.08 11.58 10.20 15.27 2.37 1.64

sdb 0.00 0.00 0.28 0.00 1.76 0.00 12.55 0.00 0.55 0.55 0.00 0.50 0.01

dm-0 0.00 0.00 0.06 0.00 0.43 0.00 15.20 0.00 0.35 0.35 0.00 0.35 0.00

说明: util%表示io等待占比,正常情况下该值和磁盘读写(r/w)成正比,如果该值很大,读写数值很小则说明磁盘存在问题,系统性能会受影响!

iotop命令 (查看磁盘状态)

iotop命令是一个用来见识磁盘i/o使用状况的top类工具(动态显示)。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。

安装iotop命令:yum install -y iotop

[root@localhost ~]# iotop

Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s

Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s

TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND

1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-root~-system --deserialize 21

2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]

3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]

517 be/4 dbus 0.00 B/s 0.00 B/s 0.00 % 0.00 % dbus-daemon --system --~ile --systemd-activation

......

注意:主要关注的是io%那一列!

iotop常用快捷键

左右方向键:改变排序方式,默认按IO排序

r:改变排序顺序

o:只显示用IO输出的进程

p:进程/线程的显示方式的切换

a:显示累积使用量

q:退出

free命令

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区

直接运行free

[root@localhost ~]# free

total used free shared buff/cache available

Mem: 999936 121428 562816 6812 315692 694048

Swap: 2097148 0 2097148

free -h:以适合的单位显示大小。

free -t:显示内存各列信息的总和。

-b,k,m,g:以byte、KB、M、G为单位显示。默认单位为KB。

说明:

total=used+free+buff/cache

available=free+buff/cache(剩余部分)

所谓的查看内存剩余是看available。

cache(缓存):磁盘(数据)→内存(cache)→cpu

buff(缓存):cpu→内存(buff)→磁盘

ps命令

ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

a:显示现行终端机下的所有程序,包括其他用户的程序。

u:以用户为主的格式来显示系统状况。

x:显示所有程序,包括历史进程。

e:显示所有进程(同a)

f:显示UID、PPIP、C与STIME栏

l:显示进程详细信息

ps aux

[root@centos-01 ~]# ps aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.1 0.3 128092 6696 ? Ss 19:55 0:00 /usr/lib/systemd/systemd --switched-root --system --d

root 2 0.0 0.0 0 0 ? S 19:55 0:00 [kthreadd]

root 3 0.0 0.0 0 0 ? S 19:55 0:00 [ksoftirqd/0]

root 6 0.0 0.0 0 0 ? S 19:55 0:00 [kworker/u256:0]

......

PID :进程id (kill+PID 杀死进程)ls -l /proc/PID/为进程的目录

VSZ :虚拟内存

RSS :物理内存

STAT :进程状态

STAT 进程状态

D:不能中断的进程。(进程中断后会对程序或结果有影响,所以布不能中断。)这个状态会影响系统负载,会使系统负载偏高,因为cpu使用率不高,所以硬件五太大压力。

R:run状态进程。某一个时间段内在使用cpu。

S:sleep状态进程

s:主进程

T:暂停的进程

Z:僵尸进程

<:>

N:低优先级进程

L:内存中被锁定了内存分页

l:多线程进程

+:前台进程

ps elf

[root@centos-01 ~]# ps elf

F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND

4 0 2095 2092 20 0 115516 2144 wait Ss pts/0 0:00 -bash USER=root LOGNAME=root HOME=/root PATH=/us

0 0 2202 2095 20 0 148928 1452 - R+ pts/0 0:00 \_ ps elf XDG_SESSION_ID=1 HOSTNAME=centos-01 S

4 0 550 1 20 0 110036 840 n_tty_ Ss+ tty1 0:00 /sbin/agetty --noclear tty1 linux LANG= PATH=/us

......

进程和线程

进程

进程是程序执行时的意识实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。

进程——资源分配的最小单位

线程

线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源。

线程——程序执行的最小单位

进程有独立的地址空间,线程没有单独的地址空间(同一进程内的线程共享进程的地址空间)。

查看网络状态

netstat 命令

netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。)

a:all,显示所有连线中的socket

l:listening,显示监控中的服务器的socket

n:numeric,直接使用IP地址,而不通过域名服务器。

p:programs,显示正在使用socket的程序识别码和程序名称

t:tcp,显示tcp传输协议的连接状况

netstat -lnp 查看监听端口

[root@centos-01 ~]# netstat -lnp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1382/sshd

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1896/master

tcp6 0 0 :::22 :::* LISTEN 1382/sshd

tcp6 0 0 ::1:25 :::* LISTEN 1896/master

udp 0 0 127.0.0.1:323 0.0.0.0:* 525/chronyd

udp6 0 0 ::1:323 :::* 525/chronyd

raw6 0 0 :::58 :::* 7 566/NetworkManager

Active UNIX domain sockets (only servers)

Proto RefCnt Flags Type State I-Node PID/Program name Path

unix 2 [ ACC ] STREAM LISTENING 19595 1896/master public/pickup

unix 2 [ ACC ] STREAM LISTENING 19599 1896/master public/cleanup

unix 2 [ ACC ] STREAM LISTENING 19602 1896/master public/qmgr

......

netstat -an 查看系统网络连接(tcp/ip)状态

[root@centos-01 ~]# 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:22 0.0.0.0:* LISTEN

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN

tcp 0 52 192.168.159.128:22 192.168.159.1:49853 ESTABLISHED

tcp6 0 0 :::22 :::* LISTEN

tcp6 0 0 ::1:25 :::* LISTEN

udp 0 0 127.0.0.1:323 0.0.0.0:*

udp 0 0 192.168.159.128:54597 51.15.41.135:123 ESTABLISHED

udp6 0 0 ::1:323 :::*

raw6 0 0 :::58 :::* 7

Active UNIX domain sockets (servers and established)

Proto RefCnt Flags Type State I-Node Path

unix 2 [ ACC ] STREAM LISTENING 19595 public/pickup

unix 2 [ ACC ] STREAM LISTENING 19599 public/cleanup

unix 2 [ ACC ] STREAM LISTENING 19602 public/qmgr

......

netstat -lntp 只查看tcp协议连接,不看socket

[root@centos-01 ~]# netstat -lntp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1382/sshd

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1896/master

tcp6 0 0 :::22 :::* LISTEN 1382/sshd

tcp6 0 0 ::1:25 :::* LISTEN 1896/master

查看tcp协议状态的命令

[root@centos-01 ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'

LISTEN 4

ESTABLISHED 1

ss命令

ss命令用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效,缺点是不会显示进程的名称。

a:显示所有套接字(socket)

n:不解析服务器名称,以数字方式显示

[root@centos-01 ~]# ss -an

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port

nl UNCONN 0 0 0:0 nl UNCONN 0 0 0:-1111489994

nl UNCONN 0 0 0:-1111489994 *

linux下抓包

tcpdump 抓包工具

Linux tcpdump命令用于倾倒网络传输数据。

执行tcpdump指令可列出经过指定网络界面的数据包文件头,在Linux操作系统中,你必须是系统管理员。

i:指定网卡名,使用指定的网络送出数据包

c:指定数量

w:指定存放位置

r:read,从指定文件查看数据包数据

n:不把主机的网络地址转换成名字

用法

tcpdump -nn -i ens33 (第一个n表示以数字形式显示IP,如果不加该选项会显示成主机名。)

tcpdump -nn ens33 port22 (not port22)指定端口为22的(非22的)

tcpdump -nn ens33 port 22 and host 192.168.159.128 指定多个条件(host后跟主机名或IP)

tcpdump -nn -i ens33 -c 10 -w/tmp/1.cap指定抓包数量和存放位置

[root@centos-01 ~]# tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap

tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes

10 packets captured

11 packets received by filter

0 packets dropped by kernel

注意:

cap的内容无法用cat命令查看,可以使用tcpdump -r命令查看

[root@centos-01 ~]# tcpdump -r /tmp/1.cap

reading from file /tmp/1.cap, link-type EN10MB (Ethernet)

22:06:14.751532 IP centos-01.ssh > 192.168.159.1.49853: Flags [P.], seq 2771172726:2771172874, ack 2769153140, win 318, length 148

22:06:14.792115 IP 192.168.159.1.49853 > centos-01.ssh: Flags [.], ack 148, win 2053, length 0

22:06:14.959435 ARP, Request who-has gateway tell 192.168.159.1, length 46

22:06:15.959718 ARP, Request who-has gateway tell 192.168.159.1, length 46

......

tshark 命令

该命令也是用于抓包的。

使用前需要安装该工具wireshark。

查看指定网卡80端口的1个web服务的访问情况(类似于web的访问日志):tshark -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" ]

抓取mysql的查询

方法一:

[root@centos-01 ~]# tshark -n -i ens33 -R 'mysql.query' -T fields -e "ip.src" -e "mysql.query"

tshark: -R without -2 is deprecated. For single-pass filtering use -Y.

Running as user "root" and group "root". This could be dangerous.

Capturing on 'ens33'

0 packets captured

方法二:

[root@centos-01 ~]# tshark -i ens33 port 3307 -d tcp.port==3307,mysql -z "proto,colinfo,mysql.query,mysql.query"

Running as user "root" and group "root". This could be dangerous.

Capturing on 'ens33'

packets captured

因为无相关进程,所以没有抓取到任何包。

*抓取指定类型的MySQL查询

[root@centos-01 ~]# tshark -n -i ens33 -R 'mysql matches "SELECT|INSERT|DELETE|UPDATE"' -T fields -e "ip.src" -e "mysql.query"

tshark: -R without -2 is deprecated. For single-pass filtering use -Y.

Running as user "root" and group "root". This could be dangerous.

Capturing on 'ens33'

8 packet dropped

0 packets captured

统计http的状态

[root@centos-01 ~]# tshark -n -q -z http,stat, -z http,tree

Running as user "root" and group "root". This could be dangerous.

Capturing on 'nflog'

注意::该命令需要按ctrl+c才会显示结果!

tshark 增加时间标签

tshark -t ad

tshark -t a

centost查看网络信息_监控io性能、free命令、ps命令、查看网络状态、Linux下抓包...相关推荐

  1. 监控io性能, free命令, ps命令, 查看网络状态, linux下抓包

    2019独角兽企业重金招聘Python工程师标准>>> 监控io性能 free命令 ps命令 查看网络状态 linux下抓包 --- 监控io性能 查看磁盘 iostat 和sar属 ...

  2. Linux日常运维管理技巧(一)监控系统状态、监控网卡流量、监控IO性能、查看系统进程、查看网络状态、Linux下抓包tcpdump、Linux网络相关、DNS配置

    目录 监控系统状态 监控网卡流量 监控IO性能 查看系统进程 查看网络状态 Linux下抓包 Linux网络相关 监控系统状态 w/uptime查看系统负载 [root@zyshanlinux-01 ...

  3. 监控io性能,free命令,ps网络命令,查看网络状态,Linux下抓包

    10.6 监控io性能 磁盘的io是一个非常重要的指标,所以要更详细的查看磁盘状态,需要用到iostat命令,如果之前已经安装了sysstat包的话,在安装sysstat包时iostat命令就已经被安 ...

  4. linux下怎么监控网络 io swap,监控io性能,free命令,ps命令,查看网络状态,linux下抓包...

    监控io性能 [root@localhost ~]# iostat Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 2017年09月12日 _x ...

  5. 七周二次课(1月23日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包...

    七周二次课(1月23日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包 ========================== ...

  6. linux下怎么监控网络 io swap,监控io性能,free命令,ps命令,查看网络状态,linux下抓包(示例代码)...

    监控io性能 [[email protected] ~]# iostat Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 2017年09月12日 ...

  7. ​七周二次课(5月7日)监控io性能、free命令、ps命令、查看网络状态、linux下抓包...

    2019独角兽企业重金招聘Python工程师标准>>> 10.6 监控IO性能 1.监控 io 性能 这个 iostat 命令,在安装 sar 命令的时候,就一起安装了,所以不用重新 ...

  8. 监控io性能、free命令、ps命令、查看网络状态、linux下抓包

    2019独角兽企业重金招聘Python工程师标准>>> 监控io性能 iostat -x 磁盘使用 iostat 在安装sysstat的时候会自动安装上这个命令.它和sar是同一个包 ...

  9. linux下抓包工具 wireshark,网络抓包工具Wireshark下载安装使用详细教程

    叮嘟!这里是小啊呜的学习课程资料整理.好记性不如烂笔头,今天也是努力进步的一天.一起加油进阶吧! 一.关于Wireshark Wireshark(前身 Ethereal)是一个网络包分析工具.该工具主 ...

最新文章

  1. ICML 2019全纪录:论文解读、workshop讨论、核心知识都在这里了
  2. 旋转目标检测rotation-yolov5笔记
  3. fortran基础知识1----循环
  4. Sun Oracle服务器做磁盘raid
  5. winxp一键锁定计算机,WinXP下锁定计算机的3种方法
  6. 通俗易懂!视觉slam第十一部分——线性系统和卡尔曼滤波
  7. uboot中DEBUG定义
  8. 树莓派+docker+tensorflow
  9. C++基础知识(五)C++的一些特性
  10. 在jquery中想要找到所以同辈元素方法_在jquery中siblings找到所有元素的同辈元素,是什么意思,有人可以给我详细讲解一下不?...
  11. mysql什么是主键和外键?
  12. 信息技术知识点汇总(必修)
  13. 用户的登陆认证、DjangoRestFramework JWT多条件登录,导航栏实现
  14. python安装报错:User installations are disabled via policy on the machine. 0x80070643
  15. ps4仁王服务器不稳定,仁王运行流畅图文教学 卡顿解决方法指南 怎样运行流畅 流畅运行方法-游侠网...
  16. NandFlash驱动移植基础知识
  17. tf.train.exponential_decay的用法
  18. GWAS理论 1-3 群体结构与亲缘关系评估
  19. Kubernetes学习之Helm包管理器
  20. 一文读懂数据治理怎么做

热门文章

  1. 谷歌dns服务器未响应,“DNS服务器未响应”怎么办? - 爱绿豆
  2. vue使用addRoutes()方法后,this.$router.options.routes未更新
  3. R语言机器学习篇——随机森林
  4. C/C++中strstr()函数:返回字符串中首次出现子串的地址
  5. 数据治理的目标和原则
  6. 用vue开发一个猫眼电影web app
  7. 多元线性回归的正规方程解
  8. 拼多多首页html制作,拼多多商家视频怎么制作?有什么要求?
  9. JAVA-SSH2:JSch试用
  10. 今晚7:30 | IJCAI专场五!不见不散!