Linux下清理内存和Cache方法
2016-03-28 23:29
686 查看
Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches
yuanwei@ubuntu:/proc/sys/vm$ ls
admin_reserve_kbytes legacy_va_layout oom_dump_tasks
block_dump lowmem_reserve_ratio oom_kill_allocating_task
compact_memory max_map_count overcommit_memory
dirty_background_bytes memory_failure_early_kill overcommit_ratio
dirty_background_ratio memory_failure_recovery page-cluster
dirty_bytes min_free_kbytes panic_on_oom
dirty_expire_centisecs min_slab_ratio percpu_pagelist_fraction
dirty_ratio min_unmapped_ratio scan_unevictable_pages
dirty_writeback_centisecs mmap_min_addr stat_interval
drop_caches nr_hugepages swappiness
extfrag_threshold nr_hugepages_mempolicy user_reserve_kbytes
hugepages_treat_as_movable nr_overcommit_hugepages vfs_cache_pressure
hugetlb_shm_group nr_pdflush_threads zone_reclaim_mode
laptop_mode numa_zonelist_order
没有清理cache 之前, cache 占用了307M内存.
root@ubuntu:/home/yuanwei# free -m
total used free shared buffers cached
Mem: 5225 1074 4151 6 114 307
-/+ buffers/cache: 651 4574
Swap: 4701 0 4701
频繁的文件访问会导致系统的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.
清理之后看. 运行 sync . cache只用了149M内存.
root@ubuntu:/home/yuanwei# free -m
total used free shared buffers cached
Mem: 5225 1010 4215 7 2 149
-/+ buffers/cache: 858 4367
Swap: 4701 0 4701
修改/etc/sysctl.conf 添加如下选项后就不会内存持续增加
vm.dirty_ratio = 1
vm.dirty_background_ratio=1
vm.dirty_writeback_centisecs=2
vm.dirty_expire_centisecs=3
vm.drop_caches=3
vm.swappiness =100
vm.vfs_cache_pressure=163
vm.overcommit_memory=2
vm.lowmem_reserve_ratio=32 32 8
kern.maxvnodes=3
上面的设置比较粗暴,使cache的作用基本无法发挥。
yuanwei@ubuntu:/proc/sys/vm$ ls
admin_reserve_kbytes legacy_va_layout oom_dump_tasks
block_dump lowmem_reserve_ratio oom_kill_allocating_task
compact_memory max_map_count overcommit_memory
dirty_background_bytes memory_failure_early_kill overcommit_ratio
dirty_background_ratio memory_failure_recovery page-cluster
dirty_bytes min_free_kbytes panic_on_oom
dirty_expire_centisecs min_slab_ratio percpu_pagelist_fraction
dirty_ratio min_unmapped_ratio scan_unevictable_pages
dirty_writeback_centisecs mmap_min_addr stat_interval
drop_caches nr_hugepages swappiness
extfrag_threshold nr_hugepages_mempolicy user_reserve_kbytes
hugepages_treat_as_movable nr_overcommit_hugepages vfs_cache_pressure
hugetlb_shm_group nr_pdflush_threads zone_reclaim_mode
laptop_mode numa_zonelist_order
没有清理cache 之前, cache 占用了307M内存.
root@ubuntu:/home/yuanwei# free -m
total used free shared buffers cached
Mem: 5225 1074 4151 6 114 307
-/+ buffers/cache: 651 4574
Swap: 4701 0 4701
频繁的文件访问会导致系统的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.
清理之后看. 运行 sync . cache只用了149M内存.
root@ubuntu:/home/yuanwei# free -m
total used free shared buffers cached
Mem: 5225 1010 4215 7 2 149
-/+ buffers/cache: 858 4367
Swap: 4701 0 4701
修改/etc/sysctl.conf 添加如下选项后就不会内存持续增加
vm.dirty_ratio = 1
vm.dirty_background_ratio=1
vm.dirty_writeback_centisecs=2
vm.dirty_expire_centisecs=3
vm.drop_caches=3
vm.swappiness =100
vm.vfs_cache_pressure=163
vm.overcommit_memory=2
vm.lowmem_reserve_ratio=32 32 8
kern.maxvnodes=3
上面的设置比较粗暴,使cache的作用基本无法发挥。
相关文章推荐
- 基于UDP的Linux畅聊系统(ncurse库和json库)
- gentoo linux安装过程中出现的错误及解决方案
- linux kernel 中的链表(一)
- CentOS7.2 Linux 内核版本查看简述
- Linux 线程同步的三种方法
- centos7下yum安装mysql与卸载mysql
- Linux开发流程
- linux无法切换到root用户
- Linux线程基础函数
- C语言高级应用---操作linux下V4L2摄像头应用程序
- C语言高级应用---操作linux下V4L2摄像头应用程序
- C语言高级应用---操作linux下V4L2摄像头应用程序
- linux-vim
- Linux内核体系结构
- linux权限管理总结
- 《Linux内核设计与实现》Chapter 18 读书笔记
- 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳
- 【读书笔记】Linux内核设计与实现(第十八章)
- Linux学习笔记之二
- 总结安装VMware和centOS6.5的相关问题。