针对Kafka的centos系统参数优化

TCP网络优化

sudo vim /etc/sysctl.conf

vm.max_map_count=655360
net.core.rmem_default=262144
net.core.rmem_max=2097152
net.core.wmem_default=262144
net.core.wmem_max=2097152
#net.core.somaxconn = 655360
#该值在inet_listen()函数中被限制为不得超过USHRT_MAX(即65535),否则会报错“sysctl: setting key "net.core.somaxconn": 无效的参数”
net.core.somaxconn = 65535

执行 sudo sysctl -p 生效
查看当前已生效的参数: sudo sysctl -a | grep ${param}

进程级资源限制优化  

 sudo vim /etc/security/limits.conf | /etc/security/limits.d/90-nproc.conf

修改文件是重启进程 | 持久化生效。对完全相同的参数配置项,/etc/security/limits.d/90-nproc.conf 会覆盖掉 /etc/security/limits.conf

* soft nofile 655360
* hard nofile 655360
* soft nproc 8096
* hard nproc 8096

修改进程限制立即生效(临时)

sudo prlimit --pid <pid> --<limit>=<soft>:<hard>
sudo prlimit --pid 12345 --nofile=655350:655350
sudo prlimit --pid 12345 --nofile=655350

磁盘IO优化

参数名称 解释说明
sudo blockdev --setra 16384 /dev/sdx 磁盘队列
sudo sh -c 'echo "4096" > /sys/block/sdx/queue/nr_requests' 预读大小
sudo sh -c 'echo "500" > /proc/sys/vm/dirty_writeback_centisecs' 控制内核的脏数据刷新进程pdflush的运行间隔
sudo sh -c 'echo "35" > /proc/sys/vm/dirty_ratio' 控制文件系统的文件系统写缓冲区的大小,当大于阀值控制pdflush进程何时刷盘,当前写脏pagecache占用物理内存的比例大于阀值刷新到磁盘
sudo sh -c 'echo "5" > /proc/sys/vm/dirty_background_ratio' 百分值,保留过期页缓存(脏页缓存)的最大值。是以MmeFree+Cached-Mapped的值为基准的
sudo sh -c 'echo "2000" > /proc/sys/vm/dirty_expire_centisecs' 1/100秒。缓存页里数据的过期时间(旧数据),在下一个周期内被写入硬盘。默认30秒是一个很长的时间

博客引用地址:https://www.cnblogs.com/lizherui/p/12640840.html

原文地址:https://www.cnblogs.com/lizherui/p/12640840.html