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
アンチパターンから学ぶコミュニケーション/lcap_sample
fortegp05
0
70
Micronautで入門!実践!サーバーサイドKotlin/sskm1_sample
fortegp05
0
28
ITエンジニアとして生きる技術/tlie-sample
fortegp05
0
300
入門!実践!Kotlin Compose Multiplatformでデスクトップアプリ開発! / cmd_01_sample
fortegp05
0
520
いろいろ実践!サーバーサイドKotlin Vol.2【サンプル】 / server_side_kotlin_3_2_sample
fortegp05
0
260
いろいろ実践!サーバーサイドKotlin【サンプル】 / server_side_kotlin_3_sample
fortegp05
0
450
まいにち続ける技術【サンプル】 / tech_to_continue_on_daily
fortegp05
0
720
【無料サンプル】もっと実践!サーバーサイドKotlin / server_side_kotlin_2_sample
fortegp05
1
370
技術同人誌によって得られたもの / infra-workshop-20200301_What_was_obtained_in_the_book
fortegp05
0
110
Other Decks in Technology
See All in Technology
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
650
AI Agent時代なのでAWSのLLMs.txtが欲しい!
watany
2
230
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
5.1k
Perlの生きのこり - エンジニアがこの先生きのこるためのカンファレンス2025
kfly8
2
270
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
6
2.8k
脳波を用いた嗜好マッチングシステム
hokkey621
0
290
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
11
3.9k
ディスプレイ広告(Yahoo!広告・LINE広告)におけるバックエンド開発
lycorptech_jp
PRO
0
390
いまからでも遅くない!コンテナでWebアプリを動かしてみよう!コンテナハンズオン編
nomu
0
160
【Findy】「正しく」失敗できる チームの作り方 〜リアルな事例から紐解く失敗を恐れない組織とは〜 / A team that can fail correctly by findy
i35_267
5
910
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
19k
Two Blades, One Journey: Engineering While Managing
ohbarye
4
2.1k
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Agile that works and the tools we love
rasmusluckow
328
21k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Designing for humans not robots
tammielis
250
25k
Six Lessons from altMBA
skipperchong
27
3.6k
Navigating Team Friction
lara
183
15k
Speed Design
sergeychernyshev
27
810
Bash Introduction
62gerente
611
210k
Adopting Sorbet at Scale
ufuk
74
9.2k
Making Projects Easy
brettharned
116
6k
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
おわり