系统工具

进程/线程

  1. 查看所有线程数量 ps -eo nlwp,pid,args --sort nlwp
  2. 监控 watch -n 1 'ps -eo nlwp,pid,args --sort -nlwp | head'
  3. 查看进程线程数量,每个线程的cpu利用率 top -H -p pid

tcp

  1. 查看tcp 半连接和全连接队列情况 netstat -s | egrep "listen|LISTEN" ;ss -lnt
  2. 统计tcp连接各个状态数量 netstat -n | grep <port> | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

负载

  1. mpstat
  2. 查看线程的上下文切换次数 pidstat -p 36913 -wt 1
  3. 查看总的上下文切换 vmstat
  4. watch -n.5 grep ctxt /proc/$pid/status

mac模拟弱网环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 打开防火墙
sudo pfctl -e

# 设置网络环境
sudo dnctl pipe 1 config bw 10Kbit/s delay 300 plr 0.09
# 限制域名
echo "dummynet out proto tcp from any to example.com pipe 1" |pfctl -f -
# 限制端口
echo "dummynet in quick proto tcp from any to any port 6379 pipe 1" | sudo pfctl -f -

# 清除设置
sudo pfctl -f /etc/pf.conf
sudo dnctl -q flush
sudo pfctl -d

相关文章:

  1. Simulating Poor Network Connectivity on Mac OSX
  2. How to simulate slow internet connections on the mac
  3. network link conditioner

参考

  1. figure-out-which-process-forks-too-many-threads
  2. system call and context switch
  3. process-threads-context-switch tool
  4. process tools
  5. linux性能速查-CPU上下文切换 工具指标
  6. 案例

评论