私は、並列処理のために最大8回フォークするアプリケーションに取り組んでいます。各フォークには、フォークの時点での元のプロセスからのメモリスペースの完全なコピーがあります。Linuxはプロセス間でページを共有し、変更された場合にのみ新しいページを作成するため、フォークは高速です。実際には、メモリ消費量の増加は、私のアプリケーションでは約3倍のようです。その成長を減らす変更を特定するために使用するツールまたは手法に関する提案はありますか?
1つの考えは、変更されたページのページの断片化を調べることです。フォークされたプロセスに割り当てられているものの強引な調査もあります。どちらの場合でも、その分析を実行するためにどのような手法またはツールを推奨できますか?
プログラムは並列処理でも完了するまでに数時間かかり、最大1TBのメモリフットプリントがあるため、インストルメンテーションオプションが制限されることに注意してください。