Comment 166 for bug 620074

Revision history for this message
In , mathieu.desnoyers (mathieu.desnoyers-linux-kernel-bugs) wrote :

The following solution works for me. I use the cgroups to limit the amount of memory dd can use. That shows that there is a problem with the kernel otherwise allowing the page cache to take _all_ the available kernel memory.

mkdir -p /cgroups
mount -t cgroup none /cgroups -o memory
mkdir 0
echo $$ > /cgroups/0/tasks
echo 4M > /cgroups/0/memory.limit_in_bytes
dd if=/dev/zero of=/tmp/bigfile bs=1024k count=20480

The same works with the fio "ssh" test case when run under the cgroups limitations :

  write: io=10240MiB, bw=34349KiB/s, iops=32, runt=312595msec
  read : io=2068KiB, bw=404KiB/s, iops=16, runt= 5239msec
  read : io=2048KiB, bw=598KiB/s, iops=25, runt= 3505msec
  read : io=2056KiB, bw=283KiB/s, iops=12, runt= 7437msec
  read : io=2056KiB, bw=542KiB/s, iops=21, runt= 3879msec
  read : io=2060KiB, bw=388KiB/s, iops=16, runt= 5431msec
  read : io=2052KiB, bw=591KiB/s, iops=25, runt= 3554msec
  read : io=2076KiB, bw=375KiB/s, iops=15, runt= 5658msec
  read : io=2048KiB, bw=522KiB/s, iops=19, runt= 4011msec
  read : io=2080KiB, bw=468KiB/s, iops=19, runt= 4548msec
  read : io=2068KiB, bw=406KiB/s, iops=16, runt= 5206msec
  read : io=2080KiB, bw=412KiB/s, iops=17, runt= 5161msec
  read : io=2068KiB, bw=410KiB/s, iops=18, runt= 5159msec
  read : io=2064KiB, bw=320KiB/s, iops=13, runt= 6603msec
  read : io=2064KiB, bw=356KiB/s, iops=13, runt= 5924msec
  read : io=2052KiB, bw=565KiB/s, iops=22, runt= 3716msec
  read : io=2060KiB, bw=396KiB/s, iops=18, runt= 5321msec
  read : io=2048KiB, bw=507KiB/s, iops=19, runt= 4129msec
  read : io=2048KiB, bw=302KiB/s, iops=12, runt= 6924msec
  read : io=2060KiB, bw=497KiB/s, iops=20, runt= 4243msec
  read : io=2072KiB, bw=3138KiB/s, iops=130, runt= 676msec
  read : io=2048KiB, bw=3472KiB/s, iops=130, runt= 604msec
  read : io=2060KiB, bw=4080KiB/s, iops=172, runt= 517msec
  read : io=2052KiB, bw=4227KiB/s, iops=171, runt= 497msec
  read : io=2048KiB, bw=3744KiB/s, iops=166, runt= 560msec
  read : io=2076KiB, bw=4201KiB/s, iops=169, runt= 506msec
  read : io=2052KiB, bw=3531KiB/s, iops=159, runt= 595msec

See Documentation/cgroups/memory.txt for more details.

Mathieu