0

5000 ノード以上で NS-2 を使用してシミュレーションを実行しています。

次のエラーが発生しました。

' unable to alloc 32026 bytes' [このようなエラーが多数] および ' bus error'

コードを最大 500 ノードで使用しましたが、問題なく動作しました。現在、大規模なネットワークをシミュレートしています。以前にこのエラーに遭遇した人はいますか?

4

1 に答える 1

0

メモリが不足しています。このような小さな割り当てでメッセージが表示されるということは、実際にメモリが不足していることを示しています。これを修正するのは簡単ではありません。

これを引き起こしている可能性のある 1 つの可能性は、同じシステムで同時に実行している他のプログラムが多すぎることです。別の可能性は、メモリ リークがあることです。Tcl 自体はメモリ リークについて注意深く監査されていますが、NS2 について話すことはできません。また、スクリプト自体が必要以上に長い時間参照を保持することで「リーク」を引き起こしている可能性があります。これを整理するのは大変な作業です。

もちろん、古き良き「問題により多くのハードウェアを投入する」アプローチを取ることもできます。Tcl と NS2 の 64 ビット ビルドを入手し、たとえば 16 GB のメモリを備えたシステムで実行します。このオプションは、64 ビット ハードウェアが主流になりつつあるため (ついに!)、以前よりもはるかに安価ですが、無料ではありません…</p>

于 2011-11-18T10:40:31.697 に答える