Re: slow performance on disk/network i/o full speed after drop_caches

Wu Fengguang
2011-08-26T02:16:54Z

Hi Stefan,

> Here is the data you requested:
>
> root@server1015-han:~# grep . /sys/devices/system/node/node*/vmstat
> /sys/devices/system/node/node0/vmstat:nr_written 5546561
> /sys/devices/system/node/node0/vmstat:nr_dirtied 5572497
> /sys/devices/system/node/node1/vmstat:nr_written 3936
> /sys/devices/system/node/node1/vmstat:nr_dirtied 4190

Ah you are running an older kernel that didn't show all the vmstat
numbers. But still it's revealing that node 0 is used heavily and node
1 is almost idle. So I won't be surprised to see most free pages lie
in node 1.

> modified it a little bit:
> ~# while [ true ]; do ps -eo
> user,pid,tid,class,rtprio,ni,pri,psr,pcpu,vsz,rss,pmem,stat,wchan:28,cmd
> | grep scp | grep -v grep; sleep 1; done
>
> root 12409 12409 TS - 0 19 0 59.8 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/

It's mostly doing poll() waits. There must be some dependency on
something other to make progress. Would you post the full ps output
for all tasks, and even better, run

echo t > /proc/sysrq-trigger

To dump the kernel stacks?

Thanks,
Fengguang

> root 12409 12409 TS - 0 19 0 64.0 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 0 67.7 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 8 70.6 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 8 73.5 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 8 76.0 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 8 78.2 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 8 80.0 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 8 80.9 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 2 76.7 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 1 75.6 42136 1724 0.0 Ds
> pipe_read scp -t /tmp/
> root 12409 12409 TS - 0 19 0 76.0 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 1 75.2 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 1 76.6 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 1 77.9 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 1 79.0 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 1 72.8 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 0 73.0 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 0 73.8 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 1 74.3 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 1 73.4 42136 1724 0.0 Ss
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 1 71.3 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 1 71.9 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 0 72.7 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 3 73.5 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 3 74.4 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 3 75.2 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 0 76.0 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 8 76.6 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 1 74.8 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 1 73.2 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 1 73.9 42136 1724 0.0 Rs
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 0 72.4 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 8 72.0 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 8 72.5 42136 1724 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12409 12409 TS - 0 19 8 72.9 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12409 12409 TS - 0 19 8 73.5 42136 1724 0.0 Rs
> - scp -t /tmp/
> root 12566 12566 TS - 0 19 1 0.0 42136 1728 0.0 Rs
> - scp -t /tmp/
> root 12566 12566 TS - 0 19 1 23.0 42136 1728 0.0 Rs
> - scp -t /tmp/
> root 12566 12566 TS - 0 19 1 49.5 42136 1728 0.0 Rs
> - scp -t /tmp/
> root 12566 12566 TS - 0 19 2 63.3 42136 1728 0.0 Rs
> - scp -t /tmp/
> root 12566 12566 TS - 0 19 1 71.5 42136 1728 0.0 Rs
> - scp -t /tmp/
> root 12566 12566 TS - 0 19 1 77.4 42136 1728 0.0 Rs
> - scp -t /tmp/
> root 12566 12566 TS - 0 19 1 70.3 42136 1728 0.0 Rs
> - scp -t /tmp/
> root 12566 12566 TS - 0 19 1 73.1 42136 1728 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12566 12566 TS - 0 19 0 65.7 42136 1728 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
> root 12566 12566 TS - 0 19 1 61.2 42136 1728 0.0 Ss
> - scp -t /tmp/
> root 12566 12566 TS - 0 19 1 63.7 42136 1728 0.0 Rs
> - scp -t /tmp/
> root 12636 12636 TS - 0 19 8 0.0 42136 1728 0.0 Ss
> poll_schedule_timeout scp -t /tmp/
>
>
> Stefan