Slide 1

Slide 1 text

8FC"1*αʔόʔͱͯ͠ͷ &MJYJSͷՄೳੑ /BPZB*UP ,BJ[FO1MBUGPSN *OD "1*.FFUVQ5PLZP

Slide 2

Slide 2 text

ࡢࠓ͜Μͳ͜ͱ͋Γ·ͤΜ͔ •  ͨͩͷ+40/"1*ʹ3BJMTͰ͸ŋŋŋ –  ϋΠτϥϑΟοΫͳҊ݅Ͱ࢖͍ͮΒ͍ –  ཁ݅ʹରͯ͠ϝϞϦϑοτϓϦϯτ͕େ͖͗͢ –  ઀ଓ਺͕ଟ͍ͱεέʔϧ͠ͳ͍ –  ଱ো֐ੑʹෆ҆ •  ʮεύΠΫͨ͠ͷͰམͪ·ͨ͠ʯͰ͸ࡁ·͞Εͳ͍ɻ޿ࠂ αʔόʔͱ͔

Slide 3

Slide 3 text

,BJ[FO1MBUGPSNͰ͸ŋŋŋ •  ҎԼͷέʔεͰ࣮ࡍʹ͋ͬͨ –  ޿ࠂ഑৴ͷ֎෦αʔόʔͱͷ΍ΓͱΓ •  ଟྔͷ઀ଓ –  3FEJTͱ*0ͯ͠ฦ౴͢Δ͚ͩͷ"1*αʔόʔ •  ཁ݅͸γϯϓϧɻෳࡶͳ.PEFM7JFXཁΒͳ͍ •  Ͱ΋εύΠΫͰམͱͨ͘͠ͳ͍ ͻͱ·ͣ/PEFKTͰ ରԠͨ͠

Slide 4

Slide 4 text

親 子 fork()   ϚϧνϓϩηεϞσϧʹΑΔฒߦॲཧ ྫ3BJMTͷ࣮ߦ؀ڥ

Slide 5

Slide 5 text

1SPT$POT •  1SPT –  ҆શ •  ϦΫΤετ͝ͱʹϝϞϦۭؒ෼཭㱺Ϋϥογϡͯ͠΋ ଞʹӨڹ͠ͳ͍ –  ϓϩάϥϛϯάϞσϧ͕୯७ ಉظͰ0, –  ϚϧνίΞ •  $POT –  εέʔϥϏϦςΟʹ೉ •  ϝϞϦେ㱺࠷େϓϩηε਺ಉ࣌ฒߦ਺্ݶ •  04ϓϩηεεϨουͷίϯςΩετεΠον

Slide 6

Slide 6 text

࣌ؒ A B A C D B ・・・ select()  /  epoll()   ίϯςΩετ εΠον ΠϕϯτۦಈϞσϧʹΑΔฒߦॲཧ ྫ&WFOU.BDIJOF /PEFKT

Slide 7

Slide 7 text

1SPT$POT •  1SPT –  εέʔϥϏϦςΟ ߴ͍ฒߦॲཧੑೳ •  ϝϞϦϑοτϓϦϯτখ͍͞ •  ಉ࣌઀ଓ਺͕૿͑ͯ΋εέʔϧ •  $POT –  ଱ো֐ੑʹ೉ •  མͪΔͱ͖͸શ෦མͪΔ •  ϝϞϦϦʔΫ͜Θ͍ –  ϓϩάϥϛϯάϞσϧ͕΍΍ෳࡶ˞/PEFKTͩͱͦΕ΄ͲͰ΋ͳ͍ –  ϚϧνίΞ$16Λ࢖͍ͮΒ͍

Slide 8

Slide 8 text

τϨʔυΦϑ •  ฒߦॲཧੑೳ͸Ք͛ͳ͍͕҆શͰ୯७ͳ Ϛϧνϓϩηε εϨου Ϟσϧ͔ •  ฒߦॲཧੑೳ͕ߴ͍͕ӡ༻ʹؾΛݣ͏Πϕ ϯτۦಈϞσϧ͔ ͙͵͵ŋŋŋ

Slide 9

Slide 9 text

ͦ͜Ͱ&SMBOHͰ͢

Slide 10

Slide 10 text

&SMBOHͷ࣮ߦ؀ڥ •  #&". &SMBOH7. – ܰྔϓϩηεŋŋŋ࣮ߦίϯςΩετ •  খ͍͞ϫʔυɺىಈʹdϚΠΫϩඵ – ฒߦॲཧੑೳ͕ߴ͍ •  7.͕ܰྔϓϩηεΛεέδϡʔϦϯά –  7.εϨουຖʹϥϯΩϡʔ –  ཪଆͰ͸ඇಉظεϨουϓʔϧ ref:  h+p://www.erlang-­‐factory.com/upload/presenta=ons/708/HitchhikersTouroEheBEAM.pdf

Slide 11

Slide 11 text

ΞΫλʔϞσϧ ϝοηʔδύογϯά ஋͸͢΂ͯίϐʔ 4IBSFE/PUIJOH ϝʔϧϘοΫεʹ ΩϡʔΠϯά

Slide 12

Slide 12 text

&SMBOHͰͷ ωοτϫʔΫαʔόʔ •  ϦΫΤετʹܰྔϓϩηε – ҆શ •  ܰྔϓϩηεŋŋŋಠཱ࣮ͨ͠ߦίϯςΩετ •  4IBSFE/PUIJOHŋŋŋ͋Δϓϩηε͕Ϋϥογϡ ͯ͠΋໰୊ͳ͍ – ߴ͍ฒߦॲཧੑೳ •  ܰྔŋŋŋϝϞϦϑοτϓϦϯτখ͍͞ •  Ϣʔβʔϥϯυ04ͷίϯςΩετεΠονͳ ͠

Slide 13

Slide 13 text

&SMBOHͷϝϞϦϞσϧ •  QFS1SPDFTT($ –  ϓϩηεຖʹ($ •  άϩʔόϧ($ͩͱશମʹӨڹ͢Δ •  ϓϩηε෼཭ –  4IBSFE/PUIJOH –  ϓϩηε)FBQ •  ($͸ܰྔϓϩηεຖʹ૸ΒͤɺཁΒͳ͘ͳͬͨΒഇغ ؆ ୯Ͱޮ཰͕Α͍ ҆ఆͨ͠Ԡ౴ੑೳ ߴ͍଱ো֐ੑ

Slide 14

Slide 14 text

4VQFSWJTPS Supervisor ϓϩηε ؂ࢹ ʮಥવͷࢮʂʯ ϓϩηεࢮΜͩ͠ɺઓུ ʹ߹Θͤͯ࠶ىಈ͠ͱ͘ Θ crash

Slide 15

Slide 15 text

-FUJUDSBTI •  ࣦഊʹඋ͑ͳ͍ɻྫ֎Λั·͑ͳ͍ •  4VQFSWJTPSͰ؂ࢹ͓͍ͯͯ͠ɺͦͷ· ·ى͜͢ͳΓύϥϝʔλม͑ͯϦτϥΠ͞ ͤΔͳΓŋŋŋ ނোରԠϞσϧ͕ ݴޠج൫Ͱఏڙ

Slide 16

Slide 16 text

/PEFKTWT&SMBOH •  /PEFKTWT&SMBOH –  IUUQLVFOJTIJIBUFOBEJBSZKQFOUSZ –  ނোϞσϧɺίʔυมߋɺίʔυҠಈɺແఀࢭΞοϓάϨʔυɺ ͜͏͍͏ͷͬͯYͰμ΢ϯλΠϜͷγεςϜͩͱେࣄͩΑ Ͷɻ +PF"SNTUSPOH –  ݁ہੑೳΑΓ΋ނো଱ੑͳΜͩΑͶᴷͦΕͳ

Slide 17

Slide 17 text

Ͱ΋&SMBOHͳΜͰ͠ΐ͏

Slide 18

Slide 18 text

ͦ͜Ͱ&MJYJS

Slide 19

Slide 19 text

&MJYJS •  &SMBOH7.ͷ্Ͱಈ͘ݴޠ –  &SMBOH7.ͷڧΈ ฒߦॲཧੑೳɺ଱ো֐ੑ Λͦͷ··ʹɺγϯ λοΫεΛೃછΈ΍͘͢ •  KPTFWBMJN&SMBOHͰݟͨ͜ͱ͸ΈΜͳؾʹೖ͚ͬͨͲɺݟͳ͔ͬͨ͜ͱ ͸ΈΜͳݏ͍ –  &SMBOHͱ૬ޓޓ׵ –  051΋΋ͪΖΜ͋ΔΑ •  Ϟμϯͳύοέʔδ؅ཧγεςϜɺ-B[ZίϨΫγϣϯ 4USFBN ɺ ϓϩτίϧͳͲͷ௥Ճཁૉ •  ৄ͘͠͸ –  IUUQTTQFBLFSEFDLDPNOBPZBFMJYJSHPTIBPKJF

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Ͱ΋8FC"1*࡞Δͷ ೉͍͠ΜͰ͠ΐ͏

Slide 22

Slide 22 text

1IPFOJYᴷ&MJYJSPO3BJMT

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

1IPFOJY Cowboy Plug Phoenix .JEEMFXBSF )5514FSWFS &SMBOH1SPDFTT 3FFRVFTU

Slide 25

Slide 25 text

ϕϯνϚʔΫ ref:  h+p://www.li+lelines.com/blog/2014/07/08/elixir-­‐vs-­‐ruby-­‐showdown-­‐phoenix-­‐vs-­‐rails/ $  ./wrk  -­‐t12  -­‐c800  -­‐d180S  -­‐-­‐timeout  2000  "http://tranquil-­‐brushlands-­‐6459.herokuapp.com/showdown"   Running  3m  test  @  http://tranquil-­‐brushlands-­‐6459.herokuapp.com/showdown      12  threads  and  800  connections      Thread  Stats      Avg            Stdev          Max      +/-­‐  Stdev          Latency      318.52ms    139.92ms      1.39s        82.03%          Req/Sec      224.42          57.23      368.00          68.50%      484444  requests  in  3.00m,  0.99GB  read      Socket  errors:  connect  0,  read  9,  write  0,  timeout  0   Requests/sec:      2691.03   Transfer/sec:            5.65MB $  ./wrk  -­‐t12  -­‐c800  -­‐d180S  -­‐-­‐timeout  2000  "http://dry-­‐ocean-­‐9525.herokuapp.com/showdown"   Running  3m  test  @  http://dry-­‐ocean-­‐9525.herokuapp.com/showdown      12  threads  and  800  connections        Thread  Stats      Avg            Stdev          Max      +/-­‐  Stdev          Latency          3.07s          2.06s        8.36s        70.39%          Req/Sec        24.65            9.97        63.00          67.10%      54256  requests  in  3.00m,  122.50MB  read      Socket  errors:  connect  0,  read  1,  write  0,  timeout  0   Requests/sec:        301.36   Transfer/sec:        696.77KB Phoenix Rails  w/  Puma ॾ৚݅͋ΔͷͰߟ࡯͸ࣗݾ੹೚Ͱɻ 1IPFOJY͕ൺֱͯ͠଎͍ͷ͸ؒҧ ͍ͳͦ͞͏

Slide 26

Slide 26 text

΄͔ •  &MJYJSຊ൪Քಇ࣮੷ – υϦίϜ͞Μɺ%"6ສͷ"Eͷ"1* •  GBMPPENBSV &MJYJSͷ(SBQF •  IUUQXXXTMJEFTIBSFOFUPISTIJCVZBFYFMJYJS •  1IPFOJYͷ$IBOOFM – ઀ଓܰྔϓϩηεͰॲཧ͢Δϝοηʔδ ϋϯυϥ •  8FC4PDLFU

Slide 27

Slide 27 text

ྑ͍͜ͱ͹͔Γݴ͍·͕ͨ͠ŋŋŋ •  ฒߦੑೳ͕ߴ͍ɺԠ౴ੑೳ͕ྑ͍ͱ͸ݴ͕ͬͨʮܭࢉ͕ ଎͍ʯͱ͸ݴͬͯͳ͍ –  1IPFOJYελοΫ͸3BJMTΑΓ͸଎͍ɺ͚Ͳ΋ –  ಈతܕ෇͚ݴޠͰ͢͠ –  ˞ҰԠ)J1&ʹ͢Δͱ଎͘͸ͳΔ΋Α͏ •  ؔ਺ܕݴޠͱͯ͠͸ͦ͜·ͰߴػೳͰ͸ͳ͍ •  ݸਓతͳ࿩ େن໛ӡ༻ͯ͠ͳ͍ͷͰ$POTΛޠΔʹ ஌ݟ଍Γͳ͍ •  &MJYJSྲྀߦΔ͔͸·ͩະ஌਺ –  ϓϩμΫγϣϯ౤ೖࣄྫ͸·ͩ͜Ε͔Β

Slide 28

Slide 28 text

લฤॻ͖·ͨ͠ɻ ޙฤ͸࣍߸Ͱ

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

׬