2010-09-20
pdflush¤òÊ᪤·¤¿¤¤¡¢¤¬Êá¤Þ¤é¤Ê¤¤¡ä¡ã
I/O¤È¤«¥¹¥È¥ì¡¼¥¸¤¬¶ì¼êʬÌî¤Ê¤Î¤Ç¡¢Íý²ò¤ò¿¼¤á¤ë¤¿¤á¤Ë¤Á¤ç¤¤¸¡¾Ú¡£º£²ó¤Ïpdflush¤Ë¤Ä¤¤¤Æ¡£
¤ä¤ê¤¿¤¤¤³¤È
"ps aux | grep pdflush"¤·¤Æ¡¢pdflush¤Î¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤òÊ᪤·¤¿¤¤¡£¡Ö¤¢¤¡¡¢¤¤¤Þpdflush¤¬µ¯Æ°¤·¤Æ¥¥ã¥Ã¥·¥å¤ò¥Ç¥£¥¹¥¯¤Ë޶ŽÞި޶ŽÞŽØ½ñ¤¹þ¤ó¤Ç¤ë¤ó¤À¤Ê¤¡¡Á¡×¤Ã¤Æ½Ö´Ö¤òÌܻ뤷¤¿¤¤¡£
pdflush¤È¤Ï¡£¤½¤â¤½¤âOS¤Ë¤ª¤±¤ëI/O¤È¤Ï
¤½¤â¤½¤â¤ÎÏäǤ¹¤¬¡¢OS¥ì¥¤¥ä¡¼¤Ç¤ÎI/O¤«¤éÉü½¬¤¹¤ë¤È¡£¡£´ðËÜŪ¤Ê¥Ö¥í¥Ã¥¯I/O¤Îή¤ì¤È¤·¤Æ¤Ï²¼µ¤Î¤è¤¦¤Ë¤Ê¤ë¡¢¤Ï¤º¤Ç¤¹¡£
- ¥¢¥×¥ê¥±¡¼¥·¥ç¥óÅù¤Î¥×¥í¥»¥¹¤¬¥é¥¤¥Ö¥é¥ê·Ðͳ¤Çwrite¤äread¥·¥¹¥Æ¥à¥³¡¼¥ë(I/OÍ×µá)¤òȯ¹Ô
- ¥«¡¼¥Í¥ë¤Ï¥×¥í¥»¥¹¤è¤êI/OÍ×µá¤ò¼õ¤±¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·Ðͳ¤Ç¥á¥â¥ê¾å¤Î¥Õ¥¡¥¤¥ë¥¥ã¥Ã¥·¥å¤Ë¥Ç¡¼¥¿¤ò½ñ¤¹þ¤à<-----¤³¤Î»þÅÀ¤ÇOS¤«¤é¸«¤ë¤ÈI/O´°Î»
- ½ñ¤¹þ¤ó¤À¥Ç¡¼¥¿¤Ï¥á¥â¥ê¾å¤Ë¤·¤«¤Ê¤¤¤Î¤Ç¡¢Äê´üŪ¤Ë¥Ç¡¼¥â¥ó¤¬¥á¥â¥ê¾å¤Î¥¥ã¥Ã¥·¥å¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð·Ðͳ¤Ç¥Ç¥£¥¹¥¯¤Ë½ñ¤¹þ¤à
¤Ç¡¢¤³¤Î»þ£¤Î¥Ç¡¼¥â¥ó·¯¤¬Åо줷¤Þ¤¹¤¬¡¢¤³¤¤¤Ä¤¬Linux(¥«¡¼¥Í¥ë2.6·Ï)¤Ç¤Ïpdflush¤È¤¤¤¦¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤À¤È¤Î¤³¤È¡£
pdflush¤ò¤Ä¤«¤Þ¤¨¤¿¤¤
¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤Ç¤âps¥³¥Þ¥ó¥É¤ò»È¤¨¤Ð[(¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É̾)]¤Ã¤Æ·Á¤Çɽ¼¨¤µ¤»¤ë¤³¤È¤Ï¤Ç¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Î¹Í¤¨Êý¤Ç¤¤¤±¤Ðpdflush¤À¤Ã¤Æ[pdflush]¤ß¤¿¤¤¤ÊÉ÷¤Ë¸½¤ì¤Æ¤¯¤ì¤ë¤Ï¤º¡£
¤·¤«¤â¤³¤¤¤Ä¤Ï¤É¤¦¤ä¤é¥Ç¥Õ¥©¥ë¥È¤À¤È5Éôֳ֤ǵ¯Æ°¤¹¤ë¤è¤¦¤Ç¤¹¡£²¼µ¤Î¥¨¥ó¥È¥ê¤ò»²¹Í¤Ë¤µ¤»¤ÆÄº¤¤Þ¤·¤¿¡£
5ÉᢤȤ¤¤¦¤Î¤Ï¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤Î pdflush ¤¬±ø¤ì¤¿¥Ú¡¼¥¸¤ò½ñ¤½Ð¤¹´Ö³Ö¤Ç¤¹¡£¤³¤ì¤Ï sysctl ¤Î vm.dirty_writeback_centisecs ¤ÇÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
% cat /proc/sys/vm/dirty_writeback_centisecs
500
¤³¤ÎÃͤÎñ°Ì¤Ï10ms¤À¤½¤¦¡£³Î¤«¤Ë¡¢³ºÅö¤¹¤ë¥Ñ¥é¥á¡¼¥¿¤Ï5000ms(5ÉÃ)¤Ç¿ô¤¬¹ç¤¦¡£
¤¤¤¶¸¡¾Ú
¤µ¤Æ¡¢dd¥³¥Þ¥ó¥É¤Ç3GBÄøÅ٤Υե¡¥¤¥ë¤òºîÀ®¤·¡¢I/OÉé²Ù¤ò¤«¤±¤Æ¤ß¤Þ¤¹¡£
% dd if=/dev/zero of=./testdd bs=16k count=200000 &
¤½¤Î´Ö¡¢¥Õ¥¡¥¤¥ë¥¥ã¥Ã¥·¥å¤Ë½ñ¤¹þ¤ß¤¬¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤¿¤á¤Ë¡¢/proc/meminfo¤«¤éDirty¤ÎÃͤògrep¤·¤Þ¤¹¡£Dirty¡Ê=±ø¤ì¤¿¡Ë¤Ê¥¥ã¥Ã¥·¥å¤Ï¡¢¥Ç¥£¥¹¥¯¤Î¾ðÊó¤ÈÀ°¹çÀ¤¬¤È¤ì¤Ê¤¤¤Î¤Ç¡¢¥Ç¥£¥¹¥¯¤ÈƱ´ü¤·¤ÆåºÎï¤Ë¥Õ¥é¥°¤ò¼è¤êʧ¤¦É¬Íפ¬¤¢¤ë¤Î¤Ç¤¹¤Í¡£
¤½¤·¤Æ¡¢´Î¿´¤Îps¤â¼èÆÀ¤·¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤ò1ÉäË1²ó¤Ç±Ê±óLOOP.
% while true while% do while% cat /proc/meminfo| grep -i dirty while% ps aux | grep pdflush | grep -v grep while% echo "--------------------------------------" while% sleep 1 while% done
pdflush¡¢½Ð¤Æ¤³¤¤
¸¡¾Ú³«»Ï¡£¡£¡£
% dd if=/dev/zero of=./testdd bs=16k count=200000 & [1] 13097 /var/tmp/testdir% 200000+0 records in 200000+0 records out 3276800000 bytes (3.3 GB) copied, 58.8831 s, 55.6 MB/s [1] + done dd if=/dev/zero of=./testdd bs=16k count=200000
¡£¡£¡£¤·¤«¤·¡¢pdflush¸½¤ì¤Ê¤¤¤Ã¤¹¡ä¡ã¡¡½Ð¤Æ¤³¤¤¡ä¡ã
% while true while% do while% cat /proc/meminfo| grep -i dirty while% ps aux | grep pdflush | grep -v grep while% echo "--------------------------------------" while% sleep 1 while% done Dirty: 22844 kB -------------------------------------- Dirty: 568 kB -------------------------------------- Dirty: 18740 kB -------------------------------------- Dirty: 36468 kB -------------------------------------- Dirty: 14968 kB -------------------------------------- Dirty: 22312 kB -------------------------------------- Dirty: 4688 kB -------------------------------------- Dirty: 3520 kB -------------------------------------- Dirty: 10216 kB -------------------------------------- Dirty: 2252 kB -------------------------------------- Dirty: 6048 kB -------------------------------------- Dirty: 45060 kB -------------------------------------- Dirty: 49152 kB --------------------------------------
Dirty¤¬ÊÑÆ°¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ÌÀ¤é¤«¤Ë¥¥ã¥Ã¥·¥å¤Ø¤Î½ñ¤¹þ¤ß¤·¤Æ¤ë¤³¤È¤Ïʬ¤«¤ë¤·¡¢Äê´üŪ¤ËDirty¤¬¥¯¥ê¥¢¤µ¤ì¤Æ¤ë¤ß¤¿¤¤¤Ê¤Î¤Ç¡¢pdflush¤é¤·¤²¿¤«¤¬Æ°¤¤¤Æ¤ë¤Î¤Ï´Ö°ã¤¤¤Ê¤¤¤ó¤À¤è¤Ê¡£¡£¡£
-------------------------------------- Dirty: 49152 kB -------------------------------------- Dirty: 12712 kB -------------------------------------- Dirty: 49152 kB -------------------------------------- Dirty: 4 kB <-------¤³¤³¤ÇDirty¤¬¥¯¥ê¥¢¤µ¤ì¤Æ¤ë -------------------------------------- Dirty: 4 kB -------------------------------------- Dirty: 4 kB -------------------------------------- Dirty: 49164 kB -------------------------------------- ¡Ê¡Á¡Á¡Á¡Á¾Êά¡Á¡Á¡Á¡Á¡Ë -------------------------------------- Dirty: 26072 kB -------------------------------------- Dirty: 26072 kB -------------------------------------- Dirty: 26072 kB -------------------------------------- Dirty: 26072 kB -------------------------------------- Dirty: 24 kB <----------¤³¤³¤Ç¤â¥¯¥ê¥¢ -------------------------------------- Dirty: 24 kB -------------------------------------- Dirty: 24 kB -------------------------------------- Dirty: 24 kB --------------------------------------
¤â¤·¤ä̾Á°¤¬pdflush¤Ç¤Ï¤Ê¤¤¡©¡©Ê̤λÅÁȤߤò»È¤Ã¤Æ¤¤¤ë¡©¡©ps¤Ë¤Ï¸½¤ì¤Ê¤¤¡©¡©²¾Á۴Ķ¤Ç¼Â¹Ô¤·¤Æ¤ë¤«¤é¡©¡©¤È¤«¿§¡¹µ¿¤Ã¤Æ¥°¥°¤ê¤Þ¤·¤¿¤¬¡¢Í¸ú¤Ê¾ðÊ󸫤Ĥ«¤é¤º¡¢¤Ç¤¹¡£¡£¡£
¤È¤ê¤¢¤¨¤ºÊó¹ð
¤È¤ê¤¢¤¨¤º¡¢¤¦¤Þ¤¯¤¤¤Ã¤Æ¤Ê¤¤¤Ã¤¹wwwww ¼è¤êµÞ¤®¡¢º£Æü¤Ï¤³¤³¤Þ¤Ç¡£¡£
