Hatena::¥Ö¥í¥°(Diary)

niwaka diary ¤³¤Î¥Ú¡¼¥¸¤ò¥¢¥ó¥Æ¥Ê¤ËÄɲà RSS¥Õ¥£¡¼¥É

2010-09-20

pdflush¤òÊ᪤·¤¿¤¤¡¢¤¬Êá¤Þ¤é¤Ê¤¤¡ä¡ã

I/O¤È¤«¥¹¥È¥ì¡¼¥¸¤¬¶ì¼êʬÌî¤Ê¤Î¤Ç¡¢Íý²ò¤ò¿¼¤á¤ë¤¿¤á¤Ë¤Á¤ç¤¤¸¡¾Ú¡£º£²ó¤Ïpdflush¤Ë¤Ä¤¤¤Æ¡£

¤ä¤ê¤¿¤¤¤³¤È

"ps aux | grep pdflush"¤·¤Æ¡¢pdflush¤Î¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤òÊ᪤·¤¿¤¤¡£¡Ö¤¢¤¡¡¢¤¤¤Þpdflush¤¬µ¯Æ°¤·¤Æ¥­¥ã¥Ã¥·¥å¤ò¥Ç¥£¥¹¥¯¤Ë޶ŽÞި޶ŽÞŽØ½ñ¤­¹þ¤ó¤Ç¤ë¤ó¤À¤Ê¤¡¡Á¡×¤Ã¤Æ½Ö´Ö¤òÌܻ뤷¤¿¤¤¡£


pdflush¤È¤Ï¡£¤½¤â¤½¤âOS¤Ë¤ª¤±¤ëI/O¤È¤Ï

¤½¤â¤½¤â¤ÎÏäǤ¹¤¬¡¢OS¥ì¥¤¥ä¡¼¤Ç¤ÎI/O¤«¤éÉü½¬¤¹¤ë¤È¡£¡£´ðËÜŪ¤Ê¥Ö¥í¥Ã¥¯I/O¤Îή¤ì¤È¤·¤Æ¤Ï²¼µ­¤Î¤è¤¦¤Ë¤Ê¤ë¡¢¤Ï¤º¤Ç¤¹¡£

  1. ¥¢¥×¥ê¥±¡¼¥·¥ç¥óÅù¤Î¥×¥í¥»¥¹¤¬¥é¥¤¥Ö¥é¥ê·Ðͳ¤Çwrite¤äread¥·¥¹¥Æ¥à¥³¡¼¥ë(I/OÍ×µá)¤òȯ¹Ô
  2. ¥«¡¼¥Í¥ë¤Ï¥×¥í¥»¥¹¤è¤êI/OÍ×µá¤ò¼õ¤±¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·Ðͳ¤Ç¥á¥â¥ê¾å¤Î¥Õ¥¡¥¤¥ë¥­¥ã¥Ã¥·¥å¤Ë¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤à<-----¤³¤Î»þÅÀ¤ÇOS¤«¤é¸«¤ë¤ÈI/O´°Î»
  3. ½ñ¤­¹þ¤ó¤À¥Ç¡¼¥¿¤Ï¥á¥â¥ê¾å¤Ë¤·¤«¤Ê¤¤¤Î¤Ç¡¢Äê´üŪ¤Ë¥Ç¡¼¥â¥ó¤¬¥á¥â¥ê¾å¤Î¥­¥ã¥Ã¥·¥å¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð·Ðͳ¤Ç¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à

¤Ç¡¢¤³¤Î»þ­£¤Î¥Ç¡¼¥â¥ó·¯¤¬Åо줷¤Þ¤¹¤¬¡¢¤³¤¤¤Ä¤¬Linux(¥«¡¼¥Í¥ë2.6·Ï)¤Ç¤Ïpdflush¤È¤¤¤¦¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤À¤È¤Î¤³¤È¡£


pdflush¤ò¤Ä¤«¤Þ¤¨¤¿¤¤

¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤Ç¤âps¥³¥Þ¥ó¥É¤ò»È¤¨¤Ð[(¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É̾)]¤Ã¤Æ·Á¤Çɽ¼¨¤µ¤»¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤¹¤Î¤Ç¡¢¤½¤Î¹Í¤¨Êý¤Ç¤¤¤±¤Ðpdflush¤À¤Ã¤Æ[pdflush]¤ß¤¿¤¤¤ÊÉ÷¤Ë¸½¤ì¤Æ¤¯¤ì¤ë¤Ï¤º¡£

¤·¤«¤â¤³¤¤¤Ä¤Ï¤É¤¦¤ä¤é¥Ç¥Õ¥©¥ë¥È¤À¤È5Éôֳ֤ǵ¯Æ°¤¹¤ë¤è¤¦¤Ç¤¹¡£²¼µ­¤Î¥¨¥ó¥È¥ê¤ò»²¹Í¤Ë¤µ¤»¤ÆÄº¤­¤Þ¤·¤¿¡£

5ÉᢤȤ¤¤¦¤Î¤Ï¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤Î pdflush ¤¬±ø¤ì¤¿¥Ú¡¼¥¸¤ò½ñ¤­½Ð¤¹´Ö³Ö¤Ç¤¹¡£¤³¤ì¤Ï sysctl ¤Î vm.dirty_writeback_centisecs ¤ÇÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£

Linux I/O ¤Î¤ªÏà write ÊÔ - naoya¤Î¤Ï¤Æ¤Ê¥À¥¤¥¢¥ê¡¼

% 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 ¼è¤êµÞ¤®¡¢º£Æü¤Ï¤³¤³¤Þ¤Ç¡£¡£