私はサーバーテストを行っていましたが、すべてのメモリを使用しようとしましたが、意図的に仮想Solarisサーバーをクラッシュさせました。サーバーのulimitは15 GB(合計システム/スワップメモリ数百GB)です。シェル/Perlスクリプトを使用してこれを直接実行する方法はありますか? (これは強化/セキュリティ環境なので、アクセス可能な唯一のツールはPerl [およびもちろんシェル]です)。
背景:実際のテストは、基本プロセスを別のサーバーにフェールオーバーすることでした。最近、複数のプロセスが「制御不能」状態になり、すべてのシステムリソースを消費してサーバーがクラッシュしました(別の問題)。私はこの状況への対応をテストするためにシンプルで繰り返し可能なシナリオを作成しようとしています。
答え1
jlliagreがこの質問に答えました。良い答えへのリンクを投稿しました。私ではなく、彼を信じてください。
/ tmpに書き込む場合は、SolarisでのみディスクではなくRAMに書き込みます。これが/ tmpファイルの作成が非常に速い理由です。 RAMがいっぱいになるとシステムが遅くなります。 / tmpが完全にいっぱいになると、/ tmpのwritewsがスワップ領域に書き込みを試み、最終的にシステムがクラッシュします。この方法はメモリ制限をバイパスします。最大ファイルサイズを指定していないことを確認してください。
ulimit -a
file(blocks) unlimited