2024年11月在Linux上优化Mysql运行环境的技巧(2)

发布时间:

  ⑴四、修改swappiness设置

  ⑵swappiness是linux的一个内核参数,用来控制物理内存交换出去的策略。它允许一个百分比的值,最小的为,最大的为,改值默认是.可以通过下面命令观察

  ⑶# sysctl -a | grep swappiness

  ⑷vm.swappiness =

  ⑸这个设置值到底有什么影响呢?

  ⑹vm.swappiness设置为表示尽量少使用swap,表示尽量将inactive的内存页交换到swap里或者释放cache(cache类似于预读的文件。

  ⑺inactive内存的意思是程序映射着,但是”长时间”不用的内存。我们可以利用vmstat查看系统里面有多少inactive的内存。

  ⑻# vmstat -a

  ⑼procs ———–memory———- —swap– —–io—- –system– —–cpu——

  ⑽r b swpd free inact active si so bi bo in cs us sy id wa st

  ⑾在Centos之前,这个值建议设置为,但是在新版本的内核里面,这样设置可能导致OOM(内存溢出,然后kernel会杀掉使用内存最多的mysqld进程。

  ⑿所以现在这个值推荐设置为,设置方法如下:

  ⒀在/etc/sysctl.conf文件中增加一行。

  ⒁vm.swappiness =

  ⒂# sysctl -p //运行这个命令,让配置立刻生效。

  ⒃五、优化文件系统挂载参数。

  ⒄首先关于使用什么文件系统,网上很多测试,烟花缭乱。大概的结论如下。

  ⒅xfs 》 ext:xfs性能优于ext

  ⒆ext 》 ext:ext性能优于ext

  ⒇ext ??? xfs :xfs和ext谁更优秀?我说不太准…。。

  ⒈然后就是挂载文件系统使用的参数:

  ⒉defaults,noatime,nodiratime,barrier=(在xfs上使用nobarrier

  ⒊文件系统挂载参数是在/etc/fstab文件中修改,重启时候生效。

  ⒋noatime表示不记录访问时间,nodiratime不记录目录的访问时间。

  ⒌barrier=,表示关闭barrier功能.barrier的主要目的是为了保证磁盘写数据的安全性,但是会降低性能。如果有BBU之类的电池备份电源保证控制卡不瞬间掉电,那么这个功能就可以放心大胆的关闭。

  ⒍可以通过一下命令,查看配置是否生效。

  ⒎# cat /proc/mounts

  ⒏rootfs / rootfs rw

  ⒐proc /proc proc rw,nosuid,nodev,noexec,relatime

  ⒑sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime

  ⒒devtmpfs /dev devtmpfs rw,seclabel,nosuid,relatime,size=k,nr_inodes=,mode=

  ⒓devpts /dev/pts devpts rw,seclabel,relatime,gid=,mode=,ptmxmode=

  ⒔tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev,relatime

  ⒕/dev/sda / ext rw,seclabel,relatime,noatime,nodiratime,barrier=,data=ordered

  ⒖none /selinux selinuxfs rw,relatime

  ⒗devtmpfs /dev devtmpfs rw,seclabel,nosuid,relatime,size=k,nr_inodes=,mode=

  ⒘/proc/bus/usb /proc/bus/usb usbfs rw,relatime

  ⒙none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime

  ⒚/dev/sda /boot ext rw,seclabel,noatime,nodiratime,barrier=,data=ordered

  ⒛上面就是Linux优化Mysql运行环境的方法介绍了,通过对Mysql运行环境的优化,能够减轻Mysql的负载。