これまでにテストしたすべてのGNU / Linuxディストリビューションには、RAMがいっぱいになりシステムがスワップを開始するたびに、デスクトップとグラフィカルユーザーインターフェイス全体が地獄のように反応しなくなることがあるという問題があります。マウスポインターが実際に移動するまで物理的なマウスを移動した。
これは、特に低RAMのシステムでは厄介な動作です。
デスクトップ環境などの一部のアプリケーション/ジョブに、他のアプリケーションよりもラムにとどまる優先順位を高くして、アプリケーションが実際にすべてのメモリを占有し、デスクトップ環境などの前にスワップされるようにする方法はありますか?
編集: 私はRAM全体が使用されている場合について話しているので、それが無効になっていない場合は常にスワップを開始します(プロセスがランダムに強制終了されることは望ましくありません)。この問題は、低RAM環境だけでなく、デスクトップマシン上の8GiBのRAMでも発生しました。これは、メモリリークが原因のVMが多かったためです。ZRAMは問題を遅らせるだけなので、解決策でもありません。この問題に対して私が考えることができる唯一の解決策は、特定のジョブがまったくスワップされないようにするか、少なくとも非常に起こりにくいようにするユーザースペースユーティリティまたはカーネルAPIです。誰かが別のソリューションを知っていますか、またはそのようなツールやAPIが存在するか、計画されているかについて何か知っていますか?
第二編集: ulatencydにsystemdの新しいバージョンで動作するようには思えない、に従ってhttps://aur.archlinux.org/packages/ulatencyd-git/とhttps://wiki.archlinux.org/index.php/Ulatencyd。これは、私が正しく理解していれば、systemdがユーザー空間の観点からcgroupの完全な制御を引き継いだためかもしれません。
cgroup_enable=memory swapaccount=1
カーネルコマンドラインで。これにはわずかなパフォーマンスコストがあることに注意してください)。実装例:ulatencyd。