[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#452931: linux-image-2.6.18-5-686: too much memory for EXT3 inode-cache in slab



Package: linux-image-2.6.18-5-686
Version: 2.6.18.dfsg.1-13etch4
Severity: important

On two very different systems (a desktop system and one running a
database application) running debian kernel 2.6.18-5 I'm observing the
following behaviour:

System accumulates *large* amounts of slab-memory in EXT3 Inode-Cache,
example-output from the command "slabtop":

 Active / Total Objects (% used)    : 1559187 / 1578880 (98.8%)
 Active / Total Slabs (% used)      : 135874 / 135878 (100.0%)
 Active / Total Caches (% used)     : 94 / 140 (67.1%)
 Active / Total Size (% used)       : 529040.32K / 531151.94K (99.6%)
 Minimum / Average / Maximum Object : 0.01K / 0.34K / 128.00K

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME                   
907400 905957  99%    0.49K 113425        8    453700K ext3_inode_cache
565964 565089  99%    0.13K  19516       29     78064K dentry_cache
 62064  56390  90%    0.05K    862       72      3448K buffer_head
  7756   7752  99%    0.27K    554       14      2216K radix_tree_node
  6313   2673  42%    0.06K    107       59       428K size-64

As you can see, this system has accumulated more that 400MB of
Slab-Memory (on a system with 1GB of memory, i.e. half of the whole
memory of the system just for caching inodes!). This memory is not
freed, even in an out-of-memory situation, the system rather invokes the
out-of-memory-killer (OOM-Killer) before freeing this memory.

The only way I can reclaim this memory is running

echo 2 > /proc/sys/vm/drop_caches

After issuing this command, slab-usage goes back to sane values:

 Active / Total Objects (% used)    : 87942 / 117616 (74.8%)
 Active / Total Slabs (% used)      : 3532 / 3542 (99.7%)
 Active / Total Caches (% used)     : 96 / 140 (68.6%)
 Active / Total Size (% used)       : 10961.59K / 13940.84K (78.6%)
 Minimum / Average / Maximum Object : 0.01K / 0.12K / 128.00K

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME                   
 61632  52088  84%    0.05K    856       72      3424K buffer_head
  8874   2227  25%    0.13K    306       29      1224K dentry_cache
  8302   7748  93%    0.27K    593       14      2372K radix_tree_node
  6254   2533  40%    0.06K    106       59       424K size-64
  3780   3752  99%    0.04K     45       84       180K sysfs_dir_cache
  2806   2790  99%    0.08K     61       46       244K vm_area_struct
  2712   2647  97%    0.03K     24      113        96K size-32
  2028    892  43%    0.02K     12      169        48K dm_io
  1696    568  33%    0.49K    212        8       848K ext3_inode_cache

On the desktop-system the time until the inode-cache is using so much
memory takes several days. On the database server I'm doing a nightly
backup that copies 200000 files -- after the copying the inode-cache is
using more than 400MB of memory as in the above output of slabtop.

Is this a bug present in upstream-kernels too or something seen only in
debians build?

Is anybody else seeing this?

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-5-686
Locale: LANG=en_US.ISO-8859-15, LC_CTYPE=en_US.ISO-8859-15 (charmap=ISO-8859-15)

Versions of packages linux-image-2.6.18-5-686 depends on:
ii  coreutils                     5.97-5.3   The GNU core utilities
ii  debconf [debconf-2.0]         1.5.11     Debian configuration management sy
ii  initramfs-tools [linux-initra 0.85h      tools for generating an initramfs
ii  module-init-tools             3.3-pre4-2 tools for managing Linux kernel mo

Versions of packages linux-image-2.6.18-5-686 recommends:
pn  libc6-i686                    <none>     (no description available)

-- debconf information:
  linux-image-2.6.18-5-686/postinst/create-kimage-link-2.6.18-5-686: true
  linux-image-2.6.18-5-686/postinst/old-system-map-link-2.6.18-5-686: true
  linux-image-2.6.18-5-686/preinst/elilo-initrd-2.6.18-5-686: true
  linux-image-2.6.18-5-686/postinst/bootloader-test-error-2.6.18-5-686:
  linux-image-2.6.18-5-686/postinst/depmod-error-2.6.18-5-686: false
* linux-image-2.6.18-5-686/preinst/already-running-this-2.6.18-5-686:
  linux-image-2.6.18-5-686/preinst/bootloader-initrd-2.6.18-5-686: true
  linux-image-2.6.18-5-686/postinst/old-dir-initrd-link-2.6.18-5-686: true
  linux-image-2.6.18-5-686/postinst/old-initrd-link-2.6.18-5-686: true
  linux-image-2.6.18-5-686/preinst/failed-to-move-modules-2.6.18-5-686:
  linux-image-2.6.18-5-686/preinst/abort-install-2.6.18-5-686:
  linux-image-2.6.18-5-686/prerm/would-invalidate-boot-loader-2.6.18-5-686: true
  linux-image-2.6.18-5-686/postinst/bootloader-error-2.6.18-5-686:
  linux-image-2.6.18-5-686/preinst/lilo-initrd-2.6.18-5-686: true
  linux-image-2.6.18-5-686/preinst/overwriting-modules-2.6.18-5-686: true
  shared/kernel-image/really-run-bootloader: true
  linux-image-2.6.18-5-686/postinst/depmod-error-initrd-2.6.18-5-686: false
  linux-image-2.6.18-5-686/prerm/removing-running-kernel-2.6.18-5-686: true
  linux-image-2.6.18-5-686/preinst/initrd-2.6.18-5-686:
  linux-image-2.6.18-5-686/preinst/lilo-has-ramdisk:
  linux-image-2.6.18-5-686/postinst/kimage-is-a-directory:
  linux-image-2.6.18-5-686/preinst/abort-overwrite-2.6.18-5-686:




Reply to: