问题
内网访问部署在物理机上的网站:由于日志过多使用df -h 查看内存发现有内存充足,之前有删除过日志.但是发现还是访问慢;
使用free -h 以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
关于free - `
https://www.cnblogs.com/tjudzj/p/10100088.html
`发现开启了swap分区:
这是啥?配置如下
https://blog.csdn.net/qq_32095699/article/details/99232092
这是介绍
https://www.cnblogs.com/kerrycode/p/5246383.html
如果swap空间使用到30%以上,系统就变得很慢,如果物理内存够,就需要清理下。
先应该同步一下
[root@mysql172 ~]# sync
再执行
echo 3 > /proc/sys/vm/drop_caches
查看内存占用情况
[root@mysql172 ~]# free -m
total used free shared buffers cached
Mem: 12010 9433 2577 0 4 24
-/+ buffers/cache: 9404 2606
Swap: 4094 838 3256
swap还是使用中。。。求问该咋办。。。。
swapoff -a;swapon -a
终于free -m看到swap为空了。
Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches
频繁的文件访问会导致系统的Cache使用量大增
$ free -m
total used free shared buffers cached
Mem: 3955 3926 28 0 55 3459
-/+ buffers/cache: 411 3544
Swap: 5726 0 5726
free内存减少到几十兆,系统运行缓慢
运行sync将dirty的内容写回硬盘
$sync
通过修改proc系统的drop_caches清理free的cache
$echo 3 > /proc/sys/vm/drop_caches
drop_caches的详细文档如下:
Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.
To free pagecache:
- echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes: - echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes: - echo 3 > /proc/sys/vm/drop_caches
As this is a non-destructive operation, and dirty objects are notfreeable, the user should run “sync” first in order to make sure allcached objects are freed.
This tunable was added in 2.6.16.
另一个问题 Swap故障之swapoff failed: Cannot allocate memory
https://blog.csdn.net/weixin_34025151/article/details/92936875