On 04.03.2013 10:52, Lenky Gao wrote:
Hi, When i just run a test on Centos 6.2 as follows: #!/bin/bash while true do file="/tmp/filetest" echo $file dd if=/dev/zero of=${file} bs=512 count=204800 &> /dev/null sleep 5 done the inactive memory keep growing: #cat /proc/meminfo | grep Inactive\(fi Inactive(file): 420144 kB ... #cat /proc/meminfo | grep Inactive\(fi Inactive(file): 911912 kB ... #cat /proc/meminfo | grep Inactive\(fi Inactive(file): 1547484 kB ... and i cannot reclaim it: # cat /proc/meminfo | grep Inactive\(fi Inactive(file): 1557684 kB # echo 3 > /proc/sys/vm/drop_caches # cat /proc/meminfo | grep Inactive\(fi Inactive(file): 1520832 kB I have tested on other version kernel, such as 2.6.30 and .6.11, the problom also exists. When in the final situation, i cannot kmalloc a larger contiguous memory, especially in interrupt context. Can you give some tips to avoid this?
The drop_caches mechanism doesn't free dirty page cache pages. And your bash script is creating a lot of dirty pages. Run it like this and see if it helps your case:
sync; echo 3 > /proc/sys/vm/drop_caches Regards, -- Zlatko -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>