Debianではapt-getじゃなくてaptitudeを推奨
ここを読んでて知ったのですが、Debianではetchからパッケージ管理のフロントエンドとして apt-get じゃなくて aptitude を推奨するようになっていたのですね。依存関係がなくなった時点でパッケージを削除したり、推奨レベルのパッケージを一緒にインストールすることができるのが理由っぽい。
しばらくDebianの情報集めをしていなかったので、すっかり浦島太郎状態です…
ここを読んでて知ったのですが、Debianではetchからパッケージ管理のフロントエンドとして apt-get じゃなくて aptitude を推奨するようになっていたのですね。依存関係がなくなった時点でパッケージを削除したり、推奨レベルのパッケージを一緒にインストールすることができるのが理由っぽい。
しばらくDebianの情報集めをしていなかったので、すっかり浦島太郎状態です…
SSDの寿命が本当に短いのか実験していないので何とも言えませんが、Ubuntu LinuxでSSDの寿命を延ばすために行なった設定を書いておきます。本当に延びるかは謎です。
swap領域をSSDに作ってしまうと、仮想メモリを割り当てる際にSSDに書き込みをしてしまうのでこれは避けましょう。また、/etc/sysctl.conf に以下を追記してOSごと再起動します。(再起動の代わりに sysctl -p で即時に反映することもできます)
vm.swappiness = 0この設定をするとswapにページアウトしにくくなります。
Ubuntuはデフォルトでは書き込み処理はすべてメモリ上にキャッシュされ、これを5秒に1回ディスクに書き込むという仕組みになっているらしいです。なので、このキャッシュを書き込む頻度を5秒から15秒にします。具体的には /etc/sysctl.conf に以下の行を追加します。
vm.dirty_writeback_centisecs = 1500設定したら sysctl -p するかOSごと再起動しましょう。
locateコマンドのデータベースを作成する mlocate はデフォルトでは /etc/cron.daily にあるので1日1回動いてしまいます。これが動くと大量のディスク書き込みが発生するので、locateのデータベースを最新にしなくても良い場合、この mlocate は /etc/cron.weekly にでも移動しておきます。
/tmpは再起動するとどうせ消えるデータなので、SSDへの書き込みを少なくするために tmpfs でマウントするようにします。具体的には /etc/fstab にイカの行を追記して再起動します。
tmpfs /tmp tmpfs defaults,size=512m 0 0
512m(=512MB)となっているところはお好みのサイズにしてください。
デフォルトでは読み込みが発生する度にファイルの最終アクセス時刻が更新されてしまいますが、これも寿命を縮めてしまうので、noatimeオプションを導入します。(ただし、アクセス時刻を記録したい場合はこのオプションは導入しないでください)
具体的には /etc/fstab で
UUID=8bac1db5-e2c6-495f-b3ce-7390dea9392a / ext3 relatime,errors=remount-ro 0 1
と relatime となっているところを noatime にします。
UUID=8bac1db5-e2c6-495f-b3ce-7390dea9392a / ext3 noatime,errors=remount-ro 0 1
Ubuntu Linux 9.04(Jaunty Jackalope) のサーバ版をインストールした直後にやっておくべき作業の4つを覚え書きとしてまとめておきます。
サーバ用途でDHCPというのはありえないので、固定IPに設定します。/etc/network/intafacesをエディタで開いて、まずDHCPでIPが自動に割り振られないように下記をコメントアウト。
iface eth0 inet dhcp
↓
#iface eth0 inet dhcpさらにstatic IPの設定をします。下記設定は私のネットワーク環境での設定なので、実際のIPアドレスなどはご自身のものに読み替えてください。
iface eth0 inet static # インタフェース名 eth0 を設定 address 192.168.1.2 # IPアドレス netmask 255.255.255.0 # ネットマスク network 192.168.1.0 # ネットワークアドレス broadcast 192.168.1.255 # ブロードキャストアドレス gateway 192.168.1.1 # ゲートウェイアドレス
終わったらネットワークインターフェースを再起動します。
$ sudo /etc/init.d/networking restart
リリース直後にディストリビューションを新しいバージョンにアップデートした場合を除いて、パッケージが多々更新されているのでアップデートしておきます。
$ sudo aptitude update
セキュリティ的には良くない設定ですが、sudo する際にパスワードを入力するのは面倒なので、特定のアカウントだけパスワードなしで sudo できるようにします。
$ sudo su - # export EDITOR=vi # visudo
して
accountname ALL=(ALL) NOPASSWD: ALL
を追記します。accountnameのところは自分のものに読み替えてください。また、
%admin ALL=(ALL) ALL
となっているところはコメントアウトします。なお、デフォルトだとエディタがnanoになっているので、export EDITOR=vi して visudo した時に vi が立ち上がるようにしています。
まず /etc/init.d/ 配下のdaemonの起動を制御する sysv-rc-conf というパッケージを入れておきます。
$ sudo apt-get install sysv-rc-conf
そして
$ sudo sysv-rc-confで起動して、不要そうな daemon で X の目印がついているところを SPACEキーで X を外します。私は以下のdaemonを止めました。
先週購入したSSDのマシンを組み立てました。SSDは2.5インチなので3.5インチ用のマウンタを買ったのですが、けっきょくネジをちゃんと締めれば必要なかったり、SATAのポートが2本しかないのにDVD-ROMがSATA接続だったり色々トラブルがあって5時間近くかかってしまいました。あと今回買ったShuttleのケースはなんとCPUファンじゃなくヒートシンクのみの構成でした。
セットアップは無事完了したので、このマシンにUbuntu 9.04 Server版(amd64)をインストール。通常の7200RPMのHDDでhdparmした結果とSSDのマシンでhdparmした結果はこんな感じ。
### HDDのマシン $ sudo hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 174 MB in 3.01 seconds = 57.84 MB/sec
### SSDのマシン $ sudo hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 418 MB in 3.01 seconds = 138.86 MB/sec
すごい、2倍以上違う。さらにSSDはHDDより圧倒的に静かで軽いです。大きさも手のひらサイズでした。
そして極めつけはUbuntuが起動するまでに約15秒しかかからないことでしょうか。え、もう起動したの?なんかバグってるんじゃない?っていうぐらい速かったです。今回購入したSSDはSilicon PowerのSP064GBSSD650S25で、いわゆる「プチフリ」するJMicronのJMF602のコントローラを積んでいるらしいのですが、プチフリ現象は今のところ起きてません。どのぐらい寿命が持つのかはわかりませんが、この速さは一度体感したら元には戻れない感じです。
本の最後の方は「IT日報」をどう活用するか、という話が多い気がしましたが、この人はIT日報エバンジェリストみたいなので、ここは話半分で読みました。全体的には非常にポイントがわかりやすく、色々勉強になった本でした。
このサイトがある自宅サーバが購入から3年を迎えたので、マシンの買い替えを検討。Pentium Dual-Core系でいくかAthlon X2でいくかで悩みましたが、省電力性と価格でAthlon X2 5050eで行くことに決めました。構成としては以下のスペックで、(64GBのSSDを買ったのに)なんと4万9000円に抑えられました。
先ほど全部ネットで注文して配達は今週末。さてどのぐらいのマシンパワーが出るのか非常に楽しみです。特にSSD化した時のMySQLの速度が気になります。
MySQLのデータベースをバックアップする際にmysqldumpを使用しますが、個人的に「これはつけたらよさそう」と思っているオプションを紹介します。
–quick –add-drop-table –add-locks –extended-insert –lock-tables を指定するのと同じです。ダンプしたデータをMySQL サーバに読み込むための最速ダンプを提供します。(マニュアルそのまんま)
ダンプする際に先頭にBEGINをつけるため、ダンプ時のデータのトランザクションの一貫性を保つことができます。ただしInnoDBなどのトランザクションが有効なストレージエンジンではないと意味がないです。
ダンプを開始する前に、MySQL サーバ内のログファイルをフラッシュします。バイナリログを保存するような設定になっている場合はこれがフラッシュされます。ダンプしたデータとバイナリログを使用してデータを復元する場合に有用です。
CHANGE MASTER TOコマンドをダンプの先頭に付加します。–master-data=2を指定するとCHANGE MASTER TOがコメントアウトされた状態になります。–maser-data=1と指定するとコメントアウトされずにダンプされます。
ダンプする際の文字コードを指定します。
バイナリ型のデータをエスケープ処理を行わずに実際に格納された値の16進表記でダンプします。 これを指定しないと default-character-set がSJIS系の場合エスケープ処理に失敗し、バイナリデータが壊れてしまう場合があります。
自分はこんな感じでバックアップをとっています。
$ mysqldump -uroot -pxxxxxxxx --opt --flush-logs --single-transaction --master-data=2 --default-character-set=utf8 --hex-blob <database>
コメント