>/etc/sysctl.confecho"kernel.shmmax=$(expr$(getconf_PHYS_PAGES)/2\*$(getconfPAGE_SIZE))">>/etc/sysctl.confecho"kernel.shmall=$(expr$(getconf_PHYS_PAGE">

LightDB数据库性能瓶颈分析(一)

来源:这里教程网 时间:2026-03-14 20:41:38 作者:

优化系统参数

    vi  /etc/sysctl.conf

echo "kernel.shmmni=4096" >> /etc/sysctl.conf
echo "kernel.shmmax=$(expr $(getconf _PHYS_PAGES) / 2 \* $(getconf PAGE_SIZE))" >> /etc/sysctl.conf 
echo "kernel.shmall=$(expr $(getconf _PHYS_PAGES) / 2)" >> /etc/sysctl.conf
echo "kernel.sem=500 2048000 200 4096" >> /etc/sysctl.conf
echo "fs.aio-max-nr=1048576" >> /etc/sysctl.conf
echo "fs.file-max=524288" >> /etc/sysctl.conf
echo "vm.swappiness=5" >> /etc/sysctl.conf
echo "vm.overcommit_memory=2" >> /etc/sysctl.conf
echo "vm.overcommit_ratio=75" >> /etc/sysctl.conf
echo "vm.dirty_background_ratio=5" >> /etc/sysctl.conf
echo "vm.dirty_ratio=40" >> /etc/sysctl.conf
echo "vm.dirty_expire_centisecs=500" >> /etc/sysctl.conf
echo "vm.dirty_writeback_centisecs=250" >> /etc/sysctl.conf
echo "net.core.somaxconn=2000" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog=2000" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_reuse=1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_syn_retries=3" >> /etc/sysctl.conf
echo "net.ipv4.tcp_retries2=5" >> /etc/sysctl.conf
echo "net.ipv4.tcp_slow_start_after_idle=0" >> /etc/sysctl.conf

设置swap交换区

        32GB以下的,swap大小配置和内存一样即可,大于32GB的,最多设置为64GB。         下面的示例将交换区文件创建在/swap,大小为2GB,目的仅用于示例。实际配置请按照上述建议决定交换区大小,并选择合适的磁盘路径来放置交换区文件         dd if=/dev/zero of=/swap bs=1M count=2048 # Swap交换区大小 = 2048MB         mkswap -f  /swap         chmod 0600 /swap         swapon /swap     # 设置开机自动启用,修改 /etc/fstab文件,添加如下配置     /swap swap swap defaults 0 0

开启系统hugepages

        如果服务器物理内存大于128GB,尤其是达到256GB甚至更高时,强烈建议开启Linux系统的hugepage,同时将大页内存设置为shared_buffers的1.1~1.2倍;如果内存没有这么多,可以不设置hugepages。     # 设置语句,用sudo 设置或root设置     echo "vm.nr_hugepages = 大页页数" >> /etc/sysctl.conf     # 不同服务器可能每页大小不一样,可以先用以下命令查看每页大小:     cat /proc/meminfo | grep Hugepagesize

           计算方法:   大页页数 = (shared_buffers * 1.1~1.2) / hugepage_size ,注意单位换算 运行 sysctl -p使设置生效,生效后可通过 cat /proc/meminfo确认hugepage的配置与使用情况

相关推荐