Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Linuxコマンドでボトルネックを調べる
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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.4k
継続的な負荷検証を目指して
pyama86
3
1.8k
成長期における、 ユーザー領域の複雑さと 整備の進め方
pyama86
1
740
Stay Hacker 〜九州で生まれ、Perlに出会い、コミュニティで育つ〜
pyama86
2
6.6k
Managing Database Migrations in Go Backend Systems
pyama86
0
560
新しい職場の 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
AI駆動開発をチームに根付かせる - 「1行も書かない」チームがHarnessを育てた1年 -
kenichirokimura
6
3.5k
Guerilla InnerSource in enterprises, during the AI hype
onenashev
PRO
0
120
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
77k
ClaudeCodeでセキュリティ監視業務を半自動化_1年の運用でわかったAIに任せる設計の5つのポイント
kintotechdev
3
970
パスキーでドライブする アカウント統合(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
410
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3.2k
:syncing_time:
sksat
3
870
顧客の要望は2次情報である 〜アンテナを張るFDEの構造論〜
noriakioji
5
1.1k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
54k
Cloudflare製品を活用した AIガバナンス実践入門 / AI governance with Cloudflare Service
delta_tech
1
140
Oracle AI Databaseデータベース・サービス: BaseDB/ExaDB-Dの可用性
oracle4engineer
PRO
1
990
Digitization部 紹介資料
sansan33
PRO
2
7.8k
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
810
Measuring & Analyzing Core Web Vitals
bluesmoon
9
980
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
A Tale of Four Properties
chriscoyier
163
24k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
It's Worth the Effort
3n
188
29k
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