2016-09-15 3 views
-1

実行時にメモリがリークするリアルタイムアプリケーションのRTMPベースのストリーミングアプリケーションがあります。それはライブのアプリケーションであるため、残念ながら、私は問題が 1.アプリケーションPIDメモリはslabtopて 2.カーネルメモリが3. 一定のままでも時間後に3.8%に一定に保たれている。ここvalgrindの通過Linuxのメモリリークを追跡できません

それを実行することはできませんmeminfo、私は利用可能なメモリが減少し続けて参照してください!

誰がこのメモリを占有しているのか分かりませんか?私は、TCPバッファーかそのようなものを疑っています。誰かが助けてくれる?

+0

を起こさなければならない理由は、それが使用メモリ – user6835267

+1

と一致していないことを確認できますわけではありませんLinuxディスクキャッシュ(http://www.linuxatemyram.com/)だけではないことを確かめてください。 –

+0

memingoの* all *値を見てください。時間をかけてそれらをプロットし、何が起こるか見る –

答えて

0

提供された情報だけでどこが漏れているのかはわかりません。

あなたがValgrindを使用できない場合は、あなたのプログラムのさまざまな機能/モジュールを分離しようとしています。次に、これらのモジュールを無効/有効にして、無効にしたときにリークがあるかどうかを確認します。

たとえば、アプリケーションのネットワークモジュールを無効にして、アプリケーションがリークしているかどうかを確認します。こうすることで、アプリケーション全体ではなく、1つの/さまざまなモジュールに問題を絞り込むことができます。

0

根本原因が見つかりました。 Linuxのtcpメモリを32MBに設定すると問題が発生していました。 CentOSにのデフォルト値である87キロバイトにそれをリセット7.2

高い値に設定すると、問題私はトップの%MEMを足し

関連する問題