LinuxでC#ゲームのサーバーを実行しようとしていますが、1つの問題を除いてはうまく機能します。ガベージコレクターは、OSにメモリを返さないようであるため、最終的に制限に達し、クラッシュします。
大量のメモリを解放する操作(マップの変更、またはプレーヤーの離脱)の後にSystem.GC.Collectを使用すると、OutOfMemoryErrorが防止されますが、使用可能なメモリ(1GB)の約30MBを除くすべてが使用されるため、少量のメモリを割り当てようとするとクラッシュします。
Windowsでは1人のプレーヤーがオンラインの場合に最大60MBを使用するため、メモリリークではないと思いますが、1人で接続と切断を繰り返すだけで、Linuxサーバーのすべてのメモリを使い果たすことができます。
モノバージョン:
Mono JIT compiler version 2.10.8 (tarball Mon Feb 25 19:25:00 MSK 2013)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)
OSはCentOSで、VPSプラットフォームはOpenVZです。