サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
WWDC23
tech.curama.jp
こんにちは、バックエンドエンジニア・SREのカーキです。 最近くらしのマーケットのシステムで一部の Python アプリケーションにあったメモリリークを検証した時に学んだ検証方法について書きたいと思います。 メモリリークとは? メモリリークはプログラムが確保したメモリを使用後に解放されず、プログラムのメモリ使用率がどんどん上がり続ける現象です。メモリリークがあると該当のプログラムがシステムのすべてのメモリを使い切って、システムがクラッシュする可能性があるので少し面倒なバグです。 リークの再現 弊社では現在Python 3.5.0を使っていますが、便宜のため以下のようにPython2系のdel関数の落とし穴を使ってメモリリークを再現します。 import time class MyLeakyObject(object): def __init__(self, parent=None): se
こんにちはエンジニアののりすけです。 みんなのマーケットではPythonを使用したサービスを動かしています。以前より使用メモリが異常に大きいサービスがあるため、SREチームからなんとかしてほしいとの依頼が来ています。 今回はサンプルコードを使ってPythonのメモリプロファイルを行いながら、省メモリなアプリケーションをどのように実装するか検証したいと思います。 利用するツール memory_profiler matplotlib 上記のライブラリをpip installでインストールしておきます。 memory_profilerの基本的な使い方 まず使い方を確認します。以下のように確認したい処理にデコレータ@profileを記述します。 from memory_profiler import profile def large_integer_list(): return [i for i
みんなのマーケットでwebエンジニアとして働いている高橋です。 前回の記事(http://tech.curama.jp/entry/2018/02/23/120000)で、弊社ではNode.jsを使用しているという話を簡単にしましたが、今回はその運用中に出てきたトラブルシューティングの話をしたいと思います。 弊社ではマイクロサービス用のBFF(Backends For Frontends)としてNode.jsを採用しています。 ところが最近、弊社SREから、「Nodeサーバーの再起動が多すぎます。メモリが増えた時に再起動で解決するんじゃなくて、ちゃんとリークしないように最適化してください」というお願いがありました。 また、こちらの記事には、 As leaks grow, V8 becomes increasingly aggressive about garbage collection,
このページを最初にブックマークしてみませんか?
『くらしのマーケット開発ブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く