Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
ロリポップ!で目指す PHPのためのセキュリティと性能要件を 同時に満たすサーバホスティング技術 / loli-next
MATSUMOTO Ryosuke
PRO
May 21, 2016
Technology
6
9.6k
ロリポップ!で目指す PHPのためのセキュリティと性能要件を 同時に満たすサーバホスティング技術 / loli-next
PHP実行基盤の高速化・セキュリティ・省メモリ・ペパボKernel
MATSUMOTO Ryosuke
PRO
May 21, 2016
Tweet
Share
More Decks by MATSUMOTO Ryosuke
See All by MATSUMOTO Ryosuke
matsumoto_r
PRO
0
48
matsumoto_r
PRO
1
210
matsumoto_r
PRO
7
1.9k
matsumoto_r
PRO
0
420
matsumoto_r
PRO
3
3.3k
matsumoto_r
PRO
4
320
matsumoto_r
PRO
1
600
matsumoto_r
PRO
1
370
matsumoto_r
PRO
0
580
Other Decks in Technology
See All in Technology
kanaugust
PRO
0
150
oliva
7
1k
ihcomega56
1
460
xecus
0
170
imdigitallab
0
130
clustervr
0
130
gobeyond20xx
0
150
ayanadesu
0
300
youtalk
0
260
yamamuteki
2
570
miyakemito
1
550
syoshie
0
160
Featured
See All Featured
mongodb
23
3.9k
thoeni
4
590
orderedlist
PRO
328
36k
shpigford
165
19k
pauljervisheath
196
15k
mthomps
39
2.3k
smashingmag
230
18k
ammeep
656
54k
eitanlees
112
10k
marktimemedia
7
390
chrislema
231
16k
tenderlove
53
3.5k
Transcript
1)1࣮ߦج൫ͷߴԽɾηΩϡϦςΟɾলϝϞϦɾϖύϘ,FSOFM 2016/05/21 PHPΧϯϑΝϨϯεԬ2016 ϩϦϙοϓʂͰࢦ͢ 1)1ͷͨΊͷηΩϡϦςΟͱੑೳཁ݅Λ ಉ࣌ʹຬͨ͢αʔόϗεςΟϯάٕज़ GMOϖύϘגࣜձࣾ γχΞɾϓϦϯγύϧΤϯδχΞ MATSUMOTO, Ryosuke
@matsumotory
ࣗݾհ (.0ϖύϘגࣜձٕࣾज़ج൫νʔϜ γχΞɾϓϦϯγύϧΤϯδχΞ দຊ྄հ!NBUTVNPUPSZ ઐΠϯλʔωοτͱӡ༻ٕज़
શࣾతʹ৽ٕज़ͷԠ༻৽نݚڀɾ։ൃΛ୲ IUUQSFTFBSDINBUTVNPUPSKQ
࣍ ߴूੵϗεςΟϯάαʔϏε 1)1࣮ߦج൫ͷηΩϡϦςΟͱੑೳͷཱ྆ 1)1࣮ߦج൫ͷϝϞϦޮԽ 1)1࣮ߦج൫҆ఆԽͷͨΊʹϖύϘ,FSOFMར༻
·ͱΊ
ߴूੵϗεςΟϯάαʔϏε
ϗεςΟϯάαʔϏεͷಛ ࣄۀऀ͓٬༷ͷ8FCίϯςϯπΛ੍ޚͰ͖ͳ͍ ϛυϧΣΞɾ04Ͱ੍ޚ͢Δඞཁ͕͋Δ ڞ༗ͷ߹Ϧιʔε੍ޚηΩϡϦςΟ͕ॏཁ ಛʹੑೳͱ͍͔ʹόϥϯεΛͱΔ͔
ฐࣾͰߴूੵͷڞ༗ϗεςΟϯάʹ߆͍ͬͯΔ
ͳͥߴूੵʹͩ͜ΘΔͷ͔
None
None
ݸਓ͚αΠτத৺ ສαΠτΛӡӦ ֶੜओ්ͩͬͨΓݸਓ͕झຯͰ͏༻్ ϋʔυΣΞʹͲΕ͚ͩߴूੵͰ͖Δ͔ʹઓ ͱʹ͔҆͘͘ੑೳͷྑ͍ͷΛఏڙ͍ͨ͠
ιϑτΣΞʹΑΔٕज़ྗʹΑͬͯղܾՄೳ
8FCαʔόͷΞʔΩςΫνϟ
ϓϩηεͱऩ༰αΠτ ϝϞϦ(#Ͱ$16ίΞݸ αΠτΛສ͔ΒສαΠτͰऩ༰ ϓϩηε͕αΠτʹґଘ͠ͳ͍Α͏ͳߏ ෳαΠτڞ༗ͷIUUQEϓϩηε͕ϦΫΤετ͞Εͨϗετ ໊͔ΒಈతʹίϯςϯπΛݕग़ͯ͠ॲཧʢ7JSUVBM)PTU˞
ʣ ˞IUUQIUUQEBQBDIFPSHEPDTDVSSFOUFOWIPTUT
IUUQE ߴूੵͷͨΊͷΞʔΩςΫνϟ IUUQEϓϩηεݸºສສϓϩηεʢϢʔβݸผʹϓϩηεىಈʣ IUUQEϓϩηεݸ͙Β͍ͷԾϗετͰશϢʔβڞ༗ Ϣʔβ" IUUQE Ϣʔβ# IUUQE
Ϣʔβ$ IUUQE Ϣʔβ" Ϣʔβ# Ϣʔβ$ ޮྑ͘ϦιʔεΛ͑Δ ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁ ͳϦιʔε ىಈʹඞཁͳϦιʔε 04 04
ߴूੵͷͨΊͷ ΞʔΩςΫνϟͷ՝
ηΩϡϦςΟͱੑೳͷཱ྆ ϗεςΟϯάͷಛੑ্Ϣʔβຖʹݫີʹݖݶ ߴूੵڥͷ1)1ͷݖݶͷੑೳͷޮԽ ୯ҰͷBQBDIFݖݶͰىಈ͍ͯ͠ΔϓϩηεͰηΩϡϦ ςΟͱੑೳΛཱ͍͔྆ͭͭ͠ʹదʹݖݶ͢Δ͔
ֶज़ݚڀͷΞϓϩʔνͰ ৽ٕज़Λ։ൃɾಋೖ
None
1)1࣮ߦج൫ͷ ηΩϡϦςΟͱੑೳͷཱ྆
ߴूੵʹ͓͚Δ1)1ͷݖݶ TV&9&$ϦΫΤετຖʹϓϩηεੜഁغ͕ඞཁͰ͍ 'BTU$(*ϢʔβʹԠͯ͡ϓϩηεͱϝϞϦྔ૿Ճ NPE@SVJETVJEੑೳɾηΩϡϦςΟ໘Ͱ͋Γ˞ ݖݶͷͨΊͷίετΛͲ͏Լ͛Δ͔
େنߴूੵͷͨΊͷݖݶΞʔΩςΫνϟݕ౼ ˞দຊ྄հ Ԭ෦णஉ εϨου୯ҐͰݖݶΛߦ͏8FCαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ ిࢠใ௨৴ֶձจࢽ 7PM+# /P QQ 0DU
NPE@QSPDFTT@TFDVSJUZ "QBDIFͷεϨου୯ҐͰݖݶΞʔΩςΫνϟ˞ NPE@QIQͳͲͷݖݶΛߴʹߦ͑Δ ϦΫΤετ࣌ͷݖݶͷίετΛݮ ϓϩηεੜഁغ͔ΒεϨουੜഁغ
˞দຊ྄հ Ԭ෦णஉ εϨου୯ҐͰݖݶΛߦ͏8FCαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ ిࢠใ௨৴ֶձจࢽ 7PM+# /P QQ 0DU IUUQTHJUIVCDPNNBUTVNPUPSNPE@QSPDFTT@TFDVSJUZ
$(*QSPDFTT PXOFSVTFS $(*QSPDFTT PXOFSSPPU QIQDHJJOEFYQIQ PXOFSVTFS $(*QSPDFTT PXOFSVTFS TFUVJE TFUHJE
ʜ GPSL FYFDWF TVFYFDQSPHSBN TFUVJESPPU UFSNJOBUFQSPDFTT FYFDWF 1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF ˞$(* TV&9&$NPEFM
εϨουͱ-JOVY$BQBCJMJUZ ϓϩηε͔ΒݖݶͷDBQBCJMJUZ DBQ ͷΈΛҾ͖ܧ͙ ಈతίϯςϯπ࣮ߦલʹεϨουΛ࡞Δ εϨου্ͰݖݶมߋޙʹDBQΛམͱͯ͠ίϯςϯπ࣮ߦ
7JSUVBMJOH˞ Λͬͯɺ"QBDIFͦͷͷΛ֤छಛݖΛམͱ ͭͭ͠3FBEPOMZͷCJOEϚϯτͱඞཁϑΝΠϧͱϦιʔ ε੍ݶԽͷDISPPUڥʹͯىಈͤ͞Δ͓ͯ͘ͱΑΓڧݻ ˞IUUQTHJUIVCDPNNBUTVNPUPSNSVCZWJSUVBMJOH
1BSFOUIUUQEQSPDFTT PXOFSSPPU $IJMEIUUQEQSPDFTT PXOFSBQBDIF NQTUISFBE PXOFSVTFS NQTUISFBE PXOFSBQBDIF JOEFYQIQ PXOFSVTFS
TFUVJE TFUHJE ʜ VOTFUDBQT DSFBUFUISFBE TFUDBQT EFTUSPZUISFBE QBSTF SVO QSDUM TFUVJETFUHJEDBQT NQTUISFBE PXOFSVTFS ˞%40 NPE@QSPDFTT@TFDVSJUZNPEFM 7JSUVBMJOH&OWJSPONFOU
γεςϜίʔϧͷ QIQJOGP ͷΞΫηεΛTUSBDF͔Βղੳ˞ $(* TV&9&$ճ NPE@QIQ
NPE@QSPDFTT@TFDVSJUZճ ΦʔόʔϔουʹͳͬͯΔγεςϜίʔϧ˞ DMPOF PQFO DMPTF FYFDWF ͳͲͳͲ ˞TUSBDFDGQ1*% ˞DBUDHJMPHcHSFQWFQPMM@XBJUcHSFQWGVUFYcQFSMBOF <aEa> QSJOU@JG
None
ͦͷଞͷϝϦοτ͋ͬͨ ෛՙ͕େ෯ʹݮʢ1)1ར༻ऀ͕ଟʣ ϩʔυΞϕϨʔδʹͳΔΑ͏ͳΞΫηε͕ҎԼ ࠓ$(*ͱ%40ͷڞଘ͍ͯ͠Δঢ়ଶ %40ઐ༻ʹ͢Εͬͱऩ༰ޮ্͕͕Δ
ಋೖલޙͷ$16༻ྔൺֱ ҰͷΞΫηεͲͪΒͷαʔόສʢαʔϏεશମͰेԯʣ $(*ʴTV&9&$ %40ʴNPE@QSPDFTT@TFDVSJUZ ˙TZTUFN ˙VTFS ˙JEMF
͞Βʹ҆͘ɺ͞Βʹߴੑೳ
1)1࣮ߦج൫ͷϝϞϦޮԽ
ϩϦϙοϓʂߴूੵ ͱʹ͔͘ϓϩηεΛઅ͍ͨ͠ ͱʹ͔͘ϝϞϦΛઅ͍ͨ͠ NPE@QIQ݁ߏϝϞϦΛ৯͏ ಛʹϓϩηεͷ13*7"5&ͳϝϞϦઅ͍ͨ͠
NFNPSZ@MJNJUʹΑΔ੍ݶ NFNPSZ@MJNJUͰ13*7"5&ϝϞϦ੍ݶͰ͖Δ͕ʜ 1)1࣮ߦޙʹ13*7"5&ϝϞϦ͕ཷ·Δͷ͕ NFNPSZ@MJNJUΛԼ͛Δͱ͓٬༷͕໎ NFNPSZ@MJNJUेʹ͋Δ͕࣮ߦޙʹ͍ͬͯ ͳ͍13*7"5&ϝϞϦΛݮΒ͢ʹͲ͏͢ΕΑ͍͔
;&/%@..@4&(@4*;& ϝϞϦϒϩοΫΛׂΓͯΔࡍͷηάϝϯταΠζ ॲཧޙʹϝϞϦ͕ແବʹΔύλʔϯ͕͋Δ ׂͯྔΛνϡʔχϯάͯ͠Βͳ͍Α͏ʹͰ͖Δ ͕݅߹͑େ͖ͳޮՌ͕ಘΒΕΔͣ
ίʔυΛݟΔݶΓڥมͰ੍ޚՄೳ
None
NPE@QIQىಈ࣌ 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
COMMAND apache 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