Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Linuxコマンドでボトルネックを調べる
Search
Kazuhiko Yamashita
March 20, 2018
Technology
9.2k
17
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Linuxコマンドでボトルネックを調べる
俺の話を聞け!!LT大会 #8でトークした資料です
Kazuhiko Yamashita
March 20, 2018
More Decks by Kazuhiko Yamashita
See All by Kazuhiko Yamashita
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
2.5k
継続的な負荷検証を目指して
pyama86
3
1.8k
成長期における、 ユーザー領域の複雑さと 整備の進め方
pyama86
1
760
Stay Hacker 〜九州で生まれ、Perlに出会い、コミュニティで育つ〜
pyama86
2
6.6k
Managing Database Migrations in Go Backend Systems
pyama86
0
570
新しい職場の CI が 20 分かかっていたらあなたならどうする?
pyama86
2
1.5k
事業を差別化する技術を生み出す技術
pyama86
4
2.3k
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
11k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
2.1k
Other Decks in Technology
See All in Technology
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
2
470
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
250
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
340
Tab5をRubyで動くパソコンにする
kishima
2
280
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
300
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
300
omasushiというライブラリを作った
polidog
PRO
0
190
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
130
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
250
振り返りこそエンジニアの本領
negima
0
360
20260912_スクフェス三河
kgnkhkr
0
250
あるけみー式LTスライド作成術
alchemy1115
1
160
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
67k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Making Projects Easy
brettharned
120
6.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Tell your own story through comics
letsgokoyo
1
1.1k
The Curious Case for Waylosing
cassininazir
1
500
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
490
Side Projects
sachag
455
43k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.7k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
230
Transcript
ʙय़ͩʂՖคͩʂ-5େձͩ͊͊͊͋͋͋͋ʂʂʂ̍ʙ !QZBNB(.01FQBCP *OD ԶͷΛฉ͚ʂʂ-5େձ -JOVYίϚϯυͰϘτϧωοΫ ΛௐΔ
ϗεςΟϯάࣄۀ෦νʔϑςΫχΧϧϦʔυ ࢁԼ!QZBNB
ϖύϘԬ
αʔόαΠυɺϑϩϯτΤϯυɺ ΠϯϑϥΤϯδχΞશһདྷͯ͘Εʂʂʂʂ̍ ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU
Ϙτϧωο Ϋௐࠪ
ʮͳΜ͔Θ͔ΒΜ͚Ͳɺ Կ͔͕ͯ͘ ॲཧ͕ॏ͍ʯ
಄ѱͦ͏
ύϑΥʔϚϯεղੳʹ ͍͔ͭ͘ͷखஈ͕͋Δ
ͳΜ͔͍͍ͩͨͲͷձࣾʹ͍Δ͍͢͝ਓʹฉ͘ w͍͢͝ਓʹฉ͘ͱɺ͍͍ͩͨղܾͯ͘͠ΕΔ w͍͢͝ਓ͍͢͝ͷͰɺͦͷͰΘ͔Βͳͯ͘ɺ͍͍ͩͨ࣍ͷʹ ʮࡢͷ͋ΕΘ͔ͬͨΑʂʂʂʯͱ͔ௐ͖ͯͯ͘ΕΔ w͍͢͝ਓʹฉ͘ͱɺ͍͢͝ਓ͕ؤுΔ͚ͩͰɺ͕ࣗؤுΒͳ͍͔Β ͕ࣗ͠ͳ͍
ϓϩϑΝΠϦϯά wIUUQTHJUIVCDPNUNNTUBDLQSPG ݴޠ໊ϓϩϑΝΠϥ<ݕࡧ>
-JOVYͷίϚϯυͰௐΔ wHEC5IF(/6%FCVHHFS wTUSBDF5SBDFTZTUFNDBMMTBOETJHOBMT wQFSG1FSGPSNBODFBOBMZTJTUPPMTGPS-JOVY wWBMHSJOEBTVJUFPGUPPMTGPSEFCVHHJOHBOEQSPpMJOHQSPHSBNT
ࣄྫ
NSVCZͷ"1*ΞΫηε͕ NSVCZ DMJFOU "1*4FSWFS SFTPVSDFFYBNQMF NSVCZͷ$MJFOU͔Β͋Δ"1*Λ࣮ߦͯ͠ .#ͷϨεϙϯεΛऔಘ͢Δ߹ +40/
ࣄྫ ॠؒతʹ(CZUF͘Β͍ ϝϞϦ͏
WBMHSJOEͰϝϞϦͷΞϩέʔγϣϯΛݟΔ # valgrind curl http://localhost/resource/example > /dev/null … ==18619== HEAP
SUMMARY: ==18619== in use at exit: 0 bytes in 0 blocks ==18619== total heap usage: 1,863 allocs, 1,863 frees, 211,125 bytes allocated # valgrind /home/pyama/mruby test.rb … ==12811== HEAP SUMMARY: ==12811== in use at exit: 0 bytes in 0 blocks ==12811== total heap usage: 51,721 allocs, 51,721 frees, 12,028,345,116 bytes allocated
ʗ ?P? ʘ(
TUSBDFͰγεςϜίʔϧͷ౷ܭΛऔΔ # strace -fc /home/pyama/mruby test.rb % time seconds usecs/call
calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 73.00 0.006317 2 3361 munmap 23.27 0.002014 11 183 brk 2.62 0.000227 0 1734 read 1.11 0.000096 0 3380 mmap 0.00 0.000000 0 3 write 0.00 0.000000 0 16 open 0.00 0.000000 0 23 close NVONBQ͕ࢧత IUUQTMJOVYKNPTEOKQIUNM-%1@NBOQBHFTNBONNBQIUNM
QFSGΛར༻ͯ͠ίʔϧάϥϑΛऔಘ͢Δ IUUQNSVCZPSHEPDTBQJIFBEFSTNSVCZ@'TUSJOHIIUNMNSC@TUS@QMVTGVODUJPO # perf record --call-graph dwarf -- /home/pyama/mruby test.rb
# perf report -g -G —stdio 94.35% 0.03% mruby mruby [.] mrb_str_plus | ---mrb_str_plus | --20.06%-- mrb_vm_exec mrb_vm_run … NSC@TUS@QMVT͕ࢧత
ใ͔ΒԾઆΛཱͯΔ wॲཧ)551ϦΫΤετͰϨεϙϯεϘσΟαΠζ͕େ͖͍ wϝϞϦ(#ͬͯΔΦϫλ wNVONBQ͕ࢧతͰճଟ͍͜ͱ͔ΒɺϝϞϦͷ֬อɺղ์͕ଟ ͍ͷͰͳ͍͔ʁ wNSC@TUS@QMVT͕ࢧతͰ͋Δ͜ͱ͔Βɺจࣈྻ݁߹͕ଟ͍͜ͱ͕ݪ ҼͬΆ͍ͳʁ NSC@TUS@QMVTSVCZFbDlBz lCz`
ΧΫΧΫ γΧδΧ
ݪҼ)551ϦΫΤετͷόοϑΝαΠζ IUUQTHJUIVCDPNNBUTVNPUPSZNSVCZTJNQMFIUUQQVMM NSVCZ DMJFOU "1*4FSWFS SFTPVSDFFYBNQMF +40/ ιέοτ͔Β+40/Λड͚औΔࡍͷόοϑΝαΠζ͕CZUFͰ͋ͬͨ͜ͱ͔Βɺ ಡࠐͷϧʔϓճ͕ଟ͘ͳ͍ͬͯͨɻόοϑΝͷαΠζΛCZUFมߋ͢Δ͜ͱͰ ݁Ռͱͯ͠ϧʔϓճΛݮΒͯ͠จࣈྻ݁߹ͷճΛݮΒͨ͠
NSVCZTJNQMFIUUQ while (t = socket.read(1024)) if block_given? yield t next
end ɹ #όοϑΝ͕গͳ͍ͱϧʔϓճ͕૿͑ͯɺ݁߹ճ͕૿͑ͯແବʹϝϞϦ֬อ response_text += t end ͔͠ɺ($͕Δ·Ͱ։์͞Εͳ͍
͏Ұา ౿ΈࠐΉ
NSC@TUS@QMVT NSVCZͰจࣈྻ݁߹ͷࡍʹ݁߹݁Ռจࣈྻͷ ϝϞϦΛ֬อ͢Δ
NSVCZTJNQMFIUUQ while (t = socket.read(1024)) if block_given? yield t next
end response_text << t end ͞ΒʹDPODBUʹ͢Δ͜ͱͰɺແବͳྖҬ֬อΛΊΔ
NSC@TUS@QMVT74NSC@TUS@DBU TUSJOHlBCz TUSJOHlBz TUSJOHlCz TUSJOHlBz TUSJOHlCz TUSJOHlBz TUSJOHlCz
TUSJOHlBCz
IUUQTUFOTOBQPODPNBSDIJWFT
·ͱΊ wϓϩϑΝΠϥίϚϯυΛར༻ͯ͠ใΛूΊΑ͏ wूΊͨใ͔ΒԾઆΛཱͯΑ͏ wԾઆΛݕূ͠Α͏ wσόοάίʔυͰ͋Ε͜Εࢼ͢ wਂ͘ίʔυΛಡΉɺ࣮ʹഭΔ
5IBOLZPV ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU