linux系统buffers/cache过高导致web访问慢

root@debian:~# free -m
               total        used        free      shared  buff/cache   available
内存:      64318       23054         826          16       40437       40593

解读:

total:总计物理内存容量64GB

used:已使用内存容量23GB

free:空闲826MB

buff/cache:40GB

对操作系统来讲Mem的参数.buffers/cached 都是属于被使用,由此可见空闲内存太少,导致系统基本使用内存过少进而访问慢。

1.系统内运行的mariadb数据库及php组件,所以先优化mariadb

root@debian:/etc/mysql/mariadb.conf.d# 
root@debian:/etc/mysql/mariadb.conf.d# vi 50-server.cnf
join_buffer_size                    = 4096M
innodb_buffer_pool_size             = 10480M  //原始为40480M 这里降低到10480M
root@debian:/etc/mysql/mariadb.conf.d# systemctl restart mysql.service

2.手动清空buffers/cached

root@debian:~# echo 1 > /proc/sys/vm/drop_caches
root@debian:~# echo 2 > /proc/sys/vm/drop_caches
root@debian:~# echo 3 > /proc/sys/vm/drop_caches

查看结果

root@debian:/etc/mysql/mariadb.conf.d# free -m
               total        used        free      shared  buff/cache   available
内存:      64318        1228       62804          16         285       62588
交换:        974           0         974

访问web页面速度明显提升,问题解决。

扩展:系统自动定期清除buffers/cached

> vim clean.sh
#!/bin/bash#每两小时清除一次缓存
echo "开始清除缓存"
sync;sync;sync #写入硬盘,防止数据丢失
sleep 20#延迟20秒
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
保存clean.sh

> chmod +x clean.sh
> crontab -e
# 每两小时执行一次
0 */2 * * * /opt/clean.sh

设置crond开机自启动及重启crond服务

systemctl restart cron.service
systemctl enable cron.service
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值