调优指南

#tune

中心思想

首先确定网络实验是否正常,使用qperf,iperf等工具对比网络传输实验是否正常,如果网络时延在正常范围的话可能是其他配置(bios)或者软件栈的原因

1. qperf使用方法

#服务端
qperf
#客户端
qperf -t 60 --use_bits_per_sec 192.168.11.1 tcp_bw tcp_lat

2. 网卡调优

查看网卡中断

cat /proc/interrupts|grep $1|awk -F ':' '{print $1}'

查看网卡所在的numa node

cat /sys/class/net/$1/device/numa_node

查看某一个中断绑核

cat /proc/irq/$1/smp_affinity_list

查看一个网卡所有中断绑定在那些核上

ints=`cat /proc/interrupts|grep $1|awk -F ':' '{print $1}'`
cores=$(for i in $ints;do
			cat /proc/irq/$i/smp_affinity_list
done)
printf "%s\n" "${cores[@]}" | sort -n

将网卡的中断均匀绑定到所在numa对应的cores上

ints=`cat /proc/interrupts|grep $1|awk -F ':' '{print $1}'`
#获取对应的cores
j=${core[0]}
num=${ #core[@]} #这里{ #需要空格分开,否则页面render出错?

for i in $ints
do
	echo $j > /proc/irq/$i/smp_affinity_list
	((j++))
	((j=j%num+base))
done

3. 查看进程具体的线程情况

#pstree

ps -hH -p <pid>
#查看瞬时值
top -H -p <pid>
#持续查看
top -p <pid> 之后点击H
# 或者
cat /proc/<pid>/status
ls /proc/<pid>/task
# 或者使用树状查看
pstree -p <pid>
# 查看当前进程的树状图
pstree $$
# 查指定用户的所有进程
pstree -u <user_name>

查看当前线程总数

pstree -p | wc -l
#查看当前内核允许的最大线程数
sysctl -a|grep pid_max
#更改最大允许的线程数
echo "kernel.pid_max=65536" >> /etc/sysctl.conf
sysctl -p
  1. 工具使用教程
    #htop
    4.1 htop
    4.11 显示进程当前所在核
    F2进入setup,选择screen,只有方向右键选择到available columns中的processor之后回车,processor就出现在了active columns中了,
    Pasted image 20230908124505.png
    我们可以选择active columns中的processor然后按下面指示的功能键F7(上移),F8(下移)来将processor固定在command附近
    Pasted image 20230908124854.png
    设置好之后对应的界面设置会保存下来,下次htop进入界面之后会看到我们之前的更改
    Pasted image 20230908125023.png
    4.2 top
    点击f可以进入设置显示列,这里我们以设置显示进程所在核为例

vmstat

vmstat -n 2 10 #以2s的频率显示前10个输出结果

pidstat

strace

查看软件调用栈

  1. 先ps -efL|grep processName找到对应thread的id使用gdb
    Pasted image 20230913233605.png
  2. 使用gstack
gstack threadId

cpu高性能模式

#performance #cpupower

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/monitoring_and_managing_system_status_and_performance/tuning-cpu-frequency-to-optimize-energy-consumption_monitoring-and-managing-system-status-and-performance

Pasted image 20240317144535.png
Pasted image 20240317150044.png

#开启cpu高性能模式,即提高cpu的频率
cpupower frequency-set -g performance
#查看当前是否设置生效
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# 查看当前可选的模式
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
# 使用工具cpupower查看汇总信息
cpupower frequency-info