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
失敗LT祭! 〜俺の話を聞いてくれ〜 メモリだいじに! / 20190220_hedgehog...
Search
FORTE
February 20, 2019
Technology
0
200
失敗LT祭! 〜俺の話を聞いてくれ〜 メモリだいじに! / 20190220_hedgehogs_miss_lt
FORTE
February 20, 2019
Tweet
Share
More Decks by FORTE
See All by FORTE
ITエンジニアとして生きる技術/tlie-sample
fortegp05
0
220
入門!実践!Kotlin Compose Multiplatformでデスクトップアプリ開発! / cmd_01_sample
fortegp05
0
440
いろいろ実践!サーバーサイドKotlin Vol.2【サンプル】 / server_side_kotlin_3_2_sample
fortegp05
0
230
いろいろ実践!サーバーサイドKotlin【サンプル】 / server_side_kotlin_3_sample
fortegp05
0
410
まいにち続ける技術【サンプル】 / tech_to_continue_on_daily
fortegp05
0
680
【無料サンプル】もっと実践!サーバーサイドKotlin / server_side_kotlin_2_sample
fortegp05
1
320
技術同人誌によって得られたもの / infra-workshop-20200301_What_was_obtained_in_the_book
fortegp05
0
100
【い03C】入門!実践!サーバーサイドKotlin【サンプル】 / server_side_kotlin_sample
fortegp05
0
1.7k
アウトプットの価値 / 20190621_01_value_of_output
fortegp05
0
94
Other Decks in Technology
See All in Technology
Cosmos DB で持続可能な RAG を実現しよう!~ AOAI Dev Day ふりかえりを添えて / Sustainable RAG with Cosmos DB with recap AOAI Dev Day
miyake
0
120
それでもやっぱり ExpressRoute が好き!
skmkzyk
0
390
Unlearn Modularity
lemiorhan
6
180
Oracle Database 23ai 新機能#4 Real Application Clusters
oracle4engineer
PRO
0
170
令和最新版 Perlコーディングガイド
anatofuz
4
4k
ラブグラフ紹介資料 〜プロダクト解体新書〜 / Lovegraph Product Deck
lovegraph
0
14k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
48k
見えづらい活動の成果の伝え方は日頃からめちゃくちゃ悩んでるけど、実際こんな取り組みをしな がら温度感を合わせにいってるよ / Conveying Hard-to-See Results
kakehashi
4
2k
怖くないオフライン機能開発 〜基本的な技術で実現する現場向けオフライン機能 / Developing offline functions without fear ~ Offline functions for the field realized with basic technology
kaminashi
1
120
Azure App Service on Linux の Sidecar に Phi-3 を配置してインテリジェントなアプリケーションを作ってみよう/jazug-anniv14
thara0402
0
530
不要なリソースを自動で定期的に整理する方法 ~Sandboxアカウントのコストを削減しよう!~
amixedcolor
3
130
とある事業会社にとっての Kaggler の魅力
hakubishin3
5
1.1k
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
105
48k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Designing for humans not robots
tammielis
249
25k
How to name files
jennybc
77
99k
Speed Design
sergeychernyshev
22
490
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
249
21k
Thoughts on Productivity
jonyablonski
67
4.2k
The Mythical Team-Month
searls
218
43k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
Ruby is Unlike a Banana
tanoku
96
11k
Transcript
失敗LT祭!〜俺の話を聞いてくれ〜 メモリだいじに! 2019/02/20 FORTE(@FORTEgp05)
自己紹介 FORTE (フォルテ) SIer → Web系 → スマホアプリ開発者。 2
今日話す内容 いのちメモリだいじに! Webシステム開発におけるメモリによる失敗話 3
メモリだいじに! ・SIer時代に新人でアサインされた案件。 2007年当時のお話。 ・業務向けのWebシステム開発に途中から参加。 ・イントラネットのみ公開のWebシステム。 200人ほどの部署向け。 4
システム構成概要 5 IE6 HTML JavaScript Java Servlet Apache Tomcat PostgreSQL
7.x
当時発生していたふたつの問題 6
当時の問題①データ取得が遅い 7 とある機能「機能A」でDBからデータ取得するのが遅い…。 原因はデータ量が多いため。 \ユックリ/
当時の問題②データ量が多すぎてIEが死ぬ 8 機能Aの検索条件によってはデータ量が多すぎてIE6が死ぬ。 (真っ白のままフリーズする) オオスギ
当時の問題 9 閃いた! DBが遅いなら、サーバーのメモリにデータを積めば 良いんじゃね!? 先輩
解決策 10 メモリ ServletContext.setAttribute()
解決策 11 取得が遅いデータは あらかじめメモリに積んでおく
解決策 12 DBから取得しないので早い! \ハヤーイ/
やったー!解決した! 13
やったー!解決した!んなわきゃない 14
失敗… 15 ・DBが遅いのはまずDBでチューニングすべき 当時は技術力不足で無理だった…。
失敗… 16 ・DBが遅いのはDBでチューニングすべき 当時は技術力不足で無理だった…。 ・メモリに対する影響を軽視しすぎ
失敗… 17 ・DBが遅いのはDBでチューニングすべき 当時は技術力不足で無理だった…。 ・メモリに対する影響を軽視しすぎ 4GBのサーバーに500MBほど保存していた…。 \メモリ4GB/
失敗… 18 ・IEが死ぬ問題は解決できてない ことあるごとにお客さんに怒られてました…
さらなる失敗 19
さらなる失敗 20 機能Aと同じような仕様の機能が3つ増えた。
さらなる失敗 21 機能Aと同じような仕様なので、 何も考えずに機能Aと同じような実装をした。
さらなる失敗 22
さらなる失敗 23
さらなる失敗 24
さらなる失敗 25 メモリ4GBのサーバーに、 500MB×4機能分の2GBのデータが常駐。
さらなる失敗 26 アクセス負荷でよくサーバーが応答不能に… メモリナイ
当時の問題②データ量が多すぎてIEが死ぬ 27 機能Aの検索条件によってはデータ量が多すぎてIE6が死ぬ。 (真っ白のままフリーズする) 最初の問題2つ目も解決してない オオスギ
お客さん「おれは怒ったぞー!!!!」 28
根本対策 29 機能Aに関しては全く新しい仕組みで実装し直した。 フロント、バック、DB、バッチ処理全てを一新。 これを半年で実施。
根本対策 30 機能Aに関しては全く新しい仕組みで実装し直した。 フロント、バック、DB、バッチ処理全てを一新。 これを半年で実施。 \デスマーチ/
失敗からの教訓 ・問題解決のためではなくユーザーのため 安易な手段に飛びつく前にちゃんと考える ・仮対策なら本対策するまで追い続ける ・メモリと性能は要注意 最近は技術の進歩でそこまででもないが、 少なくて早いに越したことはない 31
宣伝 Twitter:@FORTEgp05 Podcast:『aozora.fm』 お便り募集中! 技術書典6:「はじめる技術 つづける技術」を頒布予定! サークル「おからぼ」さんにて委託。 詳しくは#はじめる技術つづける技術にて! 32
おわり