Rivermax Linux性能调优指南
应用介绍
本编文章版权归阿波罗代码网所有,任何转载请注明出处!
这篇文章提供了使用Rivermax for Linux提高性能的指南。 它适用于Rivermax用户,应与Rivermax用户手册和Rivermax发行说明一起使用。 您可以通过调整服务器来最大化吞吐量,并通过一个Mellanox NIC实现更多的吞吐量。 这些建议大多数都经过我们的性能团队测试,但我们鼓励您测试设置参数对性能的影响。
服务器调优
为了使服务器接收高带宽,我们需要验证PCI总线配置为支持高宽度(超过50G时,我们需要x16)。
为了查看您支持的PCI宽度,请执行以下操作
1. run
sudo mst status -v
2. 根据网络接口找到您正在使用的PCI地址
3. run
sudo lspci -vvv -s[PCI_ADDR]
4. 验证在LnkSta行下是否写入了与LnkCap行下相同的宽度
请参阅下面的示例,其中支持和使用的宽度为x16
[root@r-aa-a]$ sudo mst status -v
MST modules:
------------
MST PCI module is not loaded
MST PCI configuration module loaded
PCI devices:
------------
DEVICE_TYPE MST PCI RDMA NET NUMA
ConnectX5(rev:0) /dev/mst/mt4121_pciconf0.1 03:00.1 mlx5_1 net-ens1f1 0
ConnectX5(rev:0) /dev/mst/mt4121_pciconf0 03:00.0 mlx5_0 net-ens1f0 0
[root@r-aa-a]$ sudo lspci -vvv -s03:00.0
LnkCap: Port #0, Speed unknown, Width x16, ASPM not supported, Exit Latency L0s unlimited, L1 unlimited
LnkSta: Speed 8GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
BIOS 调优
遵循了解BIOS配置以进行性能调整建议::
1. 应该禁用超线程和虚拟化。 (如果使用VM,则启用虚拟化)
2. 电源管理应集中在最小化系统干预和管理上。 设置为“最高性能配置文件”(如果服务器上可用)
3. 禁用 P-states, (unrestricted) Turbo Mode
4. Disable C-states (or change to C0/C1 preference) and T-states (对于媒体等高带宽应用非常重要)
5. Enabling Turbo mode only on minimum amount of cores is better
C-state
要在系统中禁用C状态,只需将此代码段添加到您的应用程序中,或在运行应用程序时以其他过程运行此代码
int set_low_latfency()
{
uint32_t lat = 0;
fd = open("/dev/cpu_dma_latency", O_RDWR);
if (fd == -1) {
fprintf(stderr, "Failed to open cpu_dma_latency: error %s", strerror(errno));
return fd;
}
write(fd, &lat, sizeof(lat));
return fd
}
disable pause frames
ethtool -A [interface] rx off tx off
CPU Frequency
检查CPU的最大可用频率(有用的命令:cpupower frequency-info,lshw,lscpu)
监视CPU的活动,并检查内核的当前频率。
提取CPU内核状态的有用命令
:
$ cat /proc/cpuinfo | sed -n '/^processor\|^cpu MHz/p'
$ turbostat --interval 1
我们的目标是将专用内核提高到最高可用频率,并防止OS在VMA使用它们时使用它们.
Core CPU Frequency not optimized Core CPU Frequency optimized
Linux grub.conf file 配置
grub.conf配置取决于内核版本,发行版和服务器配置。
在内核/ Linux行中添加以下参数(并非所有参数都是必需的,请单独考虑):
Flag | Example (use carefully, depends on system) |
---|---|
intel_pstate | intel_pstate=disable |
intel_idle.max_cstate | intel_idle.max_cstate =0 |
mce | mce=ignore_ce |
processor.max_cstate | processor.max_cstate=0 |
idle | idle=poll |
isolcpus | isolcpus=1-6 (see: cpu affinity) Isolating specific cores |
nohz_full | nohz_full=1-6 (see: cpu affinity) Frequent clock ticks cause latency - select which core you want to reduce the interrupts (can't do it on all cores) |
rcu_nocbs | rcu_nocbs=1-6 (see: cpu affinity) The specified CPUs will enter to the offloaded list RCU never prevents offloaded CPUs from entering either dyntick-idle mode or adaptive-tick mode. |
nosoftlockup | Nosoftlockup |
nmi_watchdog | nmi_watchdog = 0 |
其他OS调优
1. 禁用不是必需任务所必需的所有服务,例如: cups, gpm, ip6tables, mdmonitor, mdmpd, bluetooth, iptables, irqbalance, sysstat.
2. : cpuspeed, nscd, crond, nt如果可用,应启用以下服务pd, ntp, network, tuned
3. Set IRQ (interrupt request) affinity, refer to What is IRQ Affinity?
4.设置系统配置文件,重点关注网络性能/延迟.
$ tuned-adm profile network-throughput
$ cpupower frequency-set --governor performance
5.为了检查调整后的运行情况并使用正确的策略
$ tuned-adm active
理解PCIe配置以获得最佳性能
6. 关闭Numa平衡
$ echo 0 > /proc/sys/kernel/numa_balancing
7. 配置 tuned.conf
添加到 tuned.conf:
[bootloader]
cmdline = audit=0 idle=poll nosoftlockup mce=ignore_ce
改变tuned-main.conf:
检查事件之前要睡多长时间(以秒为单位),较高的数字表示较低的开销,但响应时间较长。
sleep_interval = 1 ===>更改为100
动态调整的更新间隔(以秒为单位)。 它必须是sleep_interval的倍数。
update_interval = 10 ===>更改为10000
8. 减少系统调度的推荐配置:
$ echo 100000000 > /proc/sys/kernel/sched_min_granularity_ns
$ echo 50000000 > /proc/sys/kernel/sched_migration_cost_ns
9. 其他减少系统调度的推荐配置:
$ echo 0 > /proc/sys/vm/swappiness
$ sysctl -w vm.swappiness=0
$ sysctl -w vm.zone_reclaim_mode=0
$ echo never > /sys/kernel/mm/transparent_hugepage/enabled
选择正确的NUMA和核心
在具有两个NUMA的计算机上,重要的是选择最接近所用卡的NUMA。
为了找到最靠近卡的NUMA
$ sudo mst status -v
检查哪个内核位于每个NUMA上:
$ lscpu
Huge pages
使用大页面可以减少访问页面表条目所需的系统资源量,从而提高系统性能。
在运行Rivermax之前,请启用大页面
:
$ echo 1000000000 > /proc/sys/kernel/shmmax
$ echo 800 > /proc/sys/vm/nr_hugepages
©版权声明:本文内容由互联网用户自发贡献,版权归原创作者所有,本站不拥有所有权,也不承担相关法律责任。如果您发现本站中有涉嫌抄袭的内容,欢迎发送邮件至: [email protected] 进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
转载请注明出处: apollocode » Rivermax Linux性能调优指南
文件列表(部分)
名称 | 大小 | 修改日期 |
---|
发表评论 取消回复