応答性を高めるためにLinuxデスクトップを調整するにはどうすればよいですか?


30

物理メモリがなくなるまでLinuxは正常に動作するという経験があります。スワップ領域が使用されるとすぐに、パフォーマンスが著しく低下し、GUIが応答しなくなります。

この問題は特定のディストリビューションやデスクトップに限定されるものではありません。私はいくつか試してみました(そして問題は残っています)。

これについて何ができますか?


これはLinuxカーネルの既知の問題です...最近、それを修正するためにパッチがコミットされたと読んだと思います。それへの参照を探しています...
xenoterracide

1
この記事この1 phoronixには、私が考えていたものです...私は思います。
xenoterracide

基本的に、これらの記事は2.6.36に移行するパッチについて説明しているため、それが出てきたら(RCを実行するかマスターから敢えてしない限り)
-xenoterracide

RAMはどれくらいありますか?あなたはどのプログラムを実行しますか?VMの?JVM?
シェパン

8GBのRAMがあり、犯人は通常のアプリです(FirefoxやChromeなどのWebブラウザー、サンダーバードなどの電子メールクライアント、IRCクライアント。
txwikinger

回答:


15

SwapFAQ、特にswapinessパラメーターを読むことをお勧めします。


3
1、スワップは...我々は使用しないことを望むというバンドエイドです
エイブリー・ペイン

1
私はさまざまな設定を試してみましたが、うまくいきませんでした。私はまた、交換の価値に関する意見がまったく統一されていないことにも気づきました。10を推奨するデスクトップと100を推奨するデスクトップでは、逆の効果を示唆することを示唆しています。
txwikinger

1
さらにテストを行った後、swapiness 100と0のどちらも使用しないことをお勧めします。どちらも、デスクトップが20分以上パネルクロックを停止させたスワッピングの流行に陥った状況を作り出しました。
txwikinger

11

いくつかのポインター:

  1. 一度に多くのGUIプログラムを実行しないでください。
  2. バックグラウンドで実行されている必要のないプログラム(Apacheなど)が停止していることを確認してください。
  3. メモリ不足の状況を対象としたディストリビューションを使用する(ネットブックなど)
  4. メモリを追加購入します。
  5. スワップパーティション用に高速のHD(またはSSD)を購入します。:)


2
最新のSSDでは、システム全体が廃止され、SSDが消滅するずっと前に交換の準備が整う可能性があります。本当に心配する価値はありません。もちろん、ディスク(SSDまたはメカニカル)はいつでも死ぬ可能性があるため、バックアップが必要です。
cas

4

メモリを追加購入しますか?:)

システムに存在するよりも多くのメモリを使用しているアプリケーションを実行している場合、他のオペレーティングシステムがスワップパーティションにスワップする以外にこれに関してできることは何もありません。これがよくある状況である場合、不要なプログラムの実行を停止するか、実際にメモリを追加購入すると、非常に安価になります。


3
すでに最大のRAMがあります。スワップをより効率的にするいくつかの調整を知りたいです。
txwikinger

1
スワップを完全に無効にすると、システムの応答が速くなる傾向があることがわかりました。アプリは、メモリがないことをカーネルから通知され、それに応じて応答します。
cjac

3
@cjac:通常はそうではありません。これを行うようにカーネルを設定できますが、デフォルトではオーバーコミットされます(システムにないアプリのメモリを与えます)。アプリがメモリにアクセスし、カーネルがそれ以上見つけられなくなると、メモリ不足のキラーが1つ以上のプロセスを終了します。
クリストフプロボスト

@txwikingerスワッピングが遅い理由は、RAMの速度がハードディスクよりもずっと速いためです。RAMシーク時間はナノ秒(10 ^ -9)で測定されます。HDDシーク時間はミリ秒(10 ^ -3)で測定されます。これは6桁です。つまり、RAMはスワップよりも100万倍高速です。あなたの質問は、コンコルドジェットと同じくらい速く自転車を動かす方法を尋ねるようなものです。できません。
バハマ

1
@bahamat。あなたは明白なことを述べていますが、それは問題ではありません。問題は、スワッピングが非常に非効率的に行われ、したがって哲学者の問題の方向に何かを作成することです。
txwikinger

2

カーネル変数「vm.swappiness」および「vm.page-cluster」の値をより適切な値に変更してください。

  1. ターミナルエミュレータを起動します。
  2. cd /etc/sysctl.d/
  3. sudo echo "vm.swappiness = 0" > 60-memory-management.conf
  4. sudo echo "vm.page-cluster = 1" >> 60-memory-management.conf
  5. sudo chmod 644 60-memory-management.conf
  6. リブート。

新しい値が使用中かどうかを確認します:

  1. cat /proc/sys/vm/swappiness
  2. cat /proc/sys/vm/page-cluster

1

スワップは何があってもパフォーマンスを大幅に低下させるため、それを完全に回避するのが最善です。これは愚かに聞こえるかもしれませんが、1つのオプションはスワップパーティションを構成しないことです。私はしばらくの間、すべてのシステムでスワップフリーを実行しています。

  • ネットブックに1 GBあれば、ウェブを閲覧したり、音楽やその他の軽量のものを聴いたりできます。
  • デスクトップ上の4 GBは、上記すべてに加えて、開発(Eclipseでも)および基本的な画像編集に十分です。

メモリを大量に消費する何か(大きな画像のGimp、3Dモデリング、CAD)を行う場合は、おそらくRAMを購入する必要があります。


はい。私はゆっくりと同じ結論に達します。Linuxカーネルがスワップする方法は、デスクトップではあまり効率的ではないように思えます(サーバー上ではすべてうまくいきます)。したがって、デスクトップ上のすべてのスワップスペースを無効にすることをお勧めします。ところで 私は8GBのRAMを使用しています:)
txwikinger

1
@txwikinger:なぜサーバー上でそれがうまくいくのか尋ねてもいいですか?
プネヘヘ

1

ディストリビューションで設定する方法がわかれば、compcacheを試すことができます。たとえば、Ubuntuの上では、編集して有効にすることができ/etc/initramfs-tools/initramfs.confと「COMPCACHE_SIZE」行を編集します。

compcacheを有効にしてから、ディスク上のスワップに一度も触れたことはないと思います。現在のスワップ統計は次のとおりです。

% swapon -s
Filename                                Type            Size    Used    Priority
/dev/ramzswap0                          partition       1028084 69504   100
/dev/sda5                               partition       3148668 0       -1

compcacheデバイス(ramzswap0)が使用され、オンディスクデバイス(sda5)は使用されていないことに注意してください。


0

より高速なRAMを購入し、システムがそれをすべて使用していることを確認してください。どのCPUとアーキテクチャを使用していますか?


Linuxシステムをどのように調整しますか?ここでは、ハードウェアの変更や改善は問題ではありません。
txwikinger

Linuxインストールが、利用可能なすべてのハードウェアを使用していない可能性があります。これはパフォーマンスの問題であり、前のコメントで、RAMの上限に達していると述べています。構成に関する詳細を知らなくても、簡単な方法はハードウェアの改善です。
マイクH

1
「Linuxシステム」はハードウェアとソフトウェアで構成されています。メモリを追加すると、システムが「微調整」されます。
cjac

Linuxは、ハードウェアで実行されるソフトウェアです。ハードウェアはLinux内に含まれていません:p
txwikinger

1
RAMは高速よりも適切であると思います... RAM速度は通常
Mobo

0

画面の右側のドックでシステムモニターアプレットを実行します。システムが遅く感じる場合はいつでも、メーターを確認します。10%を超える容量で何かが実行されている場合、それはプロセスが手に負えなくなっていることを示しています。

システムモニターをクリックすると、システム上のリソースを消費しているプロセスを掘り下げることができます。

http://www.colliertech.org/~cjac/tmp/screenies/system_monitor.png


1
ほとんどのシステムモニターは、遅いシステムをシュレディンガーの猫に引きずり込むだけです。メモリを増やすことなく、メモリリークを修正するか、実行中の不要なプログラムを削除する必要があります。
jjclarkson

0

数年前は、専用のドライブを使用してスワップするのが普通でしたが、専用のIDE / ATAバスに接続していました。同じドライブでデータを交換するのは、パフォーマンスの点で意味がありませんでした。

そのトリックは10年前に機能しましたが、ドライブの速度では、議会のライブラリを交換しない限り、このような多忙なパフォーマンスの低下は実際には見られないはずです。

いつでも試してみることができます。RAMがすでに上限に達している場合は、選択肢があまりありません。どちらかといえば、GUIの応答性が向上することを願っています。


デスクトップの多くの使用法では、ラップブック、または2台目のドライブを許可しないネットブックであるため、このオプションは提供されません。
txwikinger

@txwikinger明らかに真の、しかし私は、ラップトップが具体的に言及された場合は:-)そう、私はこのことを示唆していないだろう、「デスクトップ」を読み取る質問のタイトルを考えられて
反転

まあ..私はサーバーと区別するためにデスクトップを意味しましたが、そこではスワッピングが合理的にうまくいくと思います。:)
txwikinger

0

十分な量のRAMを備えた2番目のLinuxシステムをネットワークにインストールし、メインシステムにNFSマウントして、その上にスワップファイルを配置します。


1
ギガビットイーサネットでは、これはミッドレンジSSDよりもかなり遅くなり、7200rpmのハードディスクの速度に到達できるかどうかはわかりません。Firewireを使用すると、ローカルスワップの速度に到達できる場合があります。ただし、単にRAMを追加する方が効果的です。
ジル 'SO-悪である停止

0

1つの方法は、最適化されたカーネルを使用することです。


リンクだけを投稿しないでください。リンクしているサイトがダウンした場合、答えを意味のあるものにするのに十分な情報がここにあるように、何らかのコンテキストを含めます。
jasonwryan

0

長年の経験のために、私はあなたが微調整するほど多くはないことを伝えることができます

しかし、私が最近やったことは大いに役立ちました。

1

UbuntuからArch Linuxに移行し、Unity / Gnomeからxfceデスクトップに移行しました。

Ubuntuはどこから見ても致命的です。ブート/グラフィックス..遅い。

2

Intel SSD(80g)を購入し、その上にルートシステムを植えました。

私のArch Linux + XFCE4 + docky + conky、10秒で起動(lxdmでの自動​​ログイン)、SSDにインストールされたすべてのアプリケーション(Matlabなど)がはるかに速く起動します。

それに値するお金。

3

/ tmpを別の場所に作成します。ルートファイルシステムがスクランブルされるのを防ぐために、制限されたサイズのRAMディスクを使用します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.