⑴四、修改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的负载。