apache/mod_mono を使用して、Linux ボックスに ServiceStack RESTful Web サービスがあります。
    public DataSetResponse Get(DataRequest req)
    {
        DataSetResponse Response = new DataSetResponse(); 
        DataSet BigData = new DataSet();
        this.Status = this.DataFetcher(ref BigData);   
        Response.Data = BigData;
        Response.Status = this.Status;         
        System.Threading.Thread.Sleep(30000);         
        return Response;
    }
スレッドがスリープ状態になると、top によって報告されているように、mono がメモリの 8% にあることがわかります。30 秒以上後に mono の CPU アクティビティが再び発生すると、メモリが 90% まで上昇し、メモリ不足の例外がスローされます。Mono は引き続き実行されますが、メモリは解放されません。
小さなデータセット (サイズの 1/10) では問題なく動作するようで、mono のメモリは 1% です。クライアントにストリーミングされる前に、データオブジェクトがJsonにシリアル化されると、メモリの増加が発生すると思います。
これは正しいです?さらに重要なことに、これをどのように解決できますか?