系统屋 - 系统光盘下载网站!

当前位置:首页 > 系统教程 > Linux教程 > 详细页面

Linux内存耗尽原因分析(2)

时间:2023-02-07来源:系统屋作者:zhijie

  3.使用slabtop命令查看内核slab 缓冲区信息#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 卷的文件系统缓存信息。xfs_inode看字面意思是xfs文件系统的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;

  分析加估计是文件系统的日志缓存。究竟是不是?目前nfs-server有14个卷,每个卷的在格式化xfs的时指定的参数(即日志大小)-l=128m 14*128*1024 约等于1965128。

  4.但是xfs_ili xfs_inode两者加起来才10G,还有50G去哪儿了呢?查资料说linux将用过的文件缓存到内存中。

  执行下面的命令就释放了内存#sync #

  刷到磁盘

  #echo 3 》 /proc/sys/vm/drop_caches

  5.总结

  是不是由于内存少导致的性能变差,还在测试。不过以后在优化nfs-server端有一定的指导意义。卷越多,必然占用的内存越多。做机头的内存配置要高。

  以上就是Linux内存耗尽原因分析的全部内容了,只有找到内存占用高的原因,才能解决和防止类似情况发生。

 2/2   首页 上一页 1 2
分享到:

相关信息

  • 在Ubuntu系统中如何使用LVM管理分区

    LVM就是逻辑分区管理的缩写,是一个抽象的管理层。不管是创建存储池还是分区,都要用到LVM。本文就来介绍一下在Ubuntu系统中如何使用LVM。...

    2023-02-07

  • Linux中实现断点续传的原理

    断点续传在现在用得很普遍了,如果没有断点续传,那么下载的东西已经下载了90%,但是中断了下载过程,就要从头开始下载。本文就来简单介绍一下Linux系统中断点续传是怎么实现的。...

    2023-02-07

评论

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载

公众号