Kubectl-jstack-vmstat-tcp操作
# kubectl在pod外部执行命令
kubectl exec [POD名称] -- bash -c '[需要执行的命令]'
1
# 获得对应pid下Thread的详细情况
- jstack pid 查看线程详细信息
kubectl exec hcs-order-service-65d4bbc6bc-k4fxt -n bj-union-micserver -- jstack -l 1 >>hcs-order-service-65d4bbc6bc-k4fxt.stack
1
# 查看内存堆栈信息
kubectl exec hcs-order-service-65d4bbc6bc-k4fxt -n bj-union-micserver -- jmap 1
1
# 查看jvm内存占用及垃圾回收情况
jstat -gcutil pid_number 2000(每2秒输出一次)
kubectl exec hcs-order-service-56ccf4cfc-hkx6w -n bj-union-micserver -- jstat -gcutil 1 2000
kubectl exec hcs-order-service-56ccf4cfc-hkx6w -n bj-union-micserver -- /bin/sh -c "jstat -gcutil 1 2000"
1
2
3
2
3
# 查看linux 上下文切换(vmstat)
vmstat 2 5 # 每二秒显示一次,总共5次
vmstat -d # 显示磁盘
vmstate -S M # -S 指定显示的计量单位类型,默认KiB千字节(bit: 位、Byte(字节=8bit)、KB(千字节=1000Byte),MB)
1
2
3
2
3
# 查看线程数可用
- ps(-T: 显示现行终端机下的所有进程、-p: 进程识别码)
kubectl exec hcs-order-service-65d4bbc6bc-k4fxt -n bj-union-micserver -- /bin/sh -c "ps -T -p $2 |wc -l"
1
# 查看并发请求数及其TCP连接状态
netstat -n|awk '/^tcp/{++S[$NF]}END{for(a in S)print a,S[a]}'
vim connections-state-counts.sh
#/bin/bash
kubectl exec $1 -n bj-union-micserver -- /bin/sh -c "netstat -n|egrep -v '6379|8848|3306'|awk '/^tcp/{++S[$NF]}END{for(a in S)print a,S[a]}'"
1
2
3
4
5
6
7
2
3
4
5
6
7
# 统计连接数信息
netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F : '{print $1}'|sort|uniq -c|sort -r
netstat -na|grep SYN|awk '{print $5}'|awk -F ':' '{print $1}'|sort|uniq -c|sort -r
vim count-connections.sh
#!/bin/bash
kubectl exec $1 -n bj-union-micserver -- /bin/sh -c "netstat -na|egrep -v '6379|8848|3306'|grep ESTABLISHED|awk '{print $5}'|awk -F : '{print $NF}'|sort|uniq -c|sort -r"
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 过滤指定pid服务线程上是时候在处理任务的线程数
top -b -H -p 1|grep ’Threads:‘|awk '{print $4}'
top -b -H -p 1|grep "Threads:"
Threads: 573 total, 0 running, 573 sleeping, 0 stopped, 0 zombie
top - 18:15:56 up 54 days, 7:08, 0 users, load average: 0.31, 0.38, 0.83
Threads: 573 total, 0 running, 573 sleeping, 0 stopped, 0 zombie
%Cpu0 : 3.9/2.6 7[||||||| ]
%Cpu1 : 2.0/0.7 3[||| ]
%Cpu2 : 2.7/2.0 5[||||| ]
%Cpu3 : 2.0/1.3 3[||| ]
%Cpu4 : 4.0/1.3 5[||||| ]
%Cpu5 : 4.0/0.7 5[||||| ]
%Cpu6 : 3.3/2.7 6[|||||| ]
%Cpu7 : 1.3/0.7 2[|| ]
GiB Mem : 31.2/29.9 [ ]
GiB Swap: 0.0/0.0 [ ]
PID USER PR NI VIRT RES %CPU %MEM TIME+ S COMMAND
1 root 20 0 6937.1m 1.0g 0.0 3.5 0:00.01 S java -Xmx512m -Xms512m -Djava.security.egd=file:/dev/./urando+
7 root 20 0 6937.1m 1.0g 0.0 3.5 0:15.44 S `- java -Xmx512m -Xms512m -Djava.security.egd=file:/dev/./ur+
8 root 20 0 6937.1m 1.0g 0.0 3.5 0:26.37 S `- java -Xmx512m -Xms512m -Djava.security.egd=file:/dev/./ur+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
上次更新: 2024/04/09, 16:48:42
- 01
- AWS NAT-NetWork-Firwalld配置(一)04-09
- 02
- AWS NAT-NetWork-Firwalld配置(二)04-09
- 03
- kubernetes部署minio对象存储01-18