为什么系统的swap变高了
Posted hanguocai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么系统的swap变高了相关的知识,希望对你有一定的参考价值。
一:当发生内存泄漏,或者运行了大内存的应用程序,导致系统的内存资源紧张时,系统又会如何应对
内存回收,OOM杀死进程
内存回收,比如缓存和缓冲区,就属于可回收内存,它们在内存管理中,通常被叫做文件页。
而应用程序修改过,并且暂时没有写入磁盘的数据(也就是脏页),就得先写入磁盘,然后才能进行内存的释放。
脏页有俩种方式写入磁盘:
系统调用fsync, 内核调用pdflush
程序动态分配的堆内存,叫匿名页。也是linux的swap机制。
有新的大块内存分配请求时,剩余内存不足,这里就会直接内存回收。
还有一个专门的内核线程来定期回收内存,也就是kswapd0.
NUMA模型
$ numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1
node 0 size: 7977 MB
node 0 free: 4416 MB
...
$ cat /proc/zoneinfo
...
Node 0, zone Normal
pages free 227894
min 14896
low 18620
high 22344
...
nr_free_pages 227894
nr_zone_inactive_anon 11082
nr_zone_active_anon 14024
nr_zone_inactive_file 539024
nr_zone_active_file 923986
...
以上是关于为什么系统的swap变高了的主要内容,如果未能解决你的问题,请参考以下文章