Upgrade to Pro — share decks privately, control downloads, hide ads and more …

その ionice、ほんとに効いてますか?

その ionice、ほんとに効いてますか?

2014/08/14、社内勉強会の資料です。

Ed424b1e857828ce69b0fdf4c3291d2e?s=128

Takamura Narimichi

September 12, 2014
Tweet

Transcript

  1. ͦͷ IONICE, ΄Μͱʹޮ͍ͯ·͔͢ʁ TAKAMURA Narimichi @nari_ex hbstudy-2014-08-14

  2. what is ionice ? I/O ͷॲཧ༏ઌ౓Λࢦఆ͢ΔLinuxίϚϯυ nice ίϚϯυͷ I/O όʔδϣϯ

    nice ίϚϯυͰ͸ I/O ༏ઌ౓Λ੍ޚෆՄ
  3. I/O ༏ઌ౓Ϋϥε RT ( Real-time ) ࠷ߴ༏ઌ౓ BE ( Best-Effort

    ) σϑΥϧτ༏ઌ౓ Idle ࠷௿༏ઌ౓
  4. BE: Ϋϥε಺༏ઌ౓ BE ΫϥεͷΈɺΫϥε಺༏ઌ౓͕͋Δ ༏ઌ౓͸ 0ʙ7 ·Ͱͷ 8ஈ֊ 0͕࠷ߴ༏ઌ౓ɺ7͕࠷௿༏ઌ౓ ༏ઌ౓͸Ϋϥεͷ࿮Λ௒͑ͳ͍

    RT > BE (0) IDLE < BE (7)
  5. None
  6. How to ionice RT ΫϥεΛࢦఆ: ionice -c1 BE ΫϥεΛࢦఆ: ionice

    -c2 -n <0ʙ7> IDLE ΫϥεΛࢦఆ: ionice -c3
  7. ༨ஊ: nice ίϚϯυ Ϋϥε͸ͳ͍ ༏ઌ౓ ( nice஋ ) ͸ -20ʙ19

    -20 ͕࠷ߴ༏ઌ౓ɺ19͕࠷௿༏ઌ౓
  8. ෛՙΛ࠷খݶʹ཈͍͑ͨʂ

  9. ionice, nice Λۦ࢖ͯ͠…

  10. # ionice -c3 nice -n19

  11. ͜ΕͰ׬ᘳͩʂʂʂ

  12. None
  13. ͪΐͬͱ·ͬͯ

  14. ͦͷ IONICE, ΄Μͱʹޮ͍ͯ·͔͢ʁ

  15. None
  16. ionice ͕ޮ͘৚݅ I/O εέδϡʔϥ ReadͳͷʁWriteͳͷʁϑϥά͸ʁ ϑΝΠϧ࡞੒ϑϥά Ωϟογϡͷ༗ແ

  17. I/O Scheduler…

  18. VFS Χʔωϧۭؒ γεςϜίʔϧ Ϣʔβۭؒ ෺ཧ σόΠε ϑΝΠϧγεςϜ σΟεΫΩϟογϡ ൚༻ϒϩοΫ૚ ෺ཧ

    σόΠε ϓϩηε I/Oεέδϡʔϥ૚ σόΠε υϥΠό σόΠε υϥΠό
  19. ৚݅ͦͷ̍: I/O Scheduler(1) CFQ εέδϡʔϥҎ֎͸ແཧ Linux ඪ४ͷεέδϡʔϥ͸ CFQ Amazon Linux

    ͸ Noop ͳͷͰ஫ҙ Unbreakable Linux ͸ Deadline ͳ ͷͰ஫ҙ
  20. σόΠεͻͱͭʹI/Oεέδϡʔϥͻͱͭ σόΠεΛ·͙ͨॲཧͷ৔߹ʹ஫ҙ ॲཧʹؔΘΔ͢΂ͯͷσόΠεΛ֬ೝͤΑ # cat /sys/block/<DEV_NAME>/queue/ scheduler ৚݅ͦͷ̍: I/O Scheduler(2)

  21. ৚݅ͦͷ̎: I/Oॲཧͷ಺༰(1) Write() ͸جຊతʹޮ͔ͳ͍ O_DIRECT, O_SYNC Λϑϥάཱͯ ͯΕ͹OK -o sync

    ͰϚ΢ϯτ͞ΕͨϑΝΠϧ γεςϜͳΒOK
  22. ৚݅ͦͷ̎: I/Oॲཧͷ಺༰(2) Read() ΋͢΂ͯʹޮ͘Θ͚Ͱ͸ͳ͍ σΟεΫΩϟογϡ͕͋Δͱμϝ σΟεΫΞΫηεͳ͍͔Β౰વ

  23. ·ͱΊ ionice ͸ҎԼͷ ̎৚݅Λຬͨͨ࣌͠ʹͪΌΜͱಈ͘ I/O Scheduler ͕ CFQ ಛఆͷI/Oॲཧ Ωϟογϡ͞Ε͍ͯͳ͍ϑΝΠϧ΁ͷRead

    ಛघϑϥάͷཱͬͨ Write
  24. ͍͞͝ʹ man ioprio_set Λಡ΋͏ ϑΝΠϧ࡞੒ϑϥάͷࡉ͔͍͜ͱ͸·ͨࠓ౓ O_SYNC, O_DSYNC, O_FSYNC… ionice -p

    <PID> Λ࢖͏ͱɺىಈதͷϓϩη εͷI/O༏ઌ౓มߋͰ͖ΔΑ