Precise-571JPでZRAMを使用する

パピーを名犬にするための技、テクニック

モデレータ: 暇人, YoN, nyu

返信する
ssnys
記事: 64
登録日時: 14/02/19(水) 17:50

Precise-571JPでZRAMを使用する

投稿記事 by ssnys »

`/etc/init.d/zram-config.conf`に以下のようなスクリプトを作成します。スクリプトの内容はhttps://bugs.launchpad.net/ubuntu/preci ... config/0.1を一部改変にしたものです。

コード: 全て選択

#!/usr/bin/env sh

case $1 in
  start)
    # load dependency modules
    NRDEVICES=$(grep -c ^processor /proc/cpuinfo | sed 's/^0$/1/')
    if modinfo zram | grep -q ' zram_num_devices:' 2>/dev/null; then
      MODPROBE_ARGS="zram_num_devices=${NRDEVICES}"
    elif modinfo zram | grep -q ' num_devices:' 2>/dev/null; then
      MODPROBE_ARGS="num_devices=${NRDEVICES}"
    else
      exit 1
    fi
    modprobe zram $MODPROBE_ARGS

    # Calculate memory to use for zram (1/2 of ram)
    totalmem=`free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/  *.*//'`
    mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024))

    # initialize the devices
    for i in $(seq ${NRDEVICES}); do
      DEVNUMBER=$((i - 1))
      echo $mem > /sys/block/zram${DEVNUMBER}/disksize
      mkswap /dev/zram${DEVNUMBER}
      swapon -p 5 /dev/zram${DEVNUMBER}
    done
  ;;
  stop)
    if DEVICES=$(grep zram /proc/swaps | awk '{print $1}'); then
      for i in $DEVICES; do
        swapoff $i
      done
    fi
    rmmod -w zram
  ;;
esac
`chmod 755 /etc/init.d/zram-config.conf`で実行権限を与え、再起動後`swapon`コマンドで`/dev/zram0`が確認できれば成功です。 :D

コード: 全て選択

~# swapon -s
Filename				Type		Size	Used	Priority
/dev/zram0                              partition	497240	0	5
FrugalインストールでZRMAを使用していますが、効果のほどはいまいちよく分かりません。 :|
💻Lenovo G550(CPU: Intel Celeron 900 @ 2.20GHz, RAM: 971MB, HDD: 149.05GiB) + Precise-571JP
🖥HITACHI FLORA 310 DL7(CPU: Intel Pentium III 700 MHz, RAM: 384MB) + Precise-571JP
アバター
タロ兵衛
記事: 875
登録日時: 08/07/08(火) 00:11
お住まい: よこはま
連絡する:

Re: Precise-571JPでZRAMを使用する

投稿記事 by タロ兵衛 »

ssnys さん、こんにちは
質問です
(1) これは、圧縮機能付きRAMドライブ(RAMディスク)という認識でよろしいですね?
(2) もともとドライバは備わっていて、スクリプト作成以外にダウンロードしたりコンパイルしたりは不要
(3) 通常使われているpuppyのRAMドライブとは別物で、一時的な作業用のストレージなどに使える

・・・いずれにしてもこれは便利そうです
neo実験君こと次期メインマシン
Intel Core i5-8400 2.80GHz
xenialpup64 7.5+lang_pack_ja-xenial64e
thinkpadnerd
記事: 2035
登録日時: 15/10/25(日) 14:00

Re: Precise-571JPでZRAMを使用する

投稿記事 by thinkpadnerd »

”ssnys さんが書きました:
> 効果のほどはいまいちよく分かりません。

ハードディスク (swap パーティションや swap file) より、RAM のほうが動作は速いと思いますが、ZRAM は圧縮・解凍を伴うので、実際にスワップが発生する状況で比べてみないとわからないと思います。マシンのスペックや作業内容にも左右されるかもしれません。

仮に1GBのメモリを搭載しているマシンで、半分を ZRAM に割り当てると、OSやアプリケーションが利用できる RAM は 512MB。
私の経験では、比較的軽い precise 以前の puppy でも、RAM 512MB でブラウザとオフィスソフト (OpenOffice など) を同時に使うとメモリ不足になり、スワップが発生すると思います。

むしろ、RAM 1GB 搭載なら ZRAM を作らないほうが高速に動作するのではないかと... (それでも万一に備えて swap file は用意しておいたほうがいいとは思います。)
ThinkPad X121e (Precise 571 / Tahr 605 / Tahr64 606 / Xenial 7.5 / Bionic32)
CPU AMD C-50 1.0GHz, RAM 4GB
ThinkPad L440 (Xenial 7.5 / Bionic64 / Fossa64)
CPU intel Celeron 2950M 2.0GHz, RAM 4GB
ssnys
記事: 64
登録日時: 14/02/19(水) 17:50

Re: Precise-571JPでZRAMを使用する

投稿記事 by ssnys »

タロ兵衛さん、thinkpadnerdさんご返信頂きまして誠にありがとうございます。
タロ兵衛 さんが書きました: (1) これは、圧縮機能付きRAMドライブ(RAMディスク)という認識でよろしいですね?
(2) もともとドライバは備わっていて、スクリプト作成以外にダウンロードしたりコンパイルしたりは不要
(3) 通常使われているpuppyのRAMドライブとは別物で、一時的な作業用のストレージなどに使える
当方もZRAMについてよくわかっておらず、間違いがあるかも知れませんが、ご容赦ください。
  1. 圧縮機能付きSwapl領域がメモリー上に作成されるようです。
  2. Precise-571JPではスクリプト作成・起動のみで動作しました。ZRAMはLinuxカーネルの実験的機能とされていますが、多くのディストリビューションで有効となっているようです。
  3. 通常使われているpuppyのRAMドライブ(tmpfs)と異なり、あくまでSwap領域なのでファイルなどは置くことはできないと思います。ただtmpfsは一定の容量をオーバーするとファイルをSwap領域に避難させるようです。
thinkpadnerd さんが書きました:むしろ、RAM 1GB 搭載なら ZRAM を作らないほうが高速に動作するのではないかと... (それでも万一に備えて swap file は用意しておいたほうがいいとは思います。)
メモリーの使用量はアプリケーションやtmpfsに置くファイル容量などで様々に変化するので、常にベストのパフォーマンスを求めるのは難しいところです。当方もRAM容量1GのPCを利用していますが、使用メモリー量が1Gを越えないのであれば、ZRAMは使用しない方が高速だと思うのですが、使用メモリー量が1Gを越える場合(特にSwapファイルへのアクセスが遅い場合)はZRAMを使用した方が高速なのではないかと思われます。パフォーマンスを測ったわけではないので断定はできませんが。 :?

参考にしたページ
💻Lenovo G550(CPU: Intel Celeron 900 @ 2.20GHz, RAM: 971MB, HDD: 149.05GiB) + Precise-571JP
🖥HITACHI FLORA 310 DL7(CPU: Intel Pentium III 700 MHz, RAM: 384MB) + Precise-571JP
アバター
タロ兵衛
記事: 875
登録日時: 08/07/08(火) 00:11
お住まい: よこはま
連絡する:

Re: Precise-571JPでZRAMを使用する

投稿記事 by タロ兵衛 »

ssnys さんが書きました:
  1. 圧縮機能付きSwapl領域がメモリー上に作成されるようです。
  2. Precise-571JPではスクリプト作成・起動のみで動作しました。ZRAMはLinuxカーネルの実験的機能とされていますが、多くのディストリビューションで有効となっているようです。
  3. 通常使われているpuppyのRAMドライブ(tmpfs)と異なり、あくまでSwap領域なのでファイルなどは置くことはできないと思います。ただtmpfsは一定の容量をオーバーするとファイルをSwap領域に避難させるようです。
回答ありがとうございます。
基本SWAPなんですね。そっかー、ちょっと残念。
でも、発想は面白いですね。
メモリをドッサリ使っているアプリ(たとえば100MB)がメモリー中で寝ていたとして、
新しいアプリが起動して50MB足らなかったとする
そこで、圧縮して30MBになったとすると、遅いHDDに逃さなくても、済むということですねかね
neo実験君こと次期メインマシン
Intel Core i5-8400 2.80GHz
xenialpup64 7.5+lang_pack_ja-xenial64e
アバター
ルビー
記事: 1240
登録日時: 14/11/24(月) 12:12

Re: Precise-571JPでZRAMを使用する

投稿記事 by ルビー »

非力な環境での効果はどうだろうと、毎度の ThinkPad R40(Mobile Pentium 4-M 1.8GHz RAM256MB)の571Pで、試してみました。
結果は、ZRAMを使わない時との、体感速度での違いはありませんでした。

swapon -s で見てると、スワップは効いています。
CPUがもう少し速ければ、効き目が出るのかな。
そもそも、RAM256MBに無理があるかもですが。
thinkpadnerd
記事: 2035
登録日時: 15/10/25(日) 14:00

Re: Precise-571JPでZRAMを使用する

投稿記事 by thinkpadnerd »

”タロ兵衛さんが書きました:
> 基本SWAPなんですね。

「Precise-571JPで...」からちょっと逸れますが、少し前にくさがめさんが話題にしていた quirky pyro32 は、CDから起動して frugal 的な使い方をするときに ZRAM を利用しています。(quirky シリーズはフルインストールが基本です。)

セッション保存には s.sfs が作成されます。次回起動時は ZRAM を作成してその中に s.sfs の内容を読み込みます。終了時は再び s.sfs にまとめられます。つまり、起動後は ZRAM が puppy の個人保存ファイルのような役割をしています。動作している間は意図的に保存の操作をしない限り、RAM だけで動作しています。
ThinkPad X121e (Precise 571 / Tahr 605 / Tahr64 606 / Xenial 7.5 / Bionic32)
CPU AMD C-50 1.0GHz, RAM 4GB
ThinkPad L440 (Xenial 7.5 / Bionic64 / Fossa64)
CPU intel Celeron 2950M 2.0GHz, RAM 4GB
返信する