デスクトップおよびゲーム用のLinux最適化

この記事では、自宅のコンピューターでLinuxを使用してほぼ10年の経験を共有したいと思います。 この間、私はカーネルで多くの実験を行い、さまざまなアプリケーションのさまざまな構成を試しましたが、強力なハードウェアを購入することなく、Linuxを最大限に活用して優れたパフォーマンスを実現する方法に関する推奨事項を含む長い投稿でこれらすべてを整理したいと考えています。



個人的には、カーネルのチューニングについて書いた部分はまだ少し時代遅れであり、最新のハードウェアはすでにアプリオリが通常の動作に必要なパフォーマンスを提供していると思いますが、最近気づいたように、今でも、強力なハードウェアでもゲームに問題があります。



この記事を読んだ後、電卓でMetro 2033をプレイすることは可能だと約束しましたが(冗談ですが、これは起こりません)、まだお持ちでない場合は、鉄から何かを購入することをお勧めします。



1. SSDをまだお持ちでない場合は購入します



何らかの理由で、多くの人がSSDに懐疑的ですが、これはすぐに動作するコンピューターの最初で最も重要なコンポーネントです。



真剣に、この記事の後半で説明するすべてがパフォーマンスと応答時間をいくらか増加させますが、最も安いSSDでさえ、ほとんどのプログラムの起動時間を0短縮します 。これは視覚的に非常に顕著です。 ほとんどすべてのコンピューター(およびサーバー)で、メインブレーキは常にディスクサブシステムであり、HDDが目的の検索速度(SSDの場合は0ミリ秒になりやすい)を提供することはありません。 コンピューターとの通信とそのアップグレードのすべての時間において、SSDへの移行のみが速度と応答を大幅に向上させました。 フロッピーディスクの動作が遅いことを思い出してください。 それは、SSDの後にハードドライブがどのように認識されるかについてです。



したがって、まだSSDを持っていない場合、継続する意味はありません。コンピューター(12コアXeonを搭載している場合でも)の動作は遅いので、買い物に行きます。



信頼性について:SSDは1年後に死ぬという神話があります。 彼が誕生したのは、初代のSandForceチップを搭載したSSDでした。 当然、ストアの新しいSSDは、少なくとも最新のハードドライブよりも信頼性と耐久性が高いため、これについてはまったく心配しないでください。 2年前に中古のSSDを購入しましたが、当時は1年使用されていました。 現在、彼は11 681時間の使用と10%のリソース使用率を持っているので、同じ使用モードで、さらに27年間は十分です。 この頃までに、データストレージ技術は何度か変わると思います。 繰り返しになりますが、信頼性の問題は不自然です。



同志ヴァディム・スターキンは彼のブログでSSD神話についてより詳細に書いた。 確かに、彼のブログはWindowsに関するものですが、これは本質を変えるものではありません。 読むことを強くお勧めします。非常に興味深いです。



Ubuntu 14.04では、SSDはそのまま使用でき、廃棄オプションはfstabに自動的に登録されますが、 それ以上の作業はありません

他のディストリビューションでは、SSDのパーティションにこのオプションがあるかどうかを確認する必要があります。 ext4のみがこのオプションをサポートしていることに言及する価値があります。 他のFSの場合、スケジューラーからfstrimを使用する必要があります。



2.パーティションテーブル



ドライブを分割しないでください。



家庭用コンピュータの場合、これは無意味で有害です。 SSDには、ルート用に1つのパーティションがあり、システムとすべてのデータが保存されます。 HDD(必要な場合)には、/ mnt(/ mnt / dataがあります)にマウントポイントがある1つのパーティションが必要です。ここには、使用率の低いデータ(映画、音楽、ゲーム)が格納されます。 HDDのマウントポイントを/ homeにしないでください。プログラムの99%がデータを保存し、常にアクセスするため、/ homeはSSD上にある必要があります。



簡単に繰り返します。SSDには、システムが常にアクセスするすべてのもの(書き込み/読み取り)が必要です。



このようなデータをHDDに転送する際の悪いアドバイスを聞かないでください。すでに述べたように、SSDの摩耗には問題がなく、これは神話であり、多数の記録サイクルはSSDの耐久性にまったく影響しません。 繰り返しになりますが、私はヴァディム・スターキンの記事を参照していますが、すべて詳細に説明されており、説明によって裏付けられています。



SWAPパーティションについては、必要ありません。 RAMが足りない場合、OOM-killerはリソースを大量に消費するアプリケーションに勝ちます。これが発生した場合、RAMの価格はそれほどかからないため、RAMを購入します。 RAMエクスパンダとしてスワップを使用すると、コンピュータの速度が大幅に低下します 。 SWAPがなければいくつかの問題があると多くの意見がありますが、私見、これらの会話のルーツはWin9xから成長しており、今日これらはすでに神話です、私は個人的にSWAPを拒否することで問題に気づいていません。 証拠として:VPSでは、接続されたSWAPがほとんど表示されず、何らかの形で動作するようになりました!

SSDでのコールドスタートはHDDの休止状態からの回復よりも速いため、ディスクへのサスペンドも必要ありません。したがって、RAMへのサスペンドを使用するか、コンピューターの電源を完全にオフにします。 スワップからの唯一のプラスは、システムがディスクへのサスペンドを準備しているが、ラムへのサスペンドを実行するときにハイブリッドハイバネーションに入る機能です。したがって、後ですべてがうまくいけば、ハイバネーションから抜け出す簡単な方法があります。その後、システムはディスクから回復します。



私はどこでもext4ファイルシステムを使用しています。他のユーザーとはパフォーマンスの顕著な差を得ることができなかったためです。 作成するときは、-T largefileまたはlargefile4を使用します。



3. 64ビットカーネルを使用する



RAMのパフォーマンスにほとんど依存せず、ゲームのFPSを増加させることはなく、アプリケーションはより速く起動しません。 64ビットアプリケーションを使用しても、通常のタスクは増加せず、非常に具体的な数学的計算とアーカイブ操作のみが増加します。 また、4 GBを超えるメモリをアドレス指定するために64コアを使用する必要はありません。PAEでは、32ビットシステムで最大64 GBのメモリをアドレス指定できます。



しかし、64ビットカーネルを使用すると、アプリケーションは4 GBを超えるメモリに対処できます。これは非常に便利です。 また、64ビットシステムでは、すべての物理メモリをすぐにアドレス指定できます.32ビットシステムでは、〜800 MBを超えるすべてのものを常に再マップする必要があり、ページ交換速度がわずかに低下しますが、これは作業の速度には特に影響しません。



また、OOMキラーがまだ4 GBを占有していないように見えるプロセスを強制終了できるという効果にも気付きました。 私はいくつかのゲームでこれを経験しました。 この問題は、64ビットに切り替えることで解決しました。 64ビットカーネルがなければ、どこにもありませんが、メモリ使用量に若干のオーバーヘッドが追加されます。



4. pf-kernel patsetを使用します



pf-kernelは、Linuxカーネルのパッチのセットで、Linuxシステムのデスクトップ体験を改善することを目的としたウクライナのAlexander Natalenko( pfactum )によって収集されました。



次のもので構成されます。





最も有用なのはBFSパッチとBFQパッチで、これについてはすでに多くのことが書かれています。 BFQは、大規模なディスク操作中のシステムブレーキの問題に苦しんでいます(有名なバグ12309は、ドキュメントで修正されていますが、実際にいらいらし続けています)。BFSは、カーネルの作業よりもデスクトップ作業に適したプロセススケジューラです。 たとえば、デフォルトで使用されるCFSでは、リアルタイムの優先度を必要とする2つのプロセスが1つのコアで実行されますが、他のカーネルは優先度の低いタスクでビジーです。 当然、この動作はグローバルブレーキにつながります。 しかし、「正直なプランナー」。 BFSはそれほど「正直」ではありませんが、コアの数が少ない(大-4096)デスクトップコンピューターの現実にはるかに近いものです。



インストールするために、安定化パッチなしでカーネルの必要なバージョンをkernel.orgからダウンロードし、pf-kernelを適用します。 一般的に、次のようになります。



cd /usr/src
wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-3.12.tar.xz
tar -xf linux-3.12.tar.xz
cd linux-3.12
wget https://pf.natalenko.name/sources/3.12/patch-3.12.4-pf.bz2
bunzip2 patch-3.12.4-pf.bz2
patch -p1 < patch-3.12.4-pf

      
      





, , . , , , , !



, , htop Dota 2 + The Sims 3 (multiseat):



image



25% ( 5- load-average) CPU . , , :(



5. !



, linux .



make xconfig







preemption, dynticks!



! , BFS « » . — , preemption .



, , preemption , , . , , 100% CPU, - . , WinXP , XP , , , , reset. , .



, , , .



Processor type and features Preemption Model No Forced Preemption (Server). «ocasional longer delays are possible» BFS . , «raw processing power».



, , Processor family .



, Timer frequency 300 HZ. 100 , ( ), . , 300 25 30, , ( . , + vsync).



, , hot-plug cpu , ( - ).



, , CPU Frequency scaling .



. , , «» . General setup -> Timers subsystem Timer tick handling Periodic timer ticks (constant rate, no dynticks).



BFQ



BFQ .



Enable the block layer -> IO Schedulers BFQ I/O scheduler BFQ hierarchical scheduling support, Default I/O scheduler , , BFQ.



6. Prelink



, . peter23.



7.



, — «» . , , - nVidia, -.



Geekbench 3 Steam gputest, :



3.14-pf:

Single-Core Score 2421

Multi-Core Score 8209

gputest: 3720 pts, 62 FPS



3.13-generic:

Single-Core Score 2646

Multi-Core Score 8414

gputest: 3713 pts, 61 FPS



Windows:

Single-Core Score 2572

Multi-Core Score 8242

gputest: 3634 pts, 60 FPS



, - «» CPU , GPU — . , . , 3.16, , . , Windows , 3D .



All Articles