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 投稿