システムパフォーマンス入門

パフォーマンスに詳しいインフラに憧れて

ユーザ用ツール

サイト用ツール


· 最終更新: 2020/05/26 by kurihara


メモリーのスラブキャッシュ(Slab)とは(/proc/sys/vm/drop_caches)

スラブキャッシュとは

  • カーネルのキャッシュ
  • カーネルは、メモリの利用効率を高めるために、カーネル空間内のさまざまな メモリ資源を、資源ごとにキャッシュをする仕組みを備えています。
  • プロセスが利用している領域ではないので、topではわからない。


スラブキャッシュの確認方法

/proc/meminfoで確認

# cat /proc/meminfo |grep Slab
Slab:             271568 kB
#
# cat /proc/meminfo | grep "Slab\|claim"
Slab:             271568 kB
SReclaimable:     235456 kB
SUnreclaim:        36112 kB
#

Slabには、SReclaimable (回収可能)と SUnreclaim (回収不可)があります。


slabtopで確認

# slabtop --once --sort=c | head -n 12
 Active / Total Objects (% used)    : 1300093 / 1338259 (97.1%)
 Active / Total Slabs (% used)      : 62356 / 62356 (100.0%)
 Active / Total Caches (% used)     : 66 / 95 (69.5%)
 Active / Total Size (% used)       : 260518.32K / 278386.41K (93.6%)
 Minimum / Average / Maximum Object : 0.01K / 0.21K / 8.00K

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME
1078560 1078560 100%    0.19K  51360       21    205440K dentry
 22050  13007  58%    1.06K   1470       15     23520K xfs_inode
 77910  75251  96%    0.19K   3710       21     14840K kmalloc-192
 17598   8687  49%    0.57K   1257       14     10056K radix_tree_node
  9321   9295  99%    0.58K    717       13      5736K inode_cache


スラブキャッシュのクリア

2か3を/proc/sys/vm/drop_cachesに書き込むとスラブのクリアができる。
syncを実行するとより多く解放できる


slabオブジェクト(dentryとinodeを含む)とページキャッシュの解放

# sync
# echo 3 > /proc/sys/vm/drop_caches


slabオブジェクト(dentryとinodeを含む)の解放

# sync
# echo 2 > /proc/sys/vm/drop_caches


ページキャッシュの解放

注意:Slabキャッシュは解放されない。

# sync
# echo 1 > /proc/sys/vm/drop_caches


参考


· 最終更新: 2020/05/26 by kurihara

ページ用ツール