熱搜:win11繞過硬件限制安裝 一鍵重裝Win10系統(tǒng) 最干凈的u盤啟動盤 真正純凈版的win7系統(tǒng)
時間:2015-08-12 14:03:20 作者:zhijie 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150812/55260.html 手機查看 評論 反饋
3.使用slabtop命令查看內核slab 緩沖區(qū)信息#slabtop -s c | head
Active / Total Objects (% used) : 31807723 / 35664583 (89.2%)
Active / Total Slabs (% used) : 3259180 / 3259251 (100.0%)
Active / Total Caches (% used) : 139 / 227 (61.2%)
Active / Total Size (% used) : 11242773.43K / 12756788.05K (88.1%)
Minimum / Average / Maximum Object : 0.02K / 0.36K / 4096.00K
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
8480676 7565420 89% 1.00K 2120169 4
8480676K
xfs_inode
8351794 7565375 90% 0.22K 491282 17
1965128K
xfs_ili
xfs_ili 占用1965128k xfs_inode占用8480676K,但他們究竟是什么東東?猜測是nas/rbd 卷的文件系統(tǒng)緩存信息。xfs_inode看字面意思是xfs文件系統(tǒng)的inode信息。
搜了下xfs_ili,只搜到內核代碼片段。xfs_inode_zone =
1636 kmem_zone_init_flags(sizeof(xfs_inode_t), “xfs_inode”,
1637 KM_ZONE_HWALIGN | KM_ZONE_RECLAIM | KM_ZONE_SPREAD,
1638 xfs_fs_inode_init_once);
1639 if (!xfs_inode_zone)
1640 goto out_destroy_efi_zone;
1641
1642 xfs_ili_zone =
1643 kmem_zone_init_flags(sizeof(xfs_inode_log_item_t), “xfs_ili”,
1644 KM_ZONE_SPREAD, NULL);
28 typedef struct xfs_inode_log_item {
29 xfs_log_item_t ili_item; /* common portion */
30 struct xfs_inode *ili_inode; /* inode ptr */
31 xfs_lsn_t ili_flush_lsn; /* lsn at last flush */
32 xfs_lsn_t ili_last_lsn; /* lsn at last transaction */
33 unsigned short ili_lock_flags; /* lock flags */
34 unsigned short ili_logged; /* flushed logged data */
35 unsigned int ili_last_fields; /* fields when flushed */
36 unsigned int ili_fields; /* fields to be logged */
37 struct xfs_bmbt_rec *ili_extents_buf; /* array of logged
38 data exts */
39 struct xfs_bmbt_rec *ili_aextents_buf; /* array of logged
40 attr exts */
41 xfs_inode_log_format_t ili_format; /* logged structure */
42 } xfs_inode_log_item_t;
分析加估計是文件系統(tǒng)的日志緩存。究竟是不是?目前nfs-server有14個卷,每個卷的在格式化xfs的時指定的參數(shù)(即日志大小)-l=128m 14*128*1024 約等于1965128。
4.但是xfs_ili xfs_inode兩者加起來才10G,還有50G去哪兒了呢?查資料說linux將用過的文件緩存到內存中。
執(zhí)行下面的命令就釋放了內存#sync #
刷到磁盤
#echo 3 》 /proc/sys/vm/drop_caches
5.總結
是不是由于內存少導致的性能變差,還在測試。不過以后在優(yōu)化nfs-server端有一定的指導意義。卷越多,必然占用的內存越多。做機頭的內存配置要高。
以上就是Linux內存耗盡原因分析的全部內容了,只有找到內存占用高的原因,才能解決和防止類似情況發(fā)生。
發(fā)表評論
共0條
評論就這些咯,讓大家也知道你的獨特見解
立即評論以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場