为什么系统的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
...

猜你喜欢

转载自www.cnblogs.com/hanguocai/p/10303200.html