常用的命令:
- thread -n x:找出cpu占用最大得n个线程
- profiler start/stop:性能分析,并生成火焰图
- monitor:监控函数调用次数、时间等
- watch:详细观察函数调用 入出参数、成员变量等
[......]
rdfind -deleteduplicates true -ignoreempty false .
[......]
在Nginx中,有一些高级场景,需要根据url中的path参数,动态转发到不通的upstream
场景1
/svr1/xxxx?yyy 转发到 svr1:8080/xxxx?yyy
/svr2/xxxx?yyy 转发到 svr2:8080/xxxx?yyy
配置如下:
location ~* /(srv[1-9]+)/(.*)$ {
allow all;
proxy_pass http://$1/$2$is_args$args;
proxy_se[......]
netstat -o --wide
输出类似如下:
Proto Recv-Q Send-Q Local Address Foreign Address State Timer
tcp 0 0 rz-tutor-primary-advert1-test:23507 10.11.43.151:6030 ESTABLISHED off (0.00/0/0)
tcp 0 0 rz-tuto[......]
可以参考《Kubernetes IPVS模式下服务间长连接通讯的优化,解决Connection reset by peer问题》
先看节点的系统参数:
sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_probes net.ipv4.tcp_keepalive_intvl
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_probes = 9
net.[......]