-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
High performance setup ja JP
これは 低メモリ設定 とは正反対のものであり、メモリ使用量が増える可能性と引き換えに、ASF のパフォーマンス(CPU 速度の面)をさらに向上させたい場合は、通常これらのヒントに従うことになります。
ASFは、一般的なバランス調整に関しては、すでにパフォーマンスの好みを試みています。 したがって、あなたがさらにそのパフォーマンスを向上させるために行うことができる多くはありません, あなたはどちらかの選択肢の完全ではありませんが、. ただし、これらのオプションはデフォルトでは有効になっていないことに注意してください。 つまり彼らは大多数の使用にバランスが取れていると考えるには不十分です だから自分で決めるべきだ記憶の増加が許されるか?
以下のトリック には深刻なメモリ増加 が含まれているため、注意して使用する必要があります。
これらの設定を適用する推奨方法は、 DOTNET_ 環境プロパティです。 もちろん、runtimeconfig.json など他の方法を使用することもできますが、この方法では設定できない項目もあります。さらに、次回の更新時に ASF がカスタムの runtimeconfig.json を独自のものに置き換えてしまうため、プロセスを起動する前に簡単に設定できる環境プロパティをおすすめします。
.NET ランタイムでは、さまざまな方法で ガベージコレクタ を微調整できます。 GCプロセスを効果的に微調整します。 私たちは、私たちの意見では特に重要な特性以下を記録しました。
ワークステーションのガベージコレクションかサーバのガベージコレクションかを設定します。
ガベージコレクション の基本的な では、サーバ GC の具体的な内容を確認することができます。
ASFはデフォルトでワークステーションのガベージコレクションを使用しています。 これは主に、メモリ使用量とパフォーマンスのバランスが良いためです。これは、ほんの数台のボットで十分です。 通常、単一の同時バックグラウンドGCスレッドは、ASFによって割り当てられたメモリ全体を処理するのに十分な速さです。
しかし、今日、ASFの恩恵を受けることができる多くのCPUコアがあります。 利用可能な各 CPU vCore ごとに専用の GC スレッドを持つことによって。 これにより、バッジページの構文解析やインベントリなど、ASFの重いタスク中のパフォーマンスが大幅に向上します。 すべてのCPUのvCoreは2(メインとGC)とは対照的に役立つことができるので。 3 CPU vCores 以上のマシンにはサーバー GC が推奨されます。マシンが 1 CPU vCoreの場合、ワークステーション GC は自動的に強制されます。 そして、正確に2を持っている場合は、両方を試してみることを検討することができます (結果は異なる場合があります)。
サーバーGC自体は、アクティブにするだけで非常に大きなメモリ増加をもたらしません。 しかし、それははるかに大きな世代サイズを持っているので、OSにメモリを戻すことになると、はるかに遅延します。 サーバー GC が大幅にパフォーマンスを向上させるスイートスポットに自分自身を見つけるかもしれませんし、それを使い続けたいと思うでしょう。 でも同時に使うことで 記憶力が大きく増えるわけにはいきません 幸いなことに、サーバー GC を使用し、GCLatencyLevel 設定プロパティを 0 に設定することで、「両方のいいとこ取り」となる設定があります。これにより、サーバー GC は有効なまま、世代サイズを制限してメモリをより重視するようになります。 または、別のプロパティである GCHeapHardLimitPercent を試してみることもできます。あるいは、両方を同時に試すこともできます。
しかし、メモリが問題にならない場合(GCはまだ利用可能なメモリと微調整自体を考慮に入れています)。 それらの特性を全く変更せず、結果的に優れた性能を発揮する方がいいと思います。
適切な環境変数を設定することで、選択したプロパティを有効にできます。 例えば、Linux (shell):
export DOT_gcServer=1
./ArchiSteamFarm # For OS specific build
./ArchiSteamFarm.sh # For general buildまたは、Windows (powershell)上で:
$Env:DOT_gcServer=1
.\ArchiSteamFarm.exe # OS 固有のビルド
.\ArchiSteamFarm.cmd # 一般的なビルド-
OptimizationModeのデフォルト値がMaxPerformanceであることを確認してください。MinMemoryUsageを使用すると、パフォーマンスに劇的な影響を与えるため、これははるかに重要な設定です。 - サーバGCを有効にする Server GCは、ワークステーションGCに比べてメモリが大幅に増加することによって即座にアクティブであると見なすことができます。 これにより、マシンが持っているCPUスレッドごとにGCスレッドが生成され、最高速度と並行してGC操作が実行されます。
- サーバー GC によるメモリ使用量の増加を許容できない場合は、「両方のいいとこ取り」を実現するために、
GCLatencyLevelやGCHeapHardLimitPercentの調整を検討してください。 しかし、あなたのメモリがそれを買う余裕がある場合。 サーバーGCは実行時にすでに自分自身を微調整し、OSが本当に必要とするときにメモリを少なくするのに十分なスマートさを備えています。
上記の推奨事項を適用すると、数百から数千の有効なボットでも高速に燃えるべき優れたASFパフォーマンスを得ることができます。 ASFが必要に応じてCPUパワー全体を使用できるため、CPUはボトルネックにならなくなり、必要な時間を最小限に抑えることができます。 次のステップは、CPUとRAMのアップグレード、または複数のサーバーとASFインスタンスにワークロードを分割することです。







