Upgrade to Pro — share decks privately, control downloads, hide ads and more …

めぐろLT#21 今年一番の仕事の成果

めぐろLT#21 今年一番の仕事の成果

めぐろLT#21「今年一番の〇〇聞いてくれ」の登壇資料です。
https://meguro-lt.connpass.com/event/330012/

マグロ隊長kinTV

November 15, 2024
Tweet

More Decks by マグロ隊長kinTV

Other Decks in Technology

Transcript

  1. 6 CSV⽣成バッチのパフォーマンス改善 背景 • 1時間に1回、FTP形式でデータ提供を行っていた。 ◦ つまり作成に 1時間以上かかってはいけない。 • 作成当初、処理時間は

    15分ほどだった。 • しかし5月ごろから 50分へと増加し、ついに生成に 60分を超え 90分台に突入してしまう。 • 一旦マシンパワー増強で 50~60分に収めるが ... これやべーぞ ということで改善します
  2. 7 CSV⽣成バッチのパフォーマンス改善 調査 • 生成してた csvファイルは 5つ。 ◦ shop ◦

    leaflet ◦ product ◦ product_classification ◦ product_classification_map • ログをつけて処理時間を計測。
  3. 8 CSV⽣成バッチのパフォーマンス改善 調査 • 内訳はこれぐらい。 ◦ shop 40s ◦ leaflet

    2400s ◦ product 800s ◦ product_classification 20s ◦ product_classification_map 200s • チラシが一番時間がかかっている。 • 上から順番に作成しているので、並列で作れば解決するので は?
  4. 10 CSV⽣成バッチのパフォーマンス改善 調査 • チラシに注目してみる ◦ shop 40s ◦ leaflet

    2400s ◦ product 800s ◦ product_classification 20s ◦ product_classification_map 200s
  5. 14 CSV⽣成バッチのパフォーマンス改善 調査 • 画像urlの書き込みで N+1が発生。 ◦ 画像urlの書き込みの際、事前読み込みに含まれていない モデルがあった。 ◦

    find_in_batchsのバッチサイズごとにクエリが発行。 ▪ csvファイルを 1回生成するのに約 4万回ほどクエリ叩か れてた。 ◦ チラシのモデルに上記のモデルを追加して対応。
  6. 20 CSV⽣成バッチのパフォーマンス改善 調査 • 商品に注目 ◦ shop 40s ◦ leaflet

    2400s → 385s ◦ product 800s ◦ product_classification 20s ◦ product_classification_map 200s
  7. 23 CSV⽣成バッチのパフォーマンス改善 調査 • というのも ◦ N+1は発生していない。 (クエリも最適化されている。 ) ◦

    商品のcsvの書き込み量がただ多いだけ。 (多い時1つのク エリに対し 4万行) 容量なんと 900MB