性能分析与调优: Linux 网络性能 观测工具

目录

一、实验

1.环境

2.ss

3.ip

4.ifconfig

5.nstat

6.netstat

7.sar

8.nicstat

9.ethtool

10.tcplife

11.tcptop

12.tcpretrans

13.bpftrace

14.tcpdump

15.Wireshark

二、问题

1.nicstat如何安装和使用

2.Wireshark如何安装使用


一、实验

1.环境

(1)主机

表1-1 主机

主机 架构 组件 IP 备注
prometheus

监测

系统

prometheus、node_exporter  192.168.204.18
grafana 监测GUI grafana 192.168.204.19
agent 

监测

主机

node_exporter 192.168.204.20

(2)网络性能观测工具

表1-2 网络性能观测工具

序号 工具 描述
1 ss 套接字统计信息
2 ip 网络接口和路由统计信息
3 ifconfig 网络接口统计信息
4 nstat 网络栈统计信息
5 netstat 多种网络栈和接口统计信息
6 sar 历史统计信息
7 nicstat 网络接口吞吐量和使用率
8 ethtool 网络接口驱动程序统计信息
9 tcplife 用连接细节跟踪TCP会话的寿命
10 tcptop 按主机和进程显示TCP吞吐量
11 tcpretrans 用地址和TCP状态跟踪TCP重传的情况
12 bpftrace TCP/P栈踪迹:连接、数据包、掉线、延时
13 tcpdump 网络数据包嗅探器
14 Wireshark 图形化网络数据包检查器

2.ss

(1) 默认输出提供了关于套接字的高层次信息

[root@agent ~]# ss

性能分析与调优: Linux 网络性能 观测工具_第1张图片

(2)-t 只显示TCP套接字、-i 显示TCP内部信息、-e 显示扩展的套接字信息、-p 显示进程信息 、-m 内存使用信息

[root@agent ~]# ss -tiepm

性能分析与调优: Linux 网络性能 观测工具_第2张图片

(3)netlink

① netlink接口读取扩展信息,strace 开销的警告

[root@agent ~]# strace -e sendmsg,recvmsg ss -t

性能分析与调优: Linux 网络性能 观测工具_第3张图片

②netstat使用/proc/net 文件代替信息来源

[root@agent ~]# strace -e openat netstat -an

性能分析与调优: Linux 网络性能 观测工具_第4张图片性能分析与调优: Linux 网络性能 观测工具_第5张图片

3.ip

(1) -s 在接口(link)上打印额外的统计信息

[root@agent ~]# ip -s link

性能分析与调优: Linux 网络性能 观测工具_第6张图片

(2) 路由表

[root@agent ~]# ip route

4.ifconfig

(1) 列出所有接口的配置

[root@agent ~]# ifconfig

性能分析与调优: Linux 网络性能 观测工具_第7张图片

5.nstat

(1) 输出由内核维护的各种网络指标,以及它们的SNMP名称

-s 避免重设计数器

[root@agent ~]# nstat -s

性能分析与调优: Linux 网络性能 观测工具_第8张图片

6.netstat

(1) 报告各种类型的网络统计数据

① -i 列出网络接口信息

[root@agent ~]# netstat -i

性能分析与调优: Linux 网络性能 观测工具_第9张图片

② -s 列出网络栈的统计信息

[root@agent ~]# netstat -s

性能分析与调优: Linux 网络性能 观测工具_第10张图片

(3)查询有关统计信息名称的拼写错误

[root@agent ~]# grep ^Tcp /proc/net/snmp

[root@agent ~]# grep ^Tcp /proc/net/netstat

性能分析与调优: Linux 网络性能 观测工具_第11张图片

7.sar

(1) 打印TCP统计信息

① 1秒1次,共计10次

[root@agent ~]# sar -n TCP 1 10

② passive/s 被动连接速率为每秒0.1个性能分析与调优: Linux 网络性能 观测工具_第12张图片

(2)网络接口统计信息

[root@agent ~]# sar -n DEV 1

性能分析与调优: Linux 网络性能 观测工具_第13张图片

(3)网络接口统计信息列(IFACE)指定ens33接口

[root@agent ~]# sar -n DEV 1 | awk 'NR == 3 || $2 == "ens33"'

性能分析与调优: Linux 网络性能 观测工具_第14张图片

8.nicstat

(1) 输出包括吞吐量和使用率在内的网络接口统计信息

[root@agent nicstat-1.95]# nicstat -z 1 5

性能分析与调优: Linux 网络性能 观测工具_第15张图片

9.ethtool

(1) -S 打印驱动程序的统计信息

[root@agent nicstat-1.95]# ethtool -S ens33

(2)-i 显示驱动程序的详细信息

[root@agent nicstat-1.95]# ethtool -i ens33

性能分析与调优: Linux 网络性能 观测工具_第16张图片

(3)-k 显示接口的可调参数

[root@agent nicstat-1.95]# ethtool -k ens33

性能分析与调优: Linux 网络性能 观测工具_第17张图片

10.tcplife

(1) 跟踪TCP会话的声明周期 

[root@agent ~]# tcplife

11.tcptop

(1) 显示使用TCP最多的进程

[root@agent ~]# tcptop

性能分析与调优: Linux 网络性能 观测工具_第18张图片

12.tcpretrans

(1) 跟踪TCP重传,显示IP地址、端口的详细信息及TCP状态

[root@agent ~]# tcpretrans

性能分析与调优: Linux 网络性能 观测工具_第19张图片

13.bpftrace

(1) 按pid和进程名统计套接字accept的次数

[root@agent ~]# bpftrace -e 't:syscalls:sys_enter_accept* { @[pid, comm] = count(); }'

(2)按pid和进程名统计套接字connect的次数

[root@agent ~]# bpftrace -e 't:syscalls:sys_enter_connect { @[pid, comm] = count(); }'

性能分析与调优: Linux 网络性能 观测工具_第20张图片

(3) 按用户栈踪迹统计套接字connect的数量

[root@agent ~]# bpftrace -e 't:syscalls:sys_enter_connect { @[ustack, comm] = count(); }'

性能分析与调优: Linux 网络性能 观测工具_第21张图片

(4)按发送/接收的方向、CPU上的pid和进程名统计套接字的数量

[root@agent ~]# bpftrace -e 'k:sock_sendmsg,k:sock_recvmsg { @[func,pid, comm] = count(); }'

性能分析与调优: Linux 网络性能 观测工具_第22张图片

(5)CPU上的pid和进程名统计套接字的发送/接收字节数

[root@agent ~]# bpftrace -e 'kr:sock_sendmsg,kr:sock_recvmsg /(int32)retval > 0/ { @[pid, comm] = sum((int32)retval); }'

性能分析与调优: Linux 网络性能 观测工具_第23张图片

(6)按CPU上的pid和进程名称统计TCP连接数

[root@agent ~]# bpftrace -e 'k:tcp_v*_connect { @[pid, comm] = count(); }'

(7)按CPU上的pid和进程名称统计TCP接受的次数

[root@agent ~]# bpftrace -e 'k:inet_csk_accept { @[pid, comm] = count(); }'

(8)按CPU上的pid和进程名称统计TCP发送/接收的次数

[root@agent ~]# bpftrace -e 'k:tcp_sendmsg,k:tcp_recvmsg { @[func,pid, comm] = count(); }'

性能分析与调优: Linux 网络性能 观测工具_第24张图片

(9)TCP发送字节数的直方图

[root@agent ~]# bpftrace -e 'k:tcp_sendmsg { @send_bytes = hist(arg2); }'

性能分析与调优: Linux 网络性能 观测工具_第25张图片

(10)TCP接收字节数的直方图

[root@agent ~]# bpftrace -e 'kr:tcp_recvmsg /retval >= 0/ { @recv_bytes = hist(retval); }'

性能分析与调优: Linux 网络性能 观测工具_第26张图片

(11)按类型和远程主机统计TCP重传次数(IPv4)

[root@agent ~]# bpftrace -e 't:tcp:tcp_retransmit_* { @[probe, ntop(2, args->saddr)] = count(); }'

(12)对所有的TCP函数(会给TCP增加高额的开销)进行计数

[root@agent ~]# bpftrace -e 'k:tcp_* { @[func] = count(); }'

性能分析与调优: Linux 网络性能 观测工具_第27张图片性能分析与调优: Linux 网络性能 观测工具_第28张图片

(13)按CPU上的pid和进程名称统计UDP发送/接收的次数

[root@agent ~]# bpftrace -e 'k:udp*_sendmsg,k:udp*_recvmsg { @[func,pid, comm] = count(); }'

性能分析与调优: Linux 网络性能 观测工具_第29张图片

(14)UDP发送字节数的直方图

[root@agent ~]# bpftrace -e 'k:udp_sendmsg { @send_bytes = hist(arg2); }'

性能分析与调优: Linux 网络性能 观测工具_第30张图片

(15)UDP接收字节数的直方图

[root@agent ~]# bpftrace -e 'kr:udp_recvmsg /retval >= 0/ { @recv_bytes = hist(retval); }'

性能分析与调优: Linux 网络性能 观测工具_第31张图片

(16)统计传输的内核的栈踪迹 数量

[root@agent ~]# bpftrace -e 't:net:net_dev_xmit { @[kstack] = count(); }'

性能分析与调优: Linux 网络性能 观测工具_第32张图片

性能分析与调优: Linux 网络性能 观测工具_第33张图片性能分析与调优: Linux 网络性能 观测工具_第34张图片

(17)显示每个设备的接收CPU的直方图

[root@agent ~]# bpftrace -e 't:net:netif_receive_skb { @[str(args->name)] = lhist(cpu, 0 ,128, 1); }'

性能分析与调优: Linux 网络性能 观测工具_第35张图片

14.tcpdump

(1) 将ens33接口的数据写入/tmp 下的文件

[root@agent ~]# tcpdump -i ens33 -w /tmp/out.tcpdump

(2)从导出的文件检测数据包

[root@agent ~]# tcpdump -nr /tmp/out.tcpdump

性能分析与调优: Linux 网络性能 观测工具_第36张图片

(3)-n 禁用将IP地址解析为主机地址,-v 打印更丰富细节,-e 链路层报头,-X 十六进制地址转储 

[root@agent ~]# tcpdump -enr /tmp/out.tcpdump -vvv -X

性能分析与调优: Linux 网络性能 观测工具_第37张图片

性能分析与调优: Linux 网络性能 观测工具_第38张图片

15.Wireshark

(1)  启动Wireshark

[root@agent ~]# wireshark &

(2)指定ens33网卡,监听tcp 80端口

tcp.port == 80

性能分析与调优: Linux 网络性能 观测工具_第39张图片

二、问题

1.nicstat如何安装和使用

(1)下载

网络监控工具nicstat下载地址:

nicstat download | SourceForge.net

rpm包下载地址:

Packages in Fedora / RHEL / CentOS / EPEL - Package: nicstat

(2)解压

[root@agent opt]# tar -zxvf nicstat-1.95.tar.gz

性能分析与调优: Linux 网络性能 观测工具_第40张图片

(3)修改配置文件

[root@agent opt]# cd nicstat-1.95/
[root@agent nicstat-1.95]# cp Makefile.Linux  Makefile
[root@agent nicstat-1.95]# vim Makefile
[root@agent nicstat-1.95]# 

① 修改前:

性能分析与调优: Linux 网络性能 观测工具_第41张图片

② 修改后:

将CFLAGS =       $(COPT) $(CMODEL)    修改为  CFLAGS =       $(COPT) 

原因:
1)Makefile里面默认是用32位系统下编译的,需要修改成64位;

2)如果不是64位机器则不需要修改Makefile。

性能分析与调优: Linux 网络性能 观测工具_第42张图片

(4)编译

[root@agent nicstat-1.95]# make -j 4 && make install

①如提示命令未找到

②需要安装gcc

[root@agent nicstat-1.95]# yum -y install gcc

③ 编译完成

性能分析与调优: Linux 网络性能 观测工具_第43张图片

(5)使用

[root@agent nicstat-1.95]# nicstat -z 1 

性能分析与调优: Linux 网络性能 观测工具_第44张图片

2.Wireshark如何安装使用

(1)搜索

[root@agent ~]# yum search wireshark

性能分析与调优: Linux 网络性能 观测工具_第45张图片

(2)安装

[root@agent ~]# yum install wireshark-gnome.x86_64

性能分析与调优: Linux 网络性能 观测工具_第46张图片

(3)启动Wireshark

[root@agent ~]# wireshark &

性能分析与调优: Linux 网络性能 观测工具_第47张图片

(4)指定ens33网卡,监听tcp 80端口

tcp.port == 80

性能分析与调优: Linux 网络性能 观测工具_第48张图片

你可能感兴趣的:(性能分析与调优,linux,网络,运维,性能优化,云计算)