PHP実行基盤の高速化・セキュリティ・省メモリ・ペパボKernel
1)1࣮ߦج൫ͷߴԽɾηΩϡϦςΟɾলϝϞϦɾϖύϘ,FSOFM2016/05/21 PHPΧϯϑΝϨϯεԬ2016ϩϦϙοϓʂͰࢦ͢1)1ͷͨΊͷηΩϡϦςΟͱੑೳཁ݅Λಉ࣌ʹຬͨ͢αʔόϗεςΟϯάٕज़GMOϖύϘגࣜձࣾγχΞɾϓϦϯγύϧΤϯδχΞMATSUMOTO, Ryosuke@matsumotory
View Slide
ࣗݾհ (.0ϖύϘגࣜձٕࣾज़ج൫νʔϜ γχΞɾϓϦϯγύϧΤϯδχΞ দຊ྄հ!NBUTVNPUPSZ ઐΠϯλʔωοτͱӡ༻ٕज़ શࣾతʹ৽ٕज़ͷԠ༻৽نݚڀɾ։ൃΛ୲IUUQSFTFBSDINBUTVNPUPSKQ
࣍ ߴूੵϗεςΟϯάαʔϏε 1)1࣮ߦج൫ͷηΩϡϦςΟͱੑೳͷཱ྆ 1)1࣮ߦج൫ͷϝϞϦޮԽ 1)1࣮ߦج൫҆ఆԽͷͨΊʹϖύϘ,FSOFMར༻ ·ͱΊ
ߴूੵϗεςΟϯάαʔϏε
ϗεςΟϯάαʔϏεͷಛ ࣄۀऀ͓٬༷ͷ8FCίϯςϯπΛ੍ޚͰ͖ͳ͍ ϛυϧΣΞɾ04Ͱ੍ޚ͢Δඞཁ͕͋Δ ڞ༗ͷ߹Ϧιʔε੍ޚηΩϡϦςΟ͕ॏཁ ಛʹੑೳͱ͍͔ʹόϥϯεΛͱΔ͔ ฐࣾͰߴूੵͷڞ༗ϗεςΟϯάʹ߆͍ͬͯΔ
ͳͥߴूੵʹͩ͜ΘΔͷ͔
ݸਓ͚αΠτத৺ ສαΠτΛӡӦ ֶੜओ්ͩͬͨΓݸਓ͕झຯͰ͏༻్ ϋʔυΣΞʹͲΕ͚ͩߴूੵͰ͖Δ͔ʹઓ ͱʹ͔҆͘͘ੑೳͷྑ͍ͷΛఏڙ͍ͨ͠ ιϑτΣΞʹΑΔٕज़ྗʹΑͬͯղܾՄೳ
8FCαʔόͷΞʔΩςΫνϟ
ϓϩηεͱऩ༰αΠτ ϝϞϦ(#Ͱ$16ίΞݸ αΠτΛສ͔ΒສαΠτͰऩ༰ ϓϩηε͕αΠτʹґଘ͠ͳ͍Α͏ͳߏ ෳαΠτڞ༗ͷIUUQEϓϩηε͕ϦΫΤετ͞Εͨϗετ໊͔ΒಈతʹίϯςϯπΛݕग़ͯ͠ॲཧʢ7JSUVBM)PTU˞ʣ˞IUUQIUUQEBQBDIFPSHEPDTDVSSFOUFOWIPTUT
IUUQEߴूੵͷͨΊͷΞʔΩςΫνϟ IUUQEϓϩηεݸºສສϓϩηεʢϢʔβݸผʹϓϩηεىಈʣ IUUQEϓϩηεݸ͙Β͍ͷԾϗετͰશϢʔβڞ༗Ϣʔβ"IUUQEϢʔβ#IUUQEϢʔβ$IUUQEϢʔβ"Ϣʔβ#Ϣʔβ$ޮྑ͘ϦιʔεΛ͑ΔىಈʹඞཁͳϦιʔεىಈʹඞཁͳϦιʔεىಈʹඞཁͳϦιʔεىಈʹඞཁͳϦιʔε04 04
ߴूੵͷͨΊͷΞʔΩςΫνϟͷ՝
ηΩϡϦςΟͱੑೳͷཱ྆ ϗεςΟϯάͷಛੑ্Ϣʔβຖʹݫີʹݖݶ ߴूੵڥͷ1)1ͷݖݶͷੑೳͷޮԽ ୯ҰͷBQBDIFݖݶͰىಈ͍ͯ͠ΔϓϩηεͰηΩϡϦςΟͱੑೳΛཱ͍͔྆ͭͭ͠ʹదʹݖݶ͢Δ͔
ֶज़ݚڀͷΞϓϩʔνͰ৽ٕज़Λ։ൃɾಋೖ
1)1࣮ߦج൫ͷηΩϡϦςΟͱੑೳͷཱ྆
ߴूੵʹ͓͚Δ1)1ͷݖݶ TV&9&$ϦΫΤετຖʹϓϩηεੜഁغ͕ඞཁͰ͍ 'BTU$(*ϢʔβʹԠͯ͡ϓϩηεͱϝϞϦྔ૿Ճ [email protected]TVJEੑೳɾηΩϡϦςΟ໘Ͱ͋Γ˞ ݖݶͷͨΊͷίετΛͲ͏Լ͛Δ͔ େنߴूੵͷͨΊͷݖݶΞʔΩςΫνϟݕ౼˞দຊ྄հ Ԭ෦णஉ εϨου୯ҐͰݖݶΛߦ͏8FCαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ ిࢠใ௨৴ֶձจࢽ7PM+# /P QQ 0DU
[email protected]@TFDVSJUZ "QBDIFͷεϨου୯ҐͰݖݶΞʔΩςΫνϟ˞ [email protected]ͳͲͷݖݶΛߴʹߦ͑Δ ϦΫΤετ࣌ͷݖݶͷίετΛݮ ϓϩηεੜഁغ͔ΒεϨουੜഁغ˞দຊ྄հ Ԭ෦णஉ εϨου୯ҐͰݖݶΛߦ͏8FCαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ ిࢠใ௨৴ֶձจࢽ7PM+# /P QQ 0DU[email protected]@TFDVSJUZ
$(*QSPDFTTPXOFSVTFS$(*QSPDFTTPXOFSSPPUQIQDHJJOEFYQIQPXOFSVTFS$(*QSPDFTTPXOFSVTFSTFUVJE TFUHJE ʜGPSL FYFDWF TVFYFDQSPHSBN TFUVJESPPUUFSNJOBUFQSPDFTTFYFDWF 1BSFOUIUUQEQSPDFTTPXOFSSPPU$IJMEIUUQEQSPDFTTPXOFSBQBDIF˞$(*TV&9&$NPEFM
εϨουͱ-JOVY$BQBCJMJUZ ϓϩηε͔ΒݖݶͷDBQBCJMJUZ DBQͷΈΛҾ͖ܧ͙ ಈతίϯςϯπ࣮ߦલʹεϨουΛ࡞Δ εϨου্ͰݖݶมߋޙʹDBQΛམͱͯ͠ίϯςϯπ࣮ߦ 7JSUVBMJOH˞Λͬͯɺ"QBDIFͦͷͷΛ֤छಛݖΛམͱͭͭ͠3FBEPOMZͷCJOEϚϯτͱඞཁϑΝΠϧͱϦιʔε੍ݶԽͷDISPPUڥʹͯىಈͤ͞Δ͓ͯ͘ͱΑΓڧݻ˞IUUQTHJUIVCDPNNBUTVNPUPSNSVCZWJSUVBMJOH
1BSFOUIUUQEQSPDFTTPXOFSSPPU$IJMEIUUQEQSPDFTTPXOFSBQBDIFNQTUISFBEPXOFSVTFSNQTUISFBEPXOFSBQBDIFJOEFYQIQPXOFSVTFSTFUVJE TFUHJE ʜ VOTFUDBQTDSFBUFUISFBE TFUDBQTEFTUSPZUISFBEQBSTF SVOQSDUM TFUVJETFUHJEDBQTNQTUISFBEPXOFSVTFS˞%[email protected]@TFDVSJUZNPEFM7JSUVBMJOH&OWJSPONFOU
γεςϜίʔϧͷ QIQJOGP ͷΞΫηεΛTUSBDF͔Βղੳ˞ $(*TV&9&$ճ [email protected]@[email protected]ճ ΦʔόʔϔουʹͳͬͯΔγεςϜίʔϧ˞ DMPOF PQFO DMPTF FYFDWF ͳͲͳͲ˞TUSBDFDGQ1*%˞[email protected]UFYcQFSMBOF [email protected]
ͦͷଞͷϝϦοτ͋ͬͨ ෛՙ͕େ෯ʹݮʢ1)1ར༻ऀ͕ଟʣ ϩʔυΞϕϨʔδʹͳΔΑ͏ͳΞΫηε͕ҎԼ ࠓ$(*ͱ%40ͷڞଘ͍ͯ͠Δঢ়ଶ %40ઐ༻ʹ͢Εͬͱऩ༰ޮ্͕͕Δ
ಋೖલޙͷ$16༻ྔൺֱҰͷΞΫηεͲͪΒͷαʔόສʢαʔϏεશମͰेԯʣ$(*ʴTV&9&$ %40ʴ[email protected]@TFDVSJUZ˙TZTUFN˙VTFS˙JEMF
͞Βʹ҆͘ɺ͞Βʹߴੑೳ
1)1࣮ߦج൫ͷϝϞϦޮԽ
ϩϦϙοϓʂߴूੵ ͱʹ͔͘ϓϩηεΛઅ͍ͨ͠ ͱʹ͔͘ϝϞϦΛઅ͍ͨ͠ [email protected]݁ߏϝϞϦΛ৯͏ ಛʹϓϩηεͷ13*7"5&ͳϝϞϦઅ͍ͨ͠
[email protected]ʹΑΔ੍ݶ [email protected]Ͱ13*7"5&ϝϞϦ੍ݶͰ͖Δ͕ʜ 1)1࣮ߦޙʹ13*7"5&ϝϞϦ͕ཷ·Δͷ͕ [email protected]ΛԼ͛Δͱ͓٬༷͕໎ [email protected]ेʹ͋Δ͕࣮ߦޙʹ͍ͬͯͳ͍13*7"5&ϝϞϦΛݮΒ͢ʹͲ͏͢ΕΑ͍͔
;&/%@[email protected]&(@4*;& ϝϞϦϒϩοΫΛׂΓͯΔࡍͷηάϝϯταΠζ ॲཧޙʹϝϞϦ͕ແବʹΔύλʔϯ͕͋Δ ׂͯྔΛνϡʔχϯάͯ͠Βͳ͍Α͏ʹͰ͖Δ ͕݅߹͑େ͖ͳޮՌ͕ಘΒΕΔͣ ίʔυΛݟΔݶΓڥมͰ੍ޚՄೳ
[email protected]ىಈ࣌PID VSZ RSS PRIVATE SHARED[KB]10280 51188 49824 128 49696 ( 99%)10281 51188 49824 124 49700 ( 99%)10282 51188 49824 124 49700 ( 99%)10283 51188 49824 124 49700 ( 99%)10284 51188 49824 124 49700 ( 99%)10285 51188 49824 124 49700 ( 99%)10286 51188 49824 124 49700 ( 99%)10287 51188 49824 124 49700 ( 99%)10288 51188 49824 124 49700 ( 99%)IUUQTHJUIVCDPNIJSPTFTIBSFENFNPSZTJ[F
σϑΥϧτʢ81ΞΫηεޙʣPID VSZ RSS PRIVATE SHARED[KB]10281 125628 67372 18428 48944 ( 72%)10282 125628 67368 18400 48968 ( 72%)10286 125628 67368 18400 48968 ( 72%)10291 125628 67368 18400 48968 ( 72%)10293 125628 67368 18400 48968 ( 72%)10294 125628 67368 18400 48968 ( 72%)10300 125628 67368 18400 48968 ( 72%)10301 125628 67368 18400 48968 ( 72%)10303 125628 67368 18400 48968 ( 72%)8PSE1SFTTͷॲཧޙͷ13*7"5&ͷϝϞϦ֬อྔ.#
νϡʔχϯάޙʢ81ΞΫηεޙʣPID VSZ RSS PRIVATE SHARED[KB]20908 129212 55076 6108 48968 ( 88%)20909 129212 55076 6108 48968 ( 88%)20910 129212 55076 6108 48968 ( 88%)20911 129212 55076 6108 48968 ( 88%)20912 129212 55076 6108 48968 ( 88%)20913 129212 55076 6108 48968 ( 88%)20914 129212 55076 6108 48968 ( 88%)20915 129212 55076 6108 48968 ( 88%)20916 129212 55076 6108 48968 ( 88%)ϓϩηεͰ13*7"5&Λ.#ݮɺϓϩηεͩͱ(#ͷݮ
͓٬༷ͷϝϞϦΛ੍ݶ͢Δ͜ͱͳ͘1)1ଆͰઅ͕Ͱ͖ͨ
1)1࣮ߦج൫҆ఆԽͷͨΊϖύϘ,FSOFMར༻
1)1͕LFSOFMΛ͑ͨ
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDapache 10241 55636314 0.0 0 0 ? R 12:36 21115121:16 [httpd]
ϖύϘ,FSOFM ,FSOFMܥͷDHSPVQͰ,FSOFMύχοΫϋϯάසൃ $16ສͷQIQͷLFSOFMεϨου ͷ༷ʹݟ͑Δʣ ࡴͤͳ͍ɺIBMUͰ͖ͳ͍ɺϋʔυϦηοτ͢Δ͔͠ͳ͍ $FOU04ʹ,FSOFMܥϕʔεͷϖύϘ,FSOFMΛಋೖ .BDͰಈ͘,FSOFMͷSQNϏϧυγεςϜ։ൃIUUQTHJUIVCDPNNBUTVNPUPSLFSOFMCVJMETZTUFNGPSDFOUPT
ಛఆͷ1)1͕ͨ͠Γ੬ऑͰ͋ͬͯଞϗετʹඃ͕Ͱͳ͍Α͏ʹ͖ͪΜͱ੍ޚ
·ͱΊ
ͥͻϩϦϙοϓʂͷ1)1ΛͬͯԼ͍͞IUUQTMPMJQPQKQ
ϖύϘɾͯͳٕज़େձ։࠵ ओʹ8FCαʔϏεاۀʹڵຯͷ͋Δֶੜ͚ ژͱԬͰि࿈ଓͰ։࠵ʢͱʣ ୈҰճ8FCαʔϏεͷج൫ٕज़ ৄ͘͠ҎԼͷ63-ͰIUUQEFWFMPQFSIBUFOBTUBGGDPNFOUSZ