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

【続編】その ionice、ほんとに効いてますか?

【続編】その ionice、ほんとに効いてますか?

2014/09/12 社内勉強会の資料です。前回の資料の続編です。

C236ca44c4fc873f80f97b5cf8a775df?s=128

Takamura Narimichi

September 12, 2014
Tweet

Transcript

  1. ʲଓฤʳͦͷ IONICE ɺ ΄Μͱʹޮ͍ͯ·͔͢ʁ גࣜձࣾϋʔτϏʔπ @nari_ex ߴଜ੒ಓ

  2. ͓͞Β͍ ionice ͸ҎԼͷ ̎৚݅Λຬͨͨ࣌͠ʹͪΌΜͱ ಈ͘ I/O Scheduler ͕ CFQ ಛఆͷI/Oॲཧ

    Ωϟογϡ͞Ε͍ͯͳ͍ϑΝΠϧ΁ͷRead ಛघϑϥάͷཱͬͨ Write
  3. ΜɺͳΜͰ(ɾ΁ɾ)ʁ

  4. CFQ ͡Όͳ͍ͱޮ͔ͳ͍ཧ༝

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

    σόΠε ϓϩηε I/Oεέδϡʔϥ σόΠε υϥΠό σόΠε υϥΠό I/Oεέδϡʔϥ I/O ͷ֓೦ਤ
  6. I/O εέδϡʔϥ֓ཁ   I/O     

       
  7. I/O εέδϡʔϥͷ αϒΩϡʔʹ஫໨

  8. ݁࿦: CFQ Ҏ֎ɺ༏ઌ౓Λߟྀͯ͠ ࣮૷͞Εͯͳ͍

  9. ୅දతͳI/Oεέδϡʔϥ • NOOP • DEADLINE • CFQʢCompletely Fair Queuingʣ

  10. • ཁٻΛσΟεύονΩϡʔʹಥͬࠐΉ͚ͩ • No Operation NOOP I/O εέδϡʔϥ

  11. NOOP I/O εέδϡʔϥ   I/O    

         શ෦ೖΓͷFIFOΩϡʔ͕͋Δ͚ͩ
  12. • ReadͱWriteͰΩϡʔ͕ผ • Read ༏ઌ • ظݶʢdeadlineʣ෇͖Ωϡʔ͕ಛ௃ • ظݶ͕੾Εͨཁٻ͸࠷༏ઌͰॲཧ͢Δ DEADLINE

    I/O εέδϡʔϥ
  13. DEADLINE I/O εέδϡʔϥ   I/O    

         READ ͱ WRITE ͷΩϡʔ͕͋Δ͚ͩ
  14. • ϓϩηε͝ͱʹαϒΩϡʔΛ༻ҙ • ༏ઌ౓Λߟྀͯ͠Ωϡʔ͝ͱͷॲཧ࣌ؒΛܾఆ • ̍ͭͷαϒΩϡʔΛΞΫςΟϒΩϡʔͱͯ͠ɺͦͷ Ωϡʔ಺ͷཁٻΛॲཧ࣌ؒͷൣғͰॲཧ͢Δ • ॲཧ͕࣌ؒऴΘΔͱΞΫςΟϒΩϡʔ͕੾ΓସΘΔ CFQ

    I/O εέδϡʔϥ
  15. CFQ I/O εέδϡʔϥ ϓϩηε͝ͱʹΩϡʔ͕͋Δ   I/O   

          …"
  16. CFQ I/O εέδϡʔϥ   I/O    

         …" ΞΫςΟϒʹͳͬͨΩϡʔʹ͋Δ ཁٻ͕ॲཧ͞ΕΔ ௿༏ઌ౓ϓϩηεͷαϒΩϡʔ͸ ΞΫςΟϒʹͳ͔ͳ͔ͳΒͳ͍ && ͳͬͯ΋͙͢ʹελϯόΠʹͳΔ
  17. ಛఆͷI/O͡Όͳ͍ͱޮ͔ͳ͍ཧ༝

  18. σΟεΫΩϟογϡͷޮ͍ͨREAD ϓϩηεۭؒ σΟεΫΩϟογϡ ෺ཧσόΠε σΟεΫΩϟογϡͷ σʔλΛฦ͢

  19. σΟεΫΩϟογϡͷͳ͍READ ϓϩηεۭؒ σΟεΫΩϟογϡ ෺ཧσόΠε

  20. σΟεΫΩϟογϡͷͳ͍READ ϓϩηεۭؒ σΟεΫΩϟογϡ ෺ཧσόΠε σΟεΫΩϟογϡ࡞੒ σΟεΫΩϟογϡͷ σʔλΛฦ͢

  21. ී௨ͷWRITEʢ஗Ԇ WRITEʣ ϓϩηεۭؒ σΟεΫΩϟογϡ ෺ཧσόΠε ޙͰॻ͖ࠐΈ σΟεΫΩϟογϡʹ ίϐʔΛͯ͠ऴྃ

  22. ී௨ͷWRITEʢ஗Ԇ WRITEʣ ϓϩηεۭؒ σΟεΫΩϟογϡ ෺ཧσόΠε ޙͰॻ͖ࠐΈ σΟεΫΩϟογϡʹ ίϐʔΛͯ͠ऴྃ ୭͕΍Δͷʁ

  23. ఆظతʹLINUX Χʔωϧ͕ॻ͖ࠐΜͰ·͢ɻ ※͔ͩΒ IONICE ͕ޮ͔ͳ͍

  24. ఆظతͳಉظॲཧ

  25. ಛघͳϑϥάͷཱͬͨI/O ϓϩηεۭؒ σΟεΫΩϟογϡ ෺ཧσόΠε ΩϟογϡΛܦ༝ͤͣ ௚઀σόΠεʹಡΈॻ͖͢Δ

  26. ࣭໰ίʔφʔ