Linux 软中断

最后由 griffinqiu 修改于 03月06日 05:35

#概念

Linux 中的中断处理程序分上半部和下半部

#上半部是硬中断, 快速处理中断

#下半部是软中断, 异步处理上半部未完成的工作

# 查看硬中断
$ cat /proc/interrupts
# 查看软中断
$ cat /proc/softirqs
# 查看线程的运行状态
$ ps aux | grep softirq

#工具

  • sar 是一个系统活动报告工具, 既可以实时查看系统的当前活动, 又可以配置保存和报告历史统计数据.
  • hping3 是一个可以构造 TCP/IP 协议数据包的工具, 它可以对系统进行安全审计、防火墙测试等.
  • tcpdump 是一个常用的网络抓包工具
$ apt-get install docker.io sysstat hping3 tcpdump

#案例

机器 1

$ docker run -itd --name=nginx -p 80:80 nginx
$ curl 10.0.6.176

机器 2

# -S 表示设置TCP协议的SYN(同步序列号)
# -p 80 表示80端口
# -i u100 表示每100微秒发送一个网络帧
$ hping3 -S -p 80 -i u100 10.0.6.176

机器 1

$ watch -d cat /proc/softirqs

# -n DEV 表示显示网络收发的报告, 间隔1秒
$ sar -n DEV 1

# -i enp0s3表示只抓去enp0s3网卡
# -n 不解析协议名和主机名
# tcp port 80 表示只抓去tcp协议的80端口
$ tcpdump -i enp0s3 -n tcp port 80

$ docker rm -f nginx

https://time.geekbang.org/column/article/71868 https://time.geekbang.org/column/article/72147