QLOOKアクセス解析

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告  |  ↑Top

2013/04/01 (Mon) 01:15

SynapticCPU高使用率問題解消

Synaptic パッケージマネージャは非常に便利なツールである。パッケージのインストール・アンインストールだけでなく、パッケージの名前が分からないパッケージの検索や、パッケージの概要、依存関係、インストールされたファイルを簡単に調べることができ、リポジトリの管理もできる。

欠点はCPUパワーを使い重いことである。特に非力なPCの場合CPU使用率が100%に達し、Synaptic だけでなく他のアプリケーションにまで影響を及ぼし、ほとんどフリーズに近い状態になり、使い物にならない場合がある。

何がそれほどCPUパワーを消費するかというと、Quick filter 機能に問題があるからである。Quick filter は、全てのパッケージにインデックスをつけるため、CPUパワーを消費する。またメモリも消費する。さらに、Synaptic が起動していないときもバックグラウンドで実行される場合があり、そのときもCPU使用率が高くなる。

インデックス化しているプログラムの正体は、/usr/sbin/update-apt-xapian-index で、synaptic 本体からと /etc/cron.weekly/apt-xapian-index から実行される。

CPU高使用率問題を解消するには2つの方法がある。
・パッケージ apt-xapian-index を削除する。
・update-apt-xapian-index の実行優先度を下げる。


以下、2つの方法について解説する。

・パッケージ apt-xapian-index を削除する。
パッケージ apt-xapian-index を削除するとCPU高使用率問題は解消する。削除方法は以下。

sudo apt-get remove apt-xapian-index


ただし副作用がある。Quick filter が使えなくなるので、パッケージの検索をしたい場合遅くなることと、それより重要な副作用として、Synaptic はことあるごとに表示しているパッケージ一覧リストを更新するので、その更新に時間がかかることである。

筆者の古いノートPC(スペックはこちら)では、何かした場合、例えば起動時や Reload の後など、一覧画面が表示されるまで30秒ほどかかる。しかしフリーズしてしまうよりましである。

ならばいっそのこと Synaptic など使わずに、apt-get だけで済ませてしまえば良いと思う方も多いと思うが、最初に記述したように、Synaptic にはパッケージのインストール・アンインストール以外にも便利な機能があるので、全く使わないのはもったいない。状況によって Synaptic と apt-get を使い分けるのが良い選択であろう。


・update-apt-xapian-index の実行優先度を下げる。
これは結構大変な作業である。しかもやってみなければ実際に効果があるかどうか分からない。筆者の非力なノートPCでは、残念ながらやっぱり使えなかった。しかしもう少しスペックの良いPCなら効果があるかもしれない。以下やり方について。

前述のように、update-apt-xapian-index は Synaptic 本体からと /etc/cron.weekly/apt-xapian-index から実行される。従って Synaptic 本体と /etc/cron.weekly/apt-xapian-index の2つを変更する必要がある。

このうち、/etc/cron.weekly/apt-xapian-index を変更するのは容易である。エディタで /etc/cron.weekly/apt-xapian-index を root 権限で開き、次のように変更する。

# Rebuild the index
if [ -x "$CMD" ]
then
        if [ -x "$IONICE" ]
        then
                # ここを変更
                #nice -n 19 $IONICE -c 3 $CMD --quiet
                $IONICE -c 3 nice -n 19 $CMD --quiet
        else
                nice -n 19 $CMD --quiet
        fi
fi


Synaptic 本体から実行される update-apt-xapian-index の実行優先度を下げるには、Synaptic のソースを入手して自分でコンパイルする必要がある。

ソースの入手先は以下。
https://launchpad.net/ubuntu/precise/+package/synaptic

ダウンロードしたあと解凍し、次のファイルを編集する。

synaptic-0.75.9/gtk/rgmainwindow.cc


889行目からを以下のように変更する。
変更前

    char *argp[] = {"/usr/bin/nice",
                   "/usr/bin/ionice","-c3",
                   "/usr/sbin/update-apt-xapian-index",
                   "--update", "-q",
                   NULL};


変更後

    char *argp[] = {"/usr/bin/ionice", "-c3",
                   "/usr/bin/nice", "-n19",
                   "/usr/sbin/update-apt-xapian-index", "--update", "-q",
                   NULL};


次に必要なパッケージをインストールする。(実際は一行)

sudo apt-get install gcc make gnome-common libpango1.0-dev libgtk2.0-dev libapt-pkg libvte-dev xmlto libept-dev


ディレクトリを移動する。

cd synaptic-0.75.9


autogen.sh を実行する。

./autogen.sh


次に configure, make, make install を実行する。configure する際、--prefix オプションをつけておく。その理由は、現在ある Synaptic を上書きしないためである。先ず満足のいくパフォーマンスが得られるかどうか確かめておく必要がある。手順は以下。

./configure --prefix=~/usr
make
make install


エラーが出るかもしれないが、それでもなんとかインストールに成功したら、コマンドラインから Synaptic を起動してパフォーマンスをテストする。

sudo ~/usr/sbin/synaptic


満足のいくパフォーマンスが得られたら旧い Synaptic を削除して、configure からやり直して新しい Synaptic をインストールすれば良いし、パフォーマンスが得られなければ新しい Synaptic をアンインストールすれば良い。

Good Luck!!

追記
update-apt-xapian-index の実行優先度を下げるには、リコンパイルする方法以外に renice コマンドを使う方法がある。そちらの方がリコンパイルするより簡単だろう。しかし試していないので、興味のある方は自分でやってみると良いだろう。

目次
Bodhi Linux 目次
Bodhi Linux インストール後作業一覧

Bodhi Linux  |  トラックバック(0)  |  コメント(0)  |  ↑Top

Comment

コメントを投稿する


 管理者だけに表示  (非公開コメント投稿可能)

▲TOP

Trackback

この記事のトラックバックURL

→http://cyberbaba.blog57.fc2.com/tb.php/264-ddbc8727

この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック

▲TOP

 | HOME | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。