VLLMにおけるメモリリーク診断:KVキャッシュの隠れた肥大化を特定しOOMを阻止する

VLLMを高負荷な推論ワークロードで運用する際、GPUメモリ使用量が予測不能に増大し、最終的にOOM(Out Of Memory)エラーでクラッシュする問題に直面することがあります。この現象は、明示的なエラーや例外を伴わず、`nvtop`などのツールでGPUメモリの単調な増加として現れます。Python側のヒープメモリに顕著なリークが見られない場合でも、VLLMのKVキャッシュ管理機構、 ...

10月16日 00:21 投稿

ThreadLocalと弱参照の関係を深く理解する

弱参照とは 弱参照の特徴を一言で述べると、次のガベージコレクションが発生した際に、メモリの空き容量に関係なく回収対象となるというものです。以下のコード例を見ると、その挙動がより明確になります。 WeakReference<byte[]> weakRef = new WeakReference<>(new byte[1024 * 1024 * 10]); System.out.println(weakRef.get() != null); // true を出力 wea ...

7月14日 00:13 投稿

Pythonにおけるメモリ管理とハッシュ関数

メモリリークとメモリオーバーフロー 定義と相違点 メモリリーク (Memory Leak) 定義:動的に割り当てられたメモリの一部が解放されず、プログラムが使用するメモリが増加し続け、最終的にメモリが枯渇する現象。 原因: グローバル変数:長期間存在するグローバル変数がメモリを占有し続ける。 クロージャ:クロージャが外部変数をキャプチャし、それらの変数が解放さ ...

5月22日 18:07 投稿