オススメ

Linux SWAP をパーテションでなくファイルに設定[3分クッキング]

これだけ知っていればLinuxのSWAP設定では困らないハズ[3分クッキング]とSWAP高速化[追記]

1週間ぐらい起動しっぱなしでこんなかんじ。

Ryzen3600Xに変更していろいろ変えたので、考え方も少し変わりましたので一部改稿しました。

標準で不満のない場合は、デフォルトでいいかと思います。(ManjaroLinux 及び ubuntu18.04LTS等どのディストロでも同じです。

LinuxMintでSWAP指定なしでインストールしてみたところ、デフォルトでファイル型SWAPを少し作りました。)

DDR4メモリーもやっと安くなったので(2019-03-28)、メモリーを足すのが一番ですね。
超高騰していた2018年初頭に比べて半値になっています。

ミニ知識というか7つの見解::Swap戦略

  1. スワップはぎりぎり(搭載メモリ+ほんの少しプラスアルファ)サイズよりも大きいほうがハイバネなどが速くなるようだ。余裕があればメモリーの2.0倍などにする。例:16GB(搭載RAM)なら32GB(SWAP)程度など。
  2. だからといって、M2.SSDは貴重なのでめったに使わないSWAPならHDD上でもいいのではないか。SSDが余っており2台あるなら、余っているほうにSWAPを設定してみるといいかもしれない。
  3. 複数のスワップを指定でき同時に利用できる。いくらでもOK。
  4. 複数のそれぞれの優先度なども変更できる。かなり柔軟。
  5. 搭載メモリーがじゅうぶん(たとえば16GBでブラウジング程度の使い方)で、ハイバネも必要ないなら、SWAPは無効でよい。むしろいらない。
  6. メモリーがじゅうぶんであれば、ZRAMは不要。2GBの以下の人は考慮。
  7. fstabの同一プライオリティで、SWAPをふたつ設定すると、RAID0みたいな効果がデフォルトで働くらしい。archwiki.

リアルタイムっぽい処理とスワップ、Jackなどでぎしぎしと使うぜって場合

Bitperfectを狙うなら、SWAPはないほうがよい。十分なメモリーさえあればいい。

How to make SWAP File::設定手順 5つのコマンドで完了します。

swapfileはWindowsのpagefile、hiberfil だとかそのあたりみたいなものだと思っておけばだいたい間違いないです。

以下、Windows10(RAWインストール)を見てみました。それっぽいファイルは3つです。合計してみると巨大なんですよね。
  •  hiberfil.sys Windwos10でハイバネしない人には不要。
  •  pagefile.sys Windows3.1の頃からこの名前
  •  swapfile.sys 名前のままの期待役割

さて、Linuxの話に戻ります。例として、/media/Working  というマウントに対して、そのルートにスワップファイル /media/Working/swapfile を作成し有効にしてみます。

新規端末 CTRL+ALT+T
1) スワップファイル(にする前のファイル)を 
32GBにする例::空ファイルを作ると思えばいいです。名前はなんでもいい。
$ sudo fallocate -l 32G /media/Working/swapfile

2)パーミッションを変更する。この時点ではまだ役立たずの実質能無しファイル。
$ sudo chmod 600 /media/Working/swapfile 

3)さきほど作ったファイルの中身をスワップファイルにする。やっとswapファイルに変化しました。Swapファイルの誕生です。
$ sudo mkswap /media/Working/swapfile 
スワップ空間バージョン 1 を設定します。サイズ = 32 GiB (34359734272 バイト)
ラベルはありません, UUID=8dce31da-055c-4649-949e-941e967489aa

※ラベルは必要ありません。

4)スワップファイルを明示指定して、onにする。
$ sudo swapon /media/Working/swapfile 

5)恒久的にスワップファイルを有効にするために、fstabを編集する。
$ sudo gedit /etc/fstab

追記 最終行にでも。 これで再起動してもOK。

/media/Working/swapfile none swap defaults 0 0





おまけ::当方の場合 LVM に設定しています。

パーテション指定従来方式) lvmから切り出したスワップパーテーション(50GB)があったのを思い出した(わざとらしい)のでそちらを有効にする。

#lvm上のswap区画を指定して有効にします。fstabに追記。

/dev/lvm-second/swaproom none swap defaults 0 0

おまけ2::システムモニターなどでも視覚的に確認できますが。
次のコマンド1行でもswapは確認できます。

/dev/lvm-second/swaproom がswapとして使われているか?!

$ cat /proc/swaps
Filename

/dev/dm-3                               partition

LVM(ボリュームマネージャからの切り出し)なので。
パーテションが固定なら、/dev/dm-3  という指定でもいいかと思いますが、名前で管理するほうが楽なので 

追記::ストレージ構成を大きく変更して、EXT4 on LVM(HDD) と RAWなBTRFS(RAID0)にしたため、現在の自分の環境ではlvm上にSWAPファイルを一つ作成しています。SSDにおいていたSWAPは削除しました。メモリーとNVMeを近い時期に購入しますので暫定ですね。


オススメ 追記::2つ以上のswapを使う戦略

同一プライオリティなら、ストライピングと同じ効果が得られる。
pri=99 などを明示的に指定するとわかりやすくていい。

翻って、優先順位を変えることもできる。可能なかぎり高速にSWAPする。

例: NVMe と SATA SSD のそれぞれにSwapを作成し、NVMe優先で使う。

#上、高速(NVMe      3000MB/s)
#下、低速(SATA SSD   500MB/s)
/home/swapfile
/media/Working/swapfile none    swap    defaults,pri=9

Swap優先度を同じにする。ストライピングになる。この構成の場合はかえって遅くなる。

/home/swapfile                  none    swap    defaults,pri=99
/media/Working/swapfile none    swap    defaults,pri=99

最近の大事な発見、というか当り前の再認識

概ねリード3000MB/s以上で高速に動作するNMVeなら、SATAなSwapに比べて、Swapしてもかなり円滑なデスクトップ操作が維持できる。大発見、感動。

これを踏まえた結論::
メモリーが安くなったので、メモリーを買えばいいです。笑)
でもかなりいい線行きますよ。あたりまえの話ですが。

NVMeに乗り換えたのにうっかりSWAPをHDDなどに指定したままの人はチェックしてみてください。

デスクトップ用途のLinuxでは、32GB積んでいれば、SWAPにがんがん入るようなケースはまずないと思います。16GBの人は考えどころでしょう。


How to install Cinnamon DE on ubuntu 18.04 LTS

ubuntu18.04 Bionic Beaver にCinnamon DesktopEnvironmentを導入する

所感

4ヶ月ほど使っています。安定度も高く、おそらくCinnamon環境としてはかなりよいかと思います。
Linux Mint は結局導入していません。少なくとも、ManjaroCinnamon(コミュニティ版)よりも動画再生などの遅延などが目立ちません(これ大事です。特に4Kではだめ)。どうもCinnamonは遅いんですよね。使い勝手はいちばん好きなDEなのですが。

少なくともCinnamon環境では、  ubuntu18.04LTS+PPA Cinnamon >> ManjaroCinnamon
と評価できるような気がします。Cinnamon本家のLinuxMintは今のところ当方では不要なので評価外です。

安定版PPA(ppa:embrosyn/cinnamon)を導入します。ナイトリービルドもあります。

新規端末 CTRL+ALT+T

PPAでの導入です。3行でOK。

$ sudo add-apt-repository ppa:embrosyn/cinnamon
$ sudo apt-get update
$ sudo apt install cinnamon-desktop-environment lightdm


https://launchpad.net/~embrosyn/+archive/ubuntu/cinnamon/


以下余談

万が一、足りなければ...以下のコマンドでリストしてみました。

$ dpkg -l | grep cinnamon
以下が入っていれば他も依存環境でうまいこと入るかと思います。
 cinnamon 
 cinnamon-common 
 cinnamon-control-center 
 cinnamon-control-center-data 
 cinnamon-desktop-data 
 cinnamon-l10n 
 cinnamon-screensaver 
 cinnamon-session 
 cinnamon-session-common 
 cinnamon-settings-daemon 


冗長2:: だから、以下でもうまいこといくかと思います。
sudo apt  install cinnamon-desktop-environment  cinnamon  cinnamon-common  cinnamon-control-center  cinnamon-control-center-data  cinnamon-desktop-data  cinnamon-l10n  cinnamon-screensaver  cinnamon-session  cinnamon-session-common  cinnamon-settings-daemon

linkchecker リンク切れをチェックする。http://wummel.github.io/linkchecker/

端末叩くほうが効率が良いと思った日。最高気温予測38度の大阪にて。

リンク切れとなっている「ページ」はだいたい「404 Not Found」と表示されます。ブログでもなんでも小さなサイトでも、サイトを運営していれば定期的にリンク切れないかチェックしておく必要がありますが、めんどうなんですよね。当方も年に一度やればいいほうです。ブログなどで自動化された仕組みであっても、自分が書き換えてしまったらだめですからね。そこは注意でしょうか。

いくつか、Webサービスのものも含めて、不良リンクを探してくれるツールを使ってみました。当方は、Python2で書かれた以下を使うことに決めました。以前は慣れたwgetを使っていたのですが、下記ツールが示してくれる「Parent URL (つまりダメなリンクが書かれているページ)」を抽出してくれないので、手間なんですよね。

http://wummel.github.io/linkchecker/

インストールします。ArchLinux系(manjaro)で、Linkcheck とpamacで入力してでてきたのチェックします。GUIは動作しませんでした。
Manjaroの場合


Windowsでも使えるようです。WSLなら確実かと思います。

新規端末 CTRL+ALT+T

使い方の基本 コマンド URL  

$ linkchecker https://poor-user.blogspot.com/

画面と同時に テキストに保存されていきます。
$ linkchecker https://poor-user.blogspot.com/ | tee myblog.txt
直後に、このテキストを使います。スクロールバックでも良いですが。

404を訂正します。その前に見つけましょう。大量にある場合はスクロールはつらいので。

$ grep -B 5 'Result     Error: 404 Not Foundmyblog.txt

これでカンタンですね。結果的に不良404チームのブロック毎に、表示されますから、楽勝です。これは今エアプレイでして、実際にこのブログには現在リンク切れなどがありません。

ヒットしたら、上5行を表示するというgrepコマンドです。オプションは適宜触ってみてください。このままで困らないとは思います。

表示がなければ、404エラーはないということです。Unixコマンドは「便りがないのはよい便り哲学」で出来ています。この場合もだいたい合ってるかも。


404 の場合、リンク作成ミスなので、訂正します。

URL        `https://poor-user.blogspot.com/2018/06/eac-wavapetakttaflaccue-flac2.html'
Name       `EACやそのケーススタディ(2)'
Parent URL https://poor-user.blogspot.com/2018/, line 1651, col 39
Real URL   https://poor-user.blogspot.com/2018/06/eac-wavapetakttaflaccue-flac2.html
Check time 0.493 seconds
Result     Error: 404 Not Found
10 threads active,   261 links queued, 2162 links in 2433 URLs checked, runtime 56 seconds
    Parent URL 誤記リンクが書かれているページ
    Real URL   誤記リンクそのもの
ですから、
◎ Parent URLを開いて、
◎ Real URL   誤記リンクそのものを訂正します。

手作業。機械的に生成した場合今時ミスはないので、だいたい人間が編集した場合ですよね。