Slide 1

Slide 1 text

-JOVYͷτϨʔγϯάٕज़Λ
 $3VCZ͔Βར༻͢Δ؀ڥͷ੔උ 6DIJP,POEP(.01FQBCP *OD !3VCZ"TTPDJBUJPO"DUJWJUZ3FQPSU 1SPHSBNNJOH3C#$$

Slide 2

Slide 2 text

େࣄͳ͓஌Βͤ

Slide 3

Slide 3 text

3C#$$ຊ೔ϦϦʔε 3C#$$͸ 3VCZͰ͸ಈ͖·ͤΜ pEEMF** charܕʹͳ͍ͬͯΔҾ਺ʹ ۭจࣈΛ౉͢ͱɺ͸0,ɺ͸4&(7

Slide 4

Slide 4 text

wۙ౻Ӊஐ࿕,POEP6DIJP w(.0ϖύϘٕज़ج൫νʔϜ wຊۀ%VPMJOHPͱ0WFSDPPLFE wझຯ-JOVYɺ$POUBJOFSTɺγεϓϩ w3VCZ,BJHJ

Slide 5

Slide 5 text

ΞδΣϯμ wF#1'ͱ3C#$$ͷ঺հʢdNʣ wຊॿ੒ʹΑΔ੒Ռ෺ͷ঺հʢdNʣ w؆୯ͳ3C#$$ͷϥΠϒίʔσΟϯάʢNdʣ w·ͱΊɺࠓޙʢdNʣ

Slide 6

Slide 6 text

F#1'ͷ࿩

Slide 7

Slide 7 text

F#1'ͱ͸ w#FSLFMFZ1BDLFU'JMUFS wຊདྷ͸ɺύέοτϑΟϧλͷͨΊͷΞϧΰϦζϜɾٕज़ͷ໊લ w೥ʹ-JOVYʹҠ২͞ΕɺMJCQDBQͷதͳͲͰར༻ wঃʑʹTFDDPNQ΍ɺΧʔωϧΠϕϯττϨʔεʹར༻͞ΕΔ

Slide 8

Slide 8 text

Ͱ͖Δ͜ͱ wF#1'͸ɺಠࣗͷ໋ྩηοτΛ࣋ͭ7.ͱߟ͑ͯྑ͍ɻ wΧʔωϧͷதͰಈ͍ͯɺߴ଎ʹ༷ʑͳ΋ͷΛϑΟϧλϦϯά͢Δ wύέοτϑΟϧλʔʢUDQEVNQɺUDɺ9%1ʣ wγεςϜίʔϧͷϑΟϧλʔʢTFDDPNQʣ wΧʔωϧΠϕϯτͷϑΟϧλʔʢ#$$CQGUSBDFʣ wͦͷଞʢDHSPVQͷσόΠεΞΫηε੍ޚͰ࢖ͬͨΓʣ

Slide 9

Slide 9 text

IUUQXXXCSFOEBOHSFHHDPNCMPHCQGQFSGPSNBODFUPPMTCPPLIUNM

Slide 10

Slide 10 text

#$$ͱ͸ʁ wF#1'ͷϓϩάϥϜΛಈ͔͢ʹ͸ɺCQG γεςϜίʔϧʹόΠτ ίʔυΛ౉͢ܗʹͳΔɻόΠτίʔυΛਓ͕ॻ͘ͷ͸೉͍͠ wͦ͜Ͱ#1'$PNQJMFS$PMMFDUJPO w$ϕʔεͷҰछͷ%4-ʴεΫϦϓτݴޠʢ1ZUIPOɺ-VBͷϥΠϒϥϦ ΛಉࠝʣͰF#1'ͷπʔϧΛॻ͘͜ͱ͕Ͱ͖Δ

Slide 11

Slide 11 text

طଘٕज़ͱͷҧ͍ wطଘͷτϨʔγϯάٕज़͕͍͔ͭ͋͘Δ wTUSBDF HECQUSBDF ϕʔεͷ΋ͷ͸ɺҰॠࢭΊͯݕࠪ͢ΔΞʔΩςΫνϟ ͳͷͰɺΦʔόʔϔου͕ແࢹͰ͖ͳ͍ϨϕϧʹͳΔ wQFSGجຊతʹ͸ूܭ͕ϢʔβϥϯυͳͷͰɺෛՙʹͳΔ͜ͱ͕͋Δ wTZUFNUBQ GUSBDFF#1'ͱಉ౳ͷιʔεΛ࢖͍ΠϕϯτΛऔΔɻͨͩɺ F#1'ͷ࣋ͭόϦσʔγϣϯʹΑΔ҆શੑɺΧʔωϧଆͰͷूܭʹΑΔߴ଎ੑ ͳͲ͸ϝϦοτ͔

Slide 12

Slide 12 text

ൺֱਤ 5PPMT 3FMBUFETZTDBMMT 4JEF&⒎FDU /PUF gdb strace ptrace(2) େ ର৅ΛҰ࣌తʹࢭΊͯɺ
 ৘ใΛऔಘ͠࠶։͢Δ perf perf_event_open(2) தʙখ جຊతʹूܭ͔Βઌ͸
 Ϣʔβϥϯυ systemtap ftrace (kern module) (tracefs) தʙখ F#1'ΑΓݹΊͷΧʔωϧ
 Ͱ΋ར༻Մೳ bpftrace BCC bpf(2) perf_event_open(2) খ WBMJEBUPSɺ#1'NBQͳͲ
 ར༻ՄɺݴޠόΠϯσΟϯάଟ

Slide 13

Slide 13 text

طଘٕज़ͱͷҧ͍ wF#1'ΧʔωϧͰϓϩάϥϜΛಈ͔͢࢓૊Έ wΧʔωϧͰϓϩάϥϜΛಈ͔͢ͱ͍͏ҙຯͰ͸ૉ௚ʹϞδϡʔϧΛॻ ͘͜ͱ΋Ͱ͖Δ wΧʔωϧϞδϡʔϧ͸౰વɺඇৗʹଟ͘ͷ͜ͱ͕Մೳ͕ͩɺόά΍
 ةݥͳίʔυ΋࣮ߦՄೳͰɺΧʔωϧύχοΫ౳ͷڪΕ͕͋Δ wF#1'ͷ࣮ߦػߏʹ͸WFSJpFS͕ଘࡏ͠ɺةݥͳίʔυΛݕ஌͢Δ ʢFHແݶϧʔϓʣ

Slide 14

Slide 14 text

IUUQXXXCSFOEBOHSFHHDPNCMPHCQGBOFXUZQFPGTPGUXBSFIUNM

Slide 15

Slide 15 text

F#1'ࣗମͷઆ໌ࢿྉʢࢀߟʣ wIUUQTTQFBLFSEFDLDPNDIJLVXBJUMFBSOFCQG

Slide 16

Slide 16 text

Ϟνϕʔγϣϯ

Slide 17

Slide 17 text

#$$ͱ͸ʢ࠶ܝʣ wF#1'ͷϓϩάϥϜΛಈ͔͢ʹ͸ɺCQG γεςϜίʔϧʹόΠτ ίʔυΛ౉͢ܗʹͳΔɻόΠτίʔυΛਓ͕ॻ͘ͷ͸೉͍͠ wͦ͜Ͱ#1'$PNQJMFS$PMMFDUJPO w$ϕʔεͷҰछͷ%4-ʴεΫϦϓτݴޠʢ1ZUIPOɺ-VBͷϥΠϒϥϦ ΛಉࠝʣͰF#1'ͷπʔϧΛॻ͘͜ͱ͕Ͱ͖Δ

Slide 18

Slide 18 text

͑ͬ3VCZ͸

Slide 19

Slide 19 text

ॻ͔͘͠ͳ͍ ʢ͍ͭͰʹษڧ͠Α͏ʣ

Slide 20

Slide 20 text

F#1'Y3VCZͷϞνϕʔγϣϯ w3VCZΛಈ͔͢04ͱͯ͠ॏཁͳɺ-JOVYͷਐԽͷԸܙΛɺ3VCZ։ൃऀ ʢݴޠίΞ։ൃऀɺϢʔβ྆ํʣ͕ڗडͰ͖ΔΑ͏ʹ͍ͨ͠ w3C#$$Ͱɺ3VCZίΞ։ൃऀͷڞ௨ݴޠͰ͋Δ$ݴޠͱ3VCZͷ
 ஌͚ࣝͩͰෳࡶͳτϨʔγϯά͕Ͱ͖ΔΑ͏ʹͳΔ w%4-ͷΑ͏ͳ࢓૊Έͱ૊Έ߹ΘͤΔ͜ͱͰɺτϨʔγϯάΛ΋ͬͱ
 &OKPZBCMFͳ΋ͷʹͰ͖ͳ͍͔

Slide 21

Slide 21 text

੒Ռ

Slide 22

Slide 22 text

ୡ੒ͨ͜͠ͱ w#$$ͷ1ZUIPO࣮૷Λ࣮༻ʹे෼ͳػೳʹ͍ͭͯ3VCZʹҠ২ͨ͠ wαϯϓϧϓϩάϥϜɺԿΑΓνϡʔτϦΞϧΛ࡞੒ͨ͠ w೔ຊޠ൛νϡʔτϦΞϧؚΉ w3C#$$Λར༻ͨ͠1P$Ϩϕϧͷ࣮ྫɾπʔϧΛ։ൃ

Slide 23

Slide 23 text

#$$3C#$$ w#$$͸
 جຊతʹ
 MJCCDDͷ''*

Slide 24

Slide 24 text

#$$3C#$$ w3VCZඪ४ͷ
 pEEMFͰ
 1ZUIPOͷ
 DUZQFTΛஔ׵

Slide 25

Slide 25 text

pEEMFͷར༻ w3C#$$͸3VCZͷඪ४ϥΠϒϥϦͷΈͰಈ࡞͢Δ
 ʢ΋ͪΖΜMJCCDDTP͕ೖ͍ͬͯΔલఏͰ͸͋Δɻϔομ͸ෆཁʣ

Slide 26

Slide 26 text

1ZUIPO൛ͷϦϑΝϨϯεʹ͋Δؔ਺͸໢ཏ

Slide 27

Slide 27 text

αϯϓϧ͍͔ͭ͘ɺνϡʔτϦΞϧ

Slide 28

Slide 28 text

೔ຊޠνϡʔτϦΞϧ

Slide 29

Slide 29 text

1ZUIPO൛ͱͷൺֱ wఏग़ͨ͠࠷ऴใࠂΛ͝ཡ͍ͩ͘͞

Slide 30

Slide 30 text

։ൃͨ͠πʔϧ#1'2- wCQGUSBDFͷ͋ͷݴޠͰ͸ͳ͘:".-3VCZͰτϨʔεͰ͖ΔίϚϯυ CQGUSBDF #1'2-3VCZ%4-

Slide 31

Slide 31 text

ಈը

Slide 32

Slide 32 text

։ൃͨ͠πʔϧ3BDL' w64%5ʢޙड़ʣΛར༻͠ɺ3BDL.JEEMFXBSFʹ1SPCFΛ࢓ࠐΈܭଌ
 ूܭ͢Δαϯϓϧ

Slide 33

Slide 33 text

3BDL'ͷಈ࡞ݪཧ w੍ݶεϨουʹϦΫΤετͱ͍͏લఏ͕͋Δ

Slide 34

Slide 34 text

ಈը

Slide 35

Slide 35 text

3C#$$ͷ ར༻ʹ͋ͨͬͯ

Slide 36

Slide 36 text

ϙΠϯτ͍͔ͭ͘ wΠϕϯτιʔεͰओཁͳ΋ͷ͸ͭ͋Δɺ஌͓ͬͯ͘ wLQSPCFɺUSBDFQPJOUɺVQSPCFɺ64%5 wΠϯετʔϧखॱͳͲ͸(FUUJOH4UBSUFEͰ6CVOUVָ͕ wMJCCDDͷόʔδϣϯ͸ɹਪ঑0, wιϑτ΢ΣΞͷੑ্࣭ɺ୯७ʹ%PDLFSԽͮ͠Β͍ w݁ہ஌Γ͍ͨͷ͸ϗετ͕Ͳ͏ͳͬͯΔ͔ͩͬͨΓ͢ΔΜͰ

Slide 37

Slide 37 text

LQSPCFLSFUQSPCF wΧʔωϧ಺෦ͷؔ਺Λ௚઀ѻ͏QSPCFɻ wόʔδϣϯͰΠϯλϑΣʔε͕มΘΔ͔΋͠Εͳ͍ɻ wLQSPCF͕ؔ਺Τϯλʔ࣌ɺLSFUQSPCF͕Ϧλʔϯ࣌ wͲͷΑ͏ͳLQSPCF͕Կʹ࢖ΘΕ͍ͯΔ͔͸αϯϓϧͰษڧ

Slide 38

Slide 38 text

USBDFQPJOU w3VCZͷ5SBDF1PJOUͱ͸ҧ͏֓೦Ͱɺ-JOVYͷQSPCFͷ͜ͱ wΧʔωϧʹ੩తʹ૊Έࠐ·Εɺ໊લ΍Ҿ਺͸جຊతʹมΘΒͳ͍ wυΩϡϝϯτ͕ίϝϯτʹ͋Δ৔߹΋͋Δ wαϯϓϧͰͷ࢖ΘΕํΛݟΔ΄͏͕ૣ͍͜ͱ͕ଟ͍ wྫ wTZTDBMMTTZT@FOUFS@cTZT@FYJU@γεςϜίʔϧͷ௥͍͔͚ wSBOEPNVSBOEPN@SFBEVSBOEPN΁ͷಡΈऔΓ wTDIFETDIFE@QSPDFTT@FYJUϓϩηεͷऴྃͳͲ

Slide 39

Slide 39 text

VQSPCFVSFUQSPCF wϢʔβϓϩάϥϜͷؔ਺ͳͲʹϑοΫͨ͠ΠϕϯτΛɺΧʔωϧͰ௥ ͍͔͚ΒΕΔػೳɻ wجຊతʹ͸FYQPSU͞ΕͯΔγϯϘϧΛQSPCF͢Δ wͪ͜Β΋VQSPCF͕ΤϯλʔɺVSFUQSPCF͕Ϧλʔϯ

Slide 40

Slide 40 text

64%5 wϢʔβϓϩάϥϜͷ೚ҙͷՕॴʹQSPCFΛຒΊࠐΉػೳɻ wͲ͜ʹຒΊࠐ·Ε͍ͯΔ͔͸&-'ϔομͰ֬ೝͰ͖Δɻ wτϨʔε༗ޮ࣌ʹॳΊͯτϨʔε໋ྩ͕ಈ࡞͠ɺීஈ͸OPQ໋ྩʹ ͳ͍ͬͯΔɻ͕ͨͬͯ͠ແޮ࣌͸Φʔόϔου͕ͳ͍ɻ

Slide 41

Slide 41 text

3VCZͷ64%5 w--enable-dtraceΦϓγϣϯΛ༗ޮʹͯ͠Ϗϧυ͢Ε͹༗ޮʹ wSCFOWͳΒɺ36#:@$0/'*(63&@0154؀ڥม਺Ͱࢦఆ wԿ͕ຒ·͍ͬͯΔ͔͸%5SBDFଆͷυΩϡϝϯτΛࢀর wTFFʮ3VCZͷ%5SBDFͷ঺հʯ w IUUQTNBHB[JOFSVCZJTUOFUBSUJDMFT4QFDJBMEUSBDFIUNM w 8JLJ΋IUUQTCVHTSVCZMBOHPSHQSPKFDUTSVCZXJLJ%5SBDF1SPCFT

Slide 42

Slide 42 text

3VCZͷ64%5

Slide 43

Slide 43 text

ϥΠϒͰͷ πʔϧ࡞੒σϞ

Slide 44

Slide 44 text

Ͳ͏΋ʂ VE[VSBͰ͢

Slide 45

Slide 45 text

ࠓޙͷల๬ ʢ͕࣌ؒ͋Ε͹ʣ

Slide 46

Slide 46 text

3FE%BUB5PPMT࿈ܞ w۩ମతʹ͸ɺ$IBSUZͷσʔλߏ଄ʹɺ3C#$$ʹ͓͚Δ#1'NBQΛ දݱͨ͠ΫϥεΛରԠ͍ͤͨ͞ w$IBSUZ5BCMF"EBQUFST#$$తͳΞμϓλΛ࣮૷͢ΔͱΑ͍ w$IBSUZͷࢿ࢈Λͦͷ··࢖ͬͯʢFHVOJDPEF@QMPUSCʣ
 τϨʔε݁ՌͷՄࢹԽ͕Ͱ͖Δ

Slide 47

Slide 47 text

ωοτϫʔΫτϨʔεपล wຊՈͷFYBNQMFTOFUXPSLJOH഑Լʹ͋ΔΑ͏ͳαϯϓϧͷҠ২ wগ͚ͩ͠։͍࢝ͯ͠Δ w9%1΋ྲྀߦͬͯΔͷͰ wط஌ͷ໰୊఺QZSPVUF૬౰ͷHFN͕3VCZʹͳ͍ͷͰɺҰ෦ͷαϯ ϓϧ͸؆୯ͳҠ২ͱ͍͏Θ͚ʹ͍͔ͣ೰·͍͠ɻ wOFUMJOLTPDLFUͱ͓͠Ό΂Γ͢ΔHFN͕ཉ͍͠ɻ

Slide 48

Slide 48 text

΋ͬͱকདྷVQTUSFBN΁ͷߩݙ wকདྷ͸JPWJTPSϓϩδΣΫτʹدଃ͠ɺ
 #$$։ൃίΞͱาௐΛ߹ΘͤΔͳͲ͍ͨ͠ wͦͷલʹ඼࣭Λ্͍͛ͨʢݴ͍༁ʣ wͲ͏͍͏खଓ͖ΛͱΕ͹͍͍ͷͩΖ͏ʁ w͜ͷࢿྉΛݟͨํͰॿݴ͕͋Ε͹ͱࢥ͍·͢

Slide 49

Slide 49 text

ँࣙ

Slide 50

Slide 50 text

ँࣙ wϝϯλʔͷ࡫ాߞҰ͞Μ w͘͞ΒΠϯλʔωοτͷদຊ྄հ͞Μɺ۝भେֶ৘ใج൫ݚڀ։ൃ ηϯλʔͷౢ٢ོ෉ઌੜɺּݪٛߊઌੜ wಛʹɺ#1'2-͸ౢ٢ઌੜͷΞυόΠεΛԼෑ͖ʹ͍ͯ͠·͢

Slide 51

Slide 51 text

&OKPZ 5SBDJOH