IBM Support

調査用PerlスクリプトがAIXシステムでout of memoryになる

Question & Answer


Question

Tivoli Storage Managerサーバー用モニタースクリプト、servermon.pl、あるいは再編成情報収集スクリプト serverReorgInfo.pl をAIXシステムで実行時、out of memory または segmentation fault になることがあります。

Cause

AIXでコンパイルされた32bitのPerlインタープリターは、ヒープ用に1つのメモリーセグメント(256MB)のみ使用するためです。

32bitプロセスモデルでは、最大2^32=4GBのメモリーにアクセスできます。これは、1つが256MBで、最大16個のセグメントに分けられています。デフォルトではプロセススタック(プロセス機能用の一時的なローカルストレージ)とヒープ(動的に割り当てられるメモリー)は1つのセグメントを共有しています。ユーザー用ulimitで制限されていない場合、これらの使用量が256MBに達することがあります。

AIXはこの設定のPerlを出荷しております。

Answer

以下の変更を行う前に、バックアップを取得するようにしてください。

その後、Perl実行環境に以下の調整を行ってください。これは、Perl5.8.8を使用している場合の例です。


ldedit -b maxdata:0x90000000/dsa /usr/opt/perl5/bin/perl5.8.8

この結果、Perl実行環境が1つ以上のセグメントを使用するようになります。

この設定変更を行う代わりに、この制限がない、perl64を使用することもできます。

[{"Product":{"code":"SSGSG7","label":"Tivoli Storage Manager"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"Server","Platform":[{"code":"PF002","label":"AIX"}],"Version":"All Supported Versions","Edition":"","Line of Business":{"code":"LOB26","label":"Storage"}}]

Document Information

Modified date:
17 June 2018

UID

swg22015576