原因:
进行mysql性能对比测试时,系统cache并没有积极的自动释放,新数据库连接由于内存不足导致连接缓慢,程序连接经常超时。
1.先手动释放内存(无业务运行时使用,避免异常)
sync ##将缓存写入磁盘防止系统数据丢失
echo 1 > /proc/sys/vm/drop_caches ##To free pagecache,页缓存
echo 2 > /proc/sys/vm/drop_caches ##To free dentries and inodes.文件系统的数据结构.
echo 3 > /proc/sys/vm/drop_caches ##To free pagecache, dentries and inodes.
2.调整/etc/sysctl.conf增加如下参数
vm.min_free_kbytes=409600 ##缺省值是102400,用来确定系统开始回收内存的阈值.保持物理内存有足够的空闲空间,防止突发性的换页.
vm.vfs_cache_pressure=200 ##缺省值是100,这个参数设置了虚拟内存回收directory和i-node缓冲的倾向,增大这个值,可以增加回收的倾向.
vm.swappiness=40 ##缺省值是60,减少swapiness会使系统尽快通过swapout不使用的进程资源来释放更多的物理内存.
3.执行sysctl -p ##重载vm内核参数设置