

([英語版の StackOverflow
で同様の質問をしました](https://stackoverflow.com/questions/47131599/kmalloc-256-seems-
taking-most-of-the-memory-resource-how-can-i-free-
this)が、回答がつかないので、日本語版でも質問させてください)

Jenkins を動かしている Linux インスタンスがあります (Amazon Linux `Linux ip-xxx
4.9.20-11.31.amzn1.x86_64 #1`)。ここで動いている Jenkins のジョブがメモリ不足で失敗することがよくあります。

`free` や `/proc/meminfo` などを眺めると、スラブがメモリの大半を消費しているようにみえます。

[code]

    [root@ip-xxx ~]# free -tm
                 total       used       free     shared    buffers     cached
    Mem:          7985       7205        779          0         19        310
    -/+ buffers/cache:       6876       1108
    Swap:            0          0          0
    Total:        7985       7205        779
    
    [root@ip-xxx ~]# cat /proc/meminfo | grep "Slab\|claim"
    Slab:            6719244 kB
    SReclaimable:      34288 kB
    SUnreclaim:      6684956 kB
    
[/code]

`echo 3 > /proc/sys/vm/drop_caches` のようにして、スラブから `dentry`
を解放するテクニックなどは調べることができたのですが、ここで大量にメモリを確保している `kmalloc-256` はどうすればいいのでしょうか?
もしくは、どのプロセスが `kmalloc-256` を握っているかを調べる方法はあるでしょうか?

[code]

    [root@ip-xxx ~]# slabtop -o | head -n 15
     Active / Total Objects (% used)    : 26805556 / 26816810 (100.0%)
     Active / Total Slabs (% used)      : 837451 / 837451 (100.0%)
     Active / Total Caches (% used)     : 85 / 111 (76.6%)
     Active / Total Size (% used)       : 6696903.08K / 6701323.05K (99.9%)
     Minimum / Average / Maximum Object : 0.01K / 0.25K / 8.00K
    
      OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME                   
    26658528 26658288  99%    0.25K 833079       32   6664632K kmalloc-256            
     21624  21009  97%    0.12K    636       34      2544K kernfs_node_cache      
     20055  20055 100%    0.19K    955       21      3820K dentry                 
     10854  10646  98%    0.58K    402       27      6432K inode_cache            
     10624   9745  91%    0.03K     83      128       332K kmalloc-32             
      7395   7395 100%    0.05K     87       85       348K ftrace_event_field     
      6912   6384  92%    0.02K     27      256       108K kmalloc-16             
      6321   5581  88%    0.19K    301       21      1204K cred_jar  
    
[/code]


CC BY-SA 3.0
2017-11-14T12:47:28.867
39574
2020-01-24T08:03:30.493
2017-11-15T02:24:12.870
24977
24977
question
linux memory-leaks
kmalloc-256 がメモリを消費しているようです。これを解放する方法はあるのでしょうか?


「[サーバーのメモリが少しずつ圧迫される原因と対策を調べてみた](https://qiita.com/bezeklik/items/7e1ac9e5da39261be7bd)
」の記事が参考になると思います。


CC BY-SA 3.0
2017-11-15T00:51:47.117
39581
2017-11-15T00:51:47.117
217
39574
answer