<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>へびにっき &#187; 未分類</title>
	<atom:link href="http://wp.serpere.info/archives/category/uncategorized/feed" rel="self" type="application/rss+xml" />
	<link>http://wp.serpere.info</link>
	<description>樹上で暮らすヘビのように生きたい</description>
	<lastBuildDate>Sat, 04 Feb 2012 13:25:38 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>muninの集計負荷をtmpfsで低減する（集計時間の短縮も）</title>
		<link>http://wp.serpere.info/archives/2272</link>
		<comments>http://wp.serpere.info/archives/2272#comments</comments>
		<pubDate>Tue, 19 Jul 2011 12:45:21 +0000</pubDate>
		<dc:creator>tkykmw</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[サーバ管理]]></category>

		<guid isPermaLink="false">http://wp.serpere.info/?p=2272</guid>
		<description><![CDATA[リソース監視ツールのmuninは手軽に使えて素晴らしいのだが、監視対象のサーバが増えてくると集計サーバの負荷（主にディスクI/O）が馬鹿にならなくなってくる。そこでこちらのサイトを参考にして、データファイルとHTMLファイルをtmpfs上に移動してみた。 環境 CentOS 6 munin-1.4.5 (EPELリポジトリからインストール） メモリ: 8GB データファイルとHTMLファイルの場所は /etc/munin/munin.conf の dbdir と htmldir で変更できる…はずなのだが、プラグインの中には /var/lib/munin のパスを決め打ちにしているものがあるらしく、dbdir を変更するとうまく動かなかった。仕方がないのでHTMLファイルを /var/lib/munin 以下に移動して、tmpfs を /var/lib/munin にマウントすることにした。 まずHTMLファイルを移動する。以下の操作はroot権限で、muninの集計を停止してから行う。 muninの集計を止めるには、munin-cronの実行権限を外すか、/etc/cron.d/munin を編集してcronによる定期実行を止める。 # munin-cronの停止 chmod ugo-x /usr/bin/munin-cron &#160; # 念のためmuninプロセスが動いていないか確認しておく ps aux &#124; grep munin 次にHTMLファイルをディレクトリごとコピー、そのパスにあわせてmuninとApacheの設定を変更する。 cp -a /var/www/html/munin/ /var/lib/munin/html &#160; vim /etc/munin/munin.conf # htmldir /var/lib/munin/html &#160; vim /etc/httpd/conf.d/munin.conf # 私の環境ではcgiディレクトリは [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwp.serpere.info%252Farchives%252F2272%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22munin%E3%81%AE%E9%9B%86%E8%A8%88%E8%B2%A0%E8%8D%B7%E3%82%92tmpfs%E3%81%A7%E4%BD%8E%E6%B8%9B%E3%81%99%E3%82%8B%EF%BC%88%E9%9B%86%E8%A8%88%E6%99%82%E9%96%93%E3%81%AE%E7%9F%AD%E7%B8%AE%E3%82%82%EF%BC%89%22%20%7D);"></div>
<p>
リソース監視ツールのmuninは手軽に使えて素晴らしいのだが、監視対象のサーバが増えてくると集計サーバの負荷（主にディスクI/O）が馬鹿にならなくなってくる。そこで<a href="http://www.glidenote.com/archives/1054">こちらのサイト</a>を参考にして、データファイルとHTMLファイルをtmpfs上に移動してみた。
</p>
<h3>環境</h3>
<ul>
<li>CentOS 6</li>
<li>munin-1.4.5 (EPELリポジトリからインストール）</li>
<li>メモリ: 8GB</li>
</ul>
<p>
データファイルとHTMLファイルの場所は /etc/munin/munin.conf の dbdir と htmldir で変更できる…はずなのだが、プラグインの中には /var/lib/munin のパスを決め打ちにしているものがあるらしく、dbdir を変更するとうまく動かなかった。仕方がないのでHTMLファイルを /var/lib/munin 以下に移動して、tmpfs を /var/lib/munin にマウントすることにした。
</p>
<p>
まずHTMLファイルを移動する。以下の操作はroot権限で、muninの集計を停止してから行う。
</p>
<p>
muninの集計を止めるには、munin-cronの実行権限を外すか、/etc/cron.d/munin を編集してcronによる定期実行を止める。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># munin-cronの停止</span>
<span style="color: #c20cb9; font-weight: bold;">chmod</span> ugo-x <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>munin-cron
&nbsp;
<span style="color: #666666; font-style: italic;"># 念のためmuninプロセスが動いていないか確認しておく</span>
<span style="color: #c20cb9; font-weight: bold;">ps</span> aux <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> munin</pre></div></div>



<p>
次にHTMLファイルをディレクトリごとコピー、そのパスにあわせてmuninとApacheの設定を変更する。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #660033;">-a</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>html<span style="color: #000000; font-weight: bold;">/</span>munin<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>munin<span style="color: #000000; font-weight: bold;">/</span>html
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>munin<span style="color: #000000; font-weight: bold;">/</span>munin.conf
<span style="color: #666666; font-style: italic;"># htmldir /var/lib/munin/html</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>httpd<span style="color: #000000; font-weight: bold;">/</span>conf.d<span style="color: #000000; font-weight: bold;">/</span>munin.conf
<span style="color: #666666; font-style: italic;"># 私の環境ではcgiディレクトリは /var/www/munin/cgi に移してあるので</span>
<span style="color: #666666; font-style: italic;"># ScriptAlias /munin/cgi/ /var/www/munin/cgi/</span>
<span style="color: #666666; font-style: italic;"># Alias /munin/ /var/lib/munin/html/</span></pre></div></div>



<p>
ここまで終えたら一旦muninの集計を再開し、正しく動くことを確認しておく。確認できたら再び集計を停止して、tmpfsの設定に移る。tmpfsに割り当てる容量だが、とりあえず参考サイトに従って1GBとした。二十数サーバを数年間監視した結果のデータ+HTMLファイルが300MB弱だったので、1GBあれば当分は大丈夫だろう。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>fstab
<span style="color: #666666; font-style: italic;">#tmpfs  /var/lib/munin  tmpfs  rw,size=1024M   0 0</span></pre></div></div>



<p>
一旦データを退避してから /var/lib/munin にtmpfsをマウントし、退避しておいたデータを戻す。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>munin <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>munin.backup
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>munin
<span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>munin
<span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #660033;">-a</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>munin.backup<span style="color: #000000; font-weight: bold;">/*</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>munin<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>



<p>
これでmuninが更新するファイルは全てメモリ上に置かれることになった。が、このままだとマシンが再起動されるとデータが消滅してしまうので、バックアップ策を講じる必要がある。参考サイトではcronを使って1時間ごとにバックアップを行っているが、それだと更新中の不完全なデータがバックアップされる危険性がある。そもそもmuninの集計はcronで5分ごとに実行されるのだから、次のような方針でバックアップ/リストアをすることにした。
</p>
<ul>
<li>30分に一回、集計の「後に」データをバックアップする</li>
<li>毎回、集計の「前に」データの有無をチェックして、なければデータをリストアする。このチェックは単純にファイルの有無を調べるだけなので、5分ごとに実行しても負担にはならない</li>
</ul>
<p>
このためにmunin-cronをラップする次のようなシェルスクリプトを書いた。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
&nbsp;
<span style="color: #007800;">rsync</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>rsync
<span style="color: #007800;">munin_cron</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>munin-cron
<span style="color: #007800;">munin_dir</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>munin
<span style="color: #007800;">backup_dir</span>=<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>munin<span style="color: #000000; font-weight: bold;">/</span>backup
<span style="color: #007800;">lock_file</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>munin-cron-backup.lock
&nbsp;
die<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$1</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
lock<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #7a0874; font-weight: bold;">test</span> <span style="color: #660033;">-e</span> <span style="color: #007800;">$lock_file</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> die <span style="color: #ff0000;">&quot;Backup/retore process is already runnning&quot;</span> 
        <span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #007800;">$lock_file</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
unlock<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$lock_file</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
backup<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        lock <span style="color: #000000; font-weight: bold;">||</span> die <span style="color: #ff0000;">&quot;Failed to lock the backup process&quot;</span>
        <span style="color: #007800;">$rsync</span> <span style="color: #660033;">-au</span> <span style="color: #007800;">$munin_dir</span><span style="color: #000000; font-weight: bold;">/</span> <span style="color: #007800;">$backup_dir</span><span style="color: #000000; font-weight: bold;">/</span>
        unlock
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
restore<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        lock <span style="color: #000000; font-weight: bold;">||</span> die <span style="color: #ff0000;">&quot;Failed to lock the restore process&quot;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #ff0000;">&quot;(&quot;</span> <span style="color: #660033;">-e</span> <span style="color: #007800;">$munin_dir</span><span style="color: #000000; font-weight: bold;">/</span>datafile <span style="color: #660033;">-a</span> <span style="color: #660033;">-d</span> <span style="color: #007800;">$munin_dir</span><span style="color: #000000; font-weight: bold;">/</span>html <span style="color: #ff0000;">&quot;)&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
                <span style="color: #007800;">$rsync</span> <span style="color: #660033;">-au</span> <span style="color: #007800;">$backup_dir</span><span style="color: #000000; font-weight: bold;">/</span> <span style="color: #007800;">$munin_dir</span><span style="color: #000000; font-weight: bold;">/</span>
        <span style="color: #000000; font-weight: bold;">fi</span>
        unlock
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
restore
&nbsp;
<span style="color: #7a0874; font-weight: bold;">test</span> <span style="color: #660033;">-x</span> <span style="color: #007800;">$munin_cron</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #007800;">$munin_cron</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;$1&quot;</span> = <span style="color: #ff0000;">&quot;backup&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        backup
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>



<p>
このスクリプトでは datafile というファイルと html ディレクトリの存在をもって、「データが存在する」と判断する。一応、同時実行を避けるための簡易的なロックも付けてみた。5分に一回しか実行されないと分かっているのだから、この程度でも多少は意味があるだろう。各種コマンドやバックアップ先などのパスは好みで変えて欲しい。私はこのシェルスクリプトやバックアップを /home/munin 以下にまとめることにした。
</p>
<p>
あとはmunin-cronの代わりに、/etc/cron.d/munin の中でこのスクリプトを実行するよう設定する。30分に一回は引数に backup を与えて実行することで、バックアップが作成される。
</p>
<pre>
MAILTO=root

0,30 * * * * munin /home/munin/bin/munin-cron.sh backup
5,10,15,20,25,35,40,45,50,55 * * * * munin /home/munin/bin/munin-cron.sh
</pre>
<p>
リストアは集計前に勝手に行われるので、再起動しても何もしなくていい。
</p>
<p>
最後に実施前後のCPU使用率のグラフを載せておく。確かにI/O待ちはガクンと減った（ちょっとだけ出ているのはバックアップ）。
</p>
<div id="attachment_2287" class="wp-caption alignnone" style="width: 310px"><a href="http://wp.serpere.info/wp-content/uploads/2011/07/cpu-week.png"><img src="http://wp.serpere.info/wp-content/uploads/2011/07/cpu-week-300x219.png" alt="" title="munin-cpu-week" width="300" height="219" class="size-medium wp-image-2287" /></a><p class="wp-caption-text">CPU使用率の変化</p></div>
<p>
それから集計に要する時間も多少は短縮されたようだ。もっともネットワーク経由でクライアントに接続する部分がボトルネックになっているようなので、あまり結果は安定していない。
</p>
<div id="attachment_2290" class="wp-caption alignnone" style="width: 310px"><a href="http://wp.serpere.info/wp-content/uploads/2011/07/munin_stats-week.png"><img src="http://wp.serpere.info/wp-content/uploads/2011/07/munin_stats-week-300x190.png" alt="" title="munin_stats-week" width="300" height="190" class="size-medium wp-image-2290" /></a><p class="wp-caption-text">munin集計時間の変化</p></div>
]]></content:encoded>
			<wfw:commentRss>http://wp.serpere.info/archives/2272/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eee PC 1015PEMにUbuntu 10.10インストール（無線LANの問題解消）</title>
		<link>http://wp.serpere.info/archives/2153</link>
		<comments>http://wp.serpere.info/archives/2153#comments</comments>
		<pubDate>Fri, 08 Apr 2011 14:29:09 +0000</pubDate>
		<dc:creator>tkykmw</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://wp.serpere.info/?p=2153</guid>
		<description><![CDATA[追記（11.10用） 下記の設定を行った状態で11.10にアップデートしたら無線LANが認識されなくなった。/etc/modprobe.d/blacklist.conf で次の1行をコメントアウトして再起動したら復活した。 #blacklist rt2800pci &#8230; ASUSのネットブックEee PC 1015PEMを買った。標準で入っていたWindows 7 Starterを使う気はさらさらなかったので、リカバリ領域をUSBメモリにバックアップした後、HDD丸ごと使ってUbuntuをインストールした。もうすぐ11.04が出るのだが、とりあえず10.10を選択。 1015PEMには光学ドライブはないのでインストールはUSBメモリから。手順はUbuntu公式の「Netbook」のダウンロードページに書いてある。まずWindowsでUniversal USB Installerをダウンロードして、次にUbuntu Japanese Teamのサイトから10.10 Desktop 日本語Remixのisoイメージを落とし、Universal USB Installerを起動してUSBメモリに書き込んだ。 あとはUSBメモリを刺して起動時にBIOSでboot deviceを指定、画面に従ってインストールするだけ。ちなみにこのときUSBメモリから直接起動して動作をテストすることもできるが、その動作は実際にインストールしたときの動作とは必ずしも一致しないことに注意。私の場合、この方法で起動すると無線LANが全く繋がらなかったり、日本語入力が使えなかったりした。 インストール自体は30分ほどで終了。早速無線LANに繋いでソフトウェアアップデートをかけるが、どうもネットワークの速度が遅い。pingを打ってみると30%〜ほどのパケットが欠落している。有線LANに繋ぎ変えると正常なので、明らかに無線LANがおかしい。Windows 7で使ったときには正常だったから、問題は無線LANアダプタのドライバだろうと当たりをつけて調査開始。 結論から言うと、次の操作を行うことで解消した： /etc/modprobe.d/blacklist.conf に以下の内容を追記して、マシンを再起動。 blacklist rt2800pci blacklist rt2800lib blacklist rt2800usb blacklist rt2x00usb blacklist rt2x00pci blacklist rt2x00lib 問題を解消するにあたってはこのページが非常に役に立った。 Ubuntu 10.04 LTS でEeePC 1015PEMで無線LANを使う(Ralink RT3090) &#8211; Ubuntuスタイル まずlspciコマンドを実行してみると、確かにRaLink社のRT3090というアダプタが搭載されているのが確認できた。そこでRaLink社のサイトを見に行ったところ、Linux用のドライバが配布されていたので、早速「RT3090」用のファイルをダウンロードした。zipファイルを展開して中を見てみると、このドライバは「RT2860STA」という名称だと判明した。 ここでインストールする前に念のため lsmod &#124; grep rt で現在読み込まれているドライバを確認してみたところ、既にrt2860staは読み込まれている、つまりUbuntu [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwp.serpere.info%252Farchives%252F2153%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Eee%20PC%201015PEM%E3%81%ABUbuntu%2010.10%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%EF%BC%88%E7%84%A1%E7%B7%9ALAN%E3%81%AE%E5%95%8F%E9%A1%8C%E8%A7%A3%E6%B6%88%EF%BC%89%22%20%7D);"></div>
<p>
<strong>追記（11.10用）</strong> 下記の設定を行った状態で11.10にアップデートしたら無線LANが認識されなくなった。/etc/modprobe.d/blacklist.conf で次の1行をコメントアウトして再起動したら復活した。
</p>
<pre>
#blacklist rt2800pci
</pre>
<p>&#8230;</p>
<p>
ASUSのネットブック<a href="http://www.amazon.co.jp/1015PEM-Office-2011%E5%B9%B4%E7%89%88%E5%85%89%E6%B2%A2%E6%B6%B2%E6%99%B6%E3%83%A2%E3%83%87%E3%83%AB-10-1%E5%9E%8B%E3%83%AF%E3%82%A4%E3%83%89TFT%E3%82%AB%E3%83%A9%E3%83%BC%E6%B6%B2%E6%99%B6-EPC1015PEM-MOWH/dp/B004KC32DQ%3FSubscriptionId%3DAKIAJUX5XJO3NQFNQ4TQ%26tag%3Dhebinikki09-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB004KC32DQ">Eee PC 1015PEM</a>を買った。標準で入っていたWindows 7 Starterを使う気はさらさらなかったので、リカバリ領域をUSBメモリにバックアップした後、HDD丸ごと使ってUbuntuをインストールした。もうすぐ11.04が出るのだが、とりあえず10.10を選択。
</p>
<p>
1015PEMには光学ドライブはないのでインストールはUSBメモリから。手順はUbuntu公式の「Netbook」の<a href="http://www.ubuntu.com/netbook/get-ubuntu/download">ダウンロードページ</a>に書いてある。まずWindowsで<a href="http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/">Universal USB Installer</a>をダウンロードして、次にUbuntu Japanese Teamのサイトから<a href="http://www.ubuntulinux.jp/News/ubuntu1010-desktop-ja-remix">10.10 Desktop 日本語Remix</a>のisoイメージを落とし、Universal USB Installerを起動してUSBメモリに書き込んだ。
</p>
<p>
あとはUSBメモリを刺して起動時にBIOSでboot deviceを指定、画面に従ってインストールするだけ。ちなみにこのときUSBメモリから直接起動して動作をテストすることもできるが、その動作は実際にインストールしたときの動作とは必ずしも一致しないことに注意。私の場合、この方法で起動すると無線LANが全く繋がらなかったり、日本語入力が使えなかったりした。
</p>
<p>
インストール自体は30分ほどで終了。早速無線LANに繋いでソフトウェアアップデートをかけるが、どうもネットワークの速度が遅い。pingを打ってみると30%〜ほどのパケットが欠落している。有線LANに繋ぎ変えると正常なので、明らかに無線LANがおかしい。Windows 7で使ったときには正常だったから、問題は無線LANアダプタのドライバだろうと当たりをつけて調査開始。
</p>
<p>
結論から言うと、次の操作を行うことで解消した：
</p>
<p>
/etc/modprobe.d/blacklist.conf に以下の内容を追記して、マシンを再起動。
</p>
<pre>
blacklist rt2800pci
blacklist rt2800lib
blacklist rt2800usb
blacklist rt2x00usb
blacklist rt2x00pci
blacklist rt2x00lib
</pre>
<p>
問題を解消するにあたってはこのページが非常に役に立った。
</p>
<p>
<a href="http://www.ubuntustyle.net/ubuntustyle/index.php?Ubuntu%2010.04%20LTS%20%E3%81%A7EeePC%201015PEM%E3%81%A7%E7%84%A1%E7%B7%9ALAN%E3%82%92%E4%BD%BF%E3%81%86%28Ralink%20RT3090%29">Ubuntu 10.04 LTS でEeePC 1015PEMで無線LANを使う(Ralink RT3090) &#8211; Ubuntuスタイル</a>
</p>
<a href="http://wp.serpere.info/wp-content/uploads/2011/04/console-rt3090.png"><img src="http://wp.serpere.info/wp-content/uploads/2011/04/console-rt3090-300x175.png" alt="" title="Ubuntu 10.10 console" width="300" height="175" class="alignnone size-medium wp-image-2156" /></a>
<p>
まずlspciコマンドを実行してみると、確かにRaLink社のRT3090というアダプタが搭載されているのが確認できた。そこでRaLink社のサイトを見に行ったところ、<a href="http://www.ralinktech.com/support.php?s=2">Linux用のドライバ</a>が配布されていたので、早速「RT3090」用のファイルをダウンロードした。zipファイルを展開して中を見てみると、このドライバは「RT2860STA」という名称だと判明した。
</p>
<p>
ここでインストールする前に念のため lsmod | grep rt で現在読み込まれているドライバを確認してみたところ、既にrt2860staは読み込まれている、つまりUbuntu 10.10にデフォルトで含まれていたということが分かった。もしかしたらバージョンが古いのかとも思ったが、公式で配布されているドライバの更新日時からするとそれも考えにくい。
</p>
<p>
しかしさらに注意してlsmodの結果を見てみると、rt2800pciやrt2x00pciといったRaLink社の他のドライバも読み込まれていることに気づいた。これが悪さをしているのかもしれないと思い、<a href="http://forum-en.msi.com/index.php?topic=144363.0">このページ</a>に従って前述のとおりに /etc/modprove.d/blacklist.conf を修正し再起動したところ、問題は解消した。
</p>
<p>
なお以上はすべて10.10での話だが、この「一応は無線LANに繋がるが頻繁にパケットロスする」症状は11.04のUSBメモリから起動した時にも遭遇した。もしかすると11.04でも有効な手順かもしれない。
</p>
]]></content:encoded>
			<wfw:commentRss>http://wp.serpere.info/archives/2153/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginxでメンテナンス中画面を表示する</title>
		<link>http://wp.serpere.info/archives/2145</link>
		<comments>http://wp.serpere.info/archives/2145#comments</comments>
		<pubDate>Thu, 07 Apr 2011 14:48:26 +0000</pubDate>
		<dc:creator>tkykmw</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[サーバ管理]]></category>

		<guid isPermaLink="false">http://wp.serpere.info/?p=2145</guid>
		<description><![CDATA[どのURLにアクセスされてもステータスコード503を返して /home/www/maintenance.html を表示する設定。 server { server_name your.hostname; error_page 503 /maintenance.html; location / { return 503; } location = /maintenance.html { root /home/www; } } 同等の設定をApache(>=2.2)で書くと次のようになる。 &#60;VirtualHost *:80&#62; ServerName your.hostname DocumentRoot /home/www &#160; RewriteEngine On RewriteCond %{REQUEST_URI} !=/maintenance.html RewriteRule .* - [R=503] &#160; ErrorDocument 503 /maintenance.html &#60;/VirtualHost&#62;]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwp.serpere.info%252Farchives%252F2145%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22nginx%E3%81%A7%E3%83%A1%E3%83%B3%E3%83%86%E3%83%8A%E3%83%B3%E3%82%B9%E4%B8%AD%E7%94%BB%E9%9D%A2%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%22%20%7D);"></div>
<p>
どのURLにアクセスされてもステータスコード503を返して /home/www/maintenance.html を表示する設定。
</p>
<pre>
server {
    server_name  your.hostname; 
    error_page 503 /maintenance.html; 
    location / { 
        return 503;
    }
    location = /maintenance.html {
        root /home/www;
    }
}
</pre>
<p>
同等の設定をApache(>=2.2)で書くと次のようになる。
</p>


<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">&lt;<span style="color: #000000; font-weight:bold;">VirtualHost</span> *:<span style="color: #ff0000;">80</span>&gt;
    <span style="color: #00007f;">ServerName</span> your.hostname
    <span style="color: #00007f;">DocumentRoot</span> /home/www
&nbsp;
    <span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">On</span>
    <span style="color: #00007f;">RewriteCond</span> %{REQUEST_URI} !=/maintenance.html
    <span style="color: #00007f;">RewriteRule</span> .* - [R=<span style="color: #ff0000;">503</span>]
&nbsp;
    <span style="color: #00007f;">ErrorDocument</span> <span style="color: #ff0000;">503</span> /maintenance.html
&lt;/<span style="color: #000000; font-weight:bold;">VirtualHost</span>&gt;</pre></div></div>



]]></content:encoded>
			<wfw:commentRss>http://wp.serpere.info/archives/2145/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 5にNginxをインストールする</title>
		<link>http://wp.serpere.info/archives/1799</link>
		<comments>http://wp.serpere.info/archives/1799#comments</comments>
		<pubDate>Mon, 25 Oct 2010 13:36:33 +0000</pubDate>
		<dc:creator>tkykmw</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[サーバ管理]]></category>

		<guid isPermaLink="false">http://wp.serpere.info/?p=1799</guid>
		<description><![CDATA[CentOS 5.5にNginxをセットアップした記録。 EPELリポジトリにrpmパッケージもあるようだが、かなりバージョンが古かったので（0.6.39）ソースからインストールすることにした。現時点での最新版（stable）は0.8.53。 まず下準備。nginxユーザの追加とビルドに必要なパッケージのインストール。 sudo useradd -s /sbin/nologin -d /usr/local/nginx -M nginx sudo yum install gcc openssl-devel pcre-devel zlib-devel 続いてソースをダウンロードしてコンパイルする。Nginxはコンパイル時にしか拡張モジュールの組み込みができないので、ビルドの過程はシェルスクリプトの形で残しておいた方が良い。コンパイルオプションについてはWikiを参照のこと。一番下のExample 5（RedHat向け）を参考に調整を行った。 #!/bin/sh &#160; NGINX=nginx-0.8.53 &#160; # インストール先は /usr/local/nginx になる cd $NGINX \ &#38;&#38; make clean \ &#38;&#38; ./configure \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --user=nginx \ --group=nginx \ --with-http_stub_status_module \ --with-http_ssl_module \ [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwp.serpere.info%252Farchives%252F1799%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F9sg9nn%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22CentOS%205%E3%81%ABNginx%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%22%20%7D);"></div>
<p>
CentOS 5.5にNginxをセットアップした記録。
</p>
<p>
EPELリポジトリにrpmパッケージもあるようだが、かなりバージョンが古かったので（0.6.39）ソースからインストールすることにした。現時点での最新版（stable）は0.8.53。
</p>
<p>
まず下準備。nginxユーザの追加とビルドに必要なパッケージのインストール。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> useradd <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>nologin <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>nginx <span style="color: #660033;">-M</span> nginx
<span style="color: #c20cb9; font-weight: bold;">sudo</span> yum <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #c20cb9; font-weight: bold;">gcc</span> openssl-devel pcre-devel zlib-devel</pre></div></div>



<p>
続いて<a href="http://wiki.nginx.org/Install">ソースをダウンロード</a>してコンパイルする。Nginxはコンパイル時にしか拡張モジュールの組み込みができないので、ビルドの過程はシェルスクリプトの形で残しておいた方が良い。コンパイルオプションについては<a href="http://wiki.nginx.org/NginxInstallOptions">Wiki</a>を参照のこと。一番下のExample 5（RedHat向け）を参考に調整を行った。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
&nbsp;
<span style="color: #007800;">NGINX</span>=nginx-0.8.53
&nbsp;
<span style="color: #666666; font-style: italic;"># インストール先は /usr/local/nginx になる</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$NGINX</span> \
<span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">make</span> clean \
<span style="color: #000000; font-weight: bold;">&amp;&amp;</span> .<span style="color: #000000; font-weight: bold;">/</span>configure \
  <span style="color: #660033;">--conf-path</span>=<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>nginx.conf \
  <span style="color: #660033;">--error-log-path</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>error.log \
  <span style="color: #660033;">--pid-path</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>nginx.pid  \
  <span style="color: #660033;">--lock-path</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lock<span style="color: #000000; font-weight: bold;">/</span>nginx.lock \
  <span style="color: #660033;">--user</span>=nginx \
  <span style="color: #660033;">--group</span>=nginx \
  --with-http_stub_status_module \
  --with-http_ssl_module \
  --with-http_gzip_static_module \
  --with-http_realip_module \
  <span style="color: #660033;">--http-log-path</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>access.log \
  <span style="color: #660033;">--http-client-body-temp-path</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>client<span style="color: #000000; font-weight: bold;">/</span> \
  <span style="color: #660033;">--http-proxy-temp-path</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>proxy<span style="color: #000000; font-weight: bold;">/</span> \
  <span style="color: #660033;">--http-fastcgi-temp-path</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>fcgi<span style="color: #000000; font-weight: bold;">/</span> \
<span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">make</span></pre></div></div>



<p>
正常にビルドが完了したらインストール。足りないディレクトリも作っておく。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>proxy,client,fcgi<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>



<p>
この段階で正常に起動するかどうかを確認しておく。rootで <code>${prefix}/sbin/nginx</code> を実行後、<code>http://hostname/</code> にアクセスして、「Welcome to nginx!」と表示されたらOK。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>nginx
&nbsp;
<span style="color: #666666; font-style: italic;"># 確認できたら終了しておく</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>nginx <span style="color: #660033;">-s</span> quit</pre></div></div>



<p>
この後、設定ファイル（上のコンパイルオプションの場合は <code>/etc/nginx/nginx.conf</code>）を編集してサーバの設定を行うことになるが、そこは省略。
</p>
<p>
サービス起動ファイルを作る。CentOS(RedHat系Linux)ならひな形が<a href="http://wiki.nginx.org/RedHatNginxInitScript">Wiki</a>に用意されているので、必要な部分を書き換えた後 <code>/etc/init.d/nginx</code> に保存して、 chkconfig コマンドで設定する。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># 実行ファイルのパスなど変更しておく</span>
<span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>nginx
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>nginx
chkconfig <span style="color: #660033;">--add</span> nginx
chkconfig nginx on
&nbsp;
<span style="color: #666666; font-style: italic;"># 今すぐ起動するなら</span>
service nginx start</pre></div></div>



<p>
続いてログのローテーションの設定。<code>/etc/logrotate.d/nginx</code> を以下の内容で作成する。パスやパラメータは各自で調整のこと。
</p>
<pre>
/var/log/nginx/*log {
    missingok
    notifempty
    delaycompress
    sharedscripts
    postrotate
        /usr/local/nginx/sbin/nginx -s reopen
    endscript
}
</pre>
<p>
設定ファイルのチェックも行っておく。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> logrotate <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>logrotate.conf</pre></div></div>



<p>
設定ファイルの内容について後で書くかも。
</p>

]]></content:encoded>
			<wfw:commentRss>http://wp.serpere.info/archives/1799/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[解決]iPhone 3GSをiOS4にしてからバッテリーの消耗が早い</title>
		<link>http://wp.serpere.info/archives/1372</link>
		<comments>http://wp.serpere.info/archives/1372#comments</comments>
		<pubDate>Thu, 15 Jul 2010 08:53:02 +0000</pubDate>
		<dc:creator>tkykmw</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://wp.serpere.info/?p=1372</guid>
		<description><![CDATA[症状：iPhone 3GSをiOS4にアップデートして以来、バッテリーの減りが異常に早くなった。 原因：（多分）スリープ中もWi-Fiが有効になる状態だったから。 解決策：（私の場合）スリープボタン+ホームボタン長押しで強制リセットしたら直った。 去年12月に買ったiPhone 3GS。以前は2日充電しなくても余裕があったのに、iOS4にアップデートして以来、1日放置しておくだけで残り15%近くまでバッテリーを消耗する状態になった。「iOS4 バッテリー」というキーワードで検索してみると、同様の症状を訴える人はたくさんいる。中でも『iOS4ではスリープ中でもWi-Fiがオフにならず、そのせいでバッテリーを早く消耗する』という情報が気になった。言われてみれば、iOS4にして以来、スリープから復帰させる時にWi-Fiのシグナルがいつも立っている。以前なら0.5秒〜1秒くらいの間があって「3G」→「Wi-Fiシグナル」と表示が切り替わっていたのに。 しかし特に問題がない人も多いところを見ると、これがiOS4の正規の挙動なのかどうかは怪しい。とりあえずものは試しと、買ってから初めて強制リセットを試してみた。方法は右上のスリープ/スリープ解除ボタンとホームボタンを押し続け、「電源オフ」のスライダが出ても押し続け、画面が暗転して銀色のリンゴが出てくるまで待つ。…すると何かの設定がリセットされたのか、Wi-Fiの挙動が以前の状態に戻り、バッテリーの異常な消耗も解消された。 必ずこの方法で復旧するとは言い切れないが、同様の問題で悩んでいる方は一度試してみると良いかと。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwp.serpere.info%252Farchives%252F1372%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FbkzKlE%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22%5B%E8%A7%A3%E6%B1%BA%5DiPhone%203GS%E3%82%92iOS4%E3%81%AB%E3%81%97%E3%81%A6%E3%81%8B%E3%82%89%E3%83%90%E3%83%83%E3%83%86%E3%83%AA%E3%83%BC%E3%81%AE%E6%B6%88%E8%80%97%E3%81%8C%E6%97%A9%E3%81%84%22%20%7D);"></div>
<dl>
<dt>症状：</dt><dd>iPhone 3GSをiOS4にアップデートして以来、バッテリーの減りが異常に早くなった。</dd>
<dt>原因：</dt><dd>（多分）スリープ中もWi-Fiが有効になる状態だったから。</dd>
<dt>解決策：</dt><dd>（私の場合）スリープボタン+ホームボタン長押しで強制リセットしたら直った。</dd>
</dl><p>
去年12月に買ったiPhone 3GS。以前は2日充電しなくても余裕があったのに、iOS4にアップデートして以来、1日放置しておくだけで残り15%近くまでバッテリーを消耗する状態になった。「iOS4 バッテリー」というキーワードで検索してみると、同様の症状を訴える人はたくさんいる。中でも『iOS4ではスリープ中でもWi-Fiがオフにならず、そのせいでバッテリーを早く消耗する』という情報が気になった。言われてみれば、iOS4にして以来、スリープから復帰させる時にWi-Fiのシグナルがいつも立っている。以前なら0.5秒〜1秒くらいの間があって「3G」→「Wi-Fiシグナル」と表示が切り替わっていたのに。
</p><p>
しかし特に問題がない人も多いところを見ると、これがiOS4の正規の挙動なのかどうかは怪しい。とりあえずものは試しと、買ってから初めて強制リセットを試してみた。方法は右上のスリープ/スリープ解除ボタンとホームボタンを押し続け、「電源オフ」のスライダが出ても押し続け、画面が暗転して銀色のリンゴが出てくるまで待つ。…すると何かの設定がリセットされたのか、Wi-Fiの挙動が以前の状態に戻り、バッテリーの異常な消耗も解消された。
</p><p>
必ずこの方法で復旧するとは言い切れないが、同様の問題で悩んでいる方は一度試してみると良いかと。
</p>

]]></content:encoded>
			<wfw:commentRss>http://wp.serpere.info/archives/1372/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL MEMORYテーブルのサイズをmuninで監視する</title>
		<link>http://wp.serpere.info/archives/1109</link>
		<comments>http://wp.serpere.info/archives/1109#comments</comments>
		<pubDate>Mon, 25 Jan 2010 14:49:47 +0000</pubDate>
		<dc:creator>tkykmw</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[サーバ管理]]></category>

		<guid isPermaLink="false">http://wp.serpere.info/?p=1109</guid>
		<description><![CDATA[DB内のMEMORYテーブルのサイズを、テーブルごとにグラフ化するための munin プラグインを作ってみました。 mysql_memory_tables_ インストール munin-node 本体のプラグインディレクトリ（/usr/share/munin/plugins など）にコピーしてください。 設定 ワイルドカードプラグインなので、mysql_memory_tables_{チェック対象となるDB名} という名前でシンボリックリンクを張ってください。 ln -s /usr/share/munin/plugins/mysql_memory_tables_ /etc/munin/plugins/mysql_memory_tables_db1 データを取得するには対象DBの INFORMATION_SCHEMA にアクセスする権限が必要です。プラグイン設定ファイル（/etc/munin/plugin-conf.d/munin-node など）で mysql コマンドに渡すユーザ名・パスワードを指定してください。 [mysql_memory_tables_*] env.mysqlopts -u cicindela --password=hogehoge 動作確認 munin-run コマンドでテストができます。 # 値の表示 munin-run mysql_memory_tables_db1 &#160; # グラフ設定情報の表示 munin-run mysql_memory_tables_db1 config 動作が確認できたら munin-node を再起動してください。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwp.serpere.info%252Farchives%252F1109%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F4qM1sC%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22MySQL%20MEMORY%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA%E3%82%92munin%E3%81%A7%E7%9B%A3%E8%A6%96%E3%81%99%E3%82%8B%22%20%7D);"></div>
<p>
DB内のMEMORYテーブルのサイズを、テーブルごとにグラフ化するための munin プラグインを作ってみました。
</p>
<p><a href="http://gist.github.com/285906">mysql_memory_tables_</a></p>
<h3>インストール</h3>
<p>
munin-node 本体のプラグインディレクトリ（/usr/share/munin/plugins など）にコピーしてください。
</p>
<h3>設定</h3>
<p>
ワイルドカードプラグインなので、<code>mysql_memory_tables_{チェック対象となるDB名}</code> という名前でシンボリックリンクを張ってください。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>munin<span style="color: #000000; font-weight: bold;">/</span>plugins<span style="color: #000000; font-weight: bold;">/</span>mysql_memory_tables_ <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>munin<span style="color: #000000; font-weight: bold;">/</span>plugins<span style="color: #000000; font-weight: bold;">/</span>mysql_memory_tables_db1</pre></div></div>



<p>
データを取得するには対象DBの INFORMATION_SCHEMA にアクセスする権限が必要です。プラグイン設定ファイル（/etc/munin/plugin-conf.d/munin-node など）で mysql コマンドに渡すユーザ名・パスワードを指定してください。
</p>
<pre>
[mysql_memory_tables_*]
env.mysqlopts -u cicindela --password=hogehoge
</pre>
<h3>動作確認</h3>
<p>
munin-run コマンドでテストができます。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># 値の表示</span>
munin-run mysql_memory_tables_db1
&nbsp;
<span style="color: #666666; font-style: italic;"># グラフ設定情報の表示</span>
munin-run mysql_memory_tables_db1 config</pre></div></div>



<p>
動作が確認できたら munin-node を再起動してください。
</p>
]]></content:encoded>
			<wfw:commentRss>http://wp.serpere.info/archives/1109/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WARNING: mismatch_cnt is not 0 on /dev/md0</title>
		<link>http://wp.serpere.info/archives/1099</link>
		<comments>http://wp.serpere.info/archives/1099#comments</comments>
		<pubDate>Mon, 21 Dec 2009 09:31:18 +0000</pubDate>
		<dc:creator>tkykmw</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[サーバ管理]]></category>

		<guid isPermaLink="false">http://wp.serpere.info/?p=1099</guid>
		<description><![CDATA[Software RAID1を組んでいるサーバで、CentOS 5.3 -> 5.4にアップグレードしたところ、週末ごとに次のような警告メールが届くようになった。 /etc/cron.weekly/99-raid-check: WARNING: mismatch_cnt is not 0 on /dev/md0 /proc/mdstat 等には特に異常などは見当たらないし、構成の異なる複数のサーバで同じ現象が起こったので、ハード的な問題ではないだろうと判断し、忙しかったこともあってそのままにしていた。しかしやはり気持ち悪いので、きちんと調べてみた。 メール中にある通り、この警告は /etc/cron.weekly/99-raid-check というスクリプトから送信されている。このスクリプトを提供しているのは mdadm パッケージで、5.4で更新されている。更新内容はレッドハットのサイトで RHBA-2009:1382-1 として提供されており、99-raid-check について説明しているのは、次の2箇所である。 * LinuxのソフトウェアRAIDスタックでは、データスクラビングがサポートされています（RAIDアレイのディスクを読み取って不良セクタを検索し、不良セクタが見つかると、他のディスクやパリティの情報を使用して、不良セクタを正常なデータで書き直します）。しかし、mdadmパッケージはこの機能を利用していませんでした。今回のパッケージは、cronジョブが/etc/cron.weeklyに追加されており、ディスクをチェックして不良セクタがないかどうかを確認し、見つかった場合は修復します。（BZ#233972） * 今回のアップデートでは、mdadmに冗長アレイでの「データスクラビング」を可能にする新しい機能が追加されています。データスクラビングでは、冗長アレイ内のドライブ上で不良セクタが検索され、見つかった場合は他のドライブのデータを使用して修正されます。それによって、読み取りエラーを返すセクタは再構築されます。注：この新しいパッケージでは、データスクラビングはデフォルトでオンになっています。この機能は週1回実行され、実行中にある程度のパフォーマンス低下を引き起こす場合があります。パフォーマンス上の理由でこの機能を無効にしたい場合、アレイに対して実行されるチェックのタイプを管理したい場合、あるいは、どのアレイをチェックするかを制御したい場合は、/etc/sysconfig/raid-checkファイルを編集します。オプションを設定する方法の詳細は、そのファイルにコメントとして含まれています。（BZ#513200） 「データスクライピング（Data Scrubbing）」とは何か、なぜ重要なのかについては、ここで示されているBugzilla #233972およびその先のリンクに説明がある（一箇所リンクが切れているのはRAID/Software &#8211; GEntoo Linux Wikiだと思われる）。 データスクライピングを実行するには、root権限で次のコマンドを実行する。これによって不良セクタが検出され、自動的に修復される。99-raid-check が実行するのも、まさにこのコマンドである（少なくともデフォルトの設定においては）。 echo check &#62; /sys/block/mdX/md/sync_action ではこのコマンドと、問題の mismatch_cnt とはどう関係するのか。/etc/sysconfig/raid-check のコメントを読むと次のように書いてある。 If it finds good sectors that contain bad data (meaning that [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwp.serpere.info%252Farchives%252F1099%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22WARNING%3A%20mismatch_cnt%20is%20not%200%20on%20%2Fdev%2Fmd0%22%20%7D);"></div>
<p>
Software RAID1を組んでいるサーバで、CentOS 5.3 -> 5.4にアップグレードしたところ、週末ごとに次のような警告メールが届くようになった。
</p>
<pre>
/etc/cron.weekly/99-raid-check:

WARNING: mismatch_cnt is not 0 on /dev/md0
</pre>
<p>
/proc/mdstat 等には特に異常などは見当たらないし、構成の異なる複数のサーバで同じ現象が起こったので、ハード的な問題ではないだろうと判断し、忙しかったこともあってそのままにしていた。しかしやはり気持ち悪いので、きちんと調べてみた。
</p>
<p>
メール中にある通り、この警告は /etc/cron.weekly/99-raid-check というスクリプトから送信されている。このスクリプトを提供しているのは mdadm パッケージで、5.4で更新されている。更新内容はレッドハットのサイトで <a href="http://www.jp.redhat.com/support/errata/RHBA/RHBA-2009-1382J.html">RHBA-2009:1382-1</a> として提供されており、99-raid-check について説明しているのは、次の2箇所である。
</p>
<blockquote><p>
* LinuxのソフトウェアRAIDスタックでは、データスクラビングがサポートされています（RAIDアレイのディスクを読み取って不良セクタを検索し、不良セクタが見つかると、他のディスクやパリティの情報を使用して、不良セクタを正常なデータで書き直します）。しかし、mdadmパッケージはこの機能を利用していませんでした。今回のパッケージは、cronジョブが/etc/cron.weeklyに追加されており、ディスクをチェックして不良セクタがないかどうかを確認し、見つかった場合は修復します。（BZ#233972）
</p></blockquote>
<blockquote><p>
* 今回のアップデートでは、mdadmに冗長アレイでの「データスクラビング」を可能にする新しい機能が追加されています。データスクラビングでは、冗長アレイ内のドライブ上で不良セクタが検索され、見つかった場合は他のドライブのデータを使用して修正されます。それによって、読み取りエラーを返すセクタは再構築されます。注：この新しいパッケージでは、データスクラビングはデフォルトでオンになっています。この機能は週1回実行され、実行中にある程度のパフォーマンス低下を引き起こす場合があります。パフォーマンス上の理由でこの機能を無効にしたい場合、アレイに対して実行されるチェックのタイプを管理したい場合、あるいは、どのアレイをチェックするかを制御したい場合は、/etc/sysconfig/raid-checkファイルを編集します。オプションを設定する方法の詳細は、そのファイルにコメントとして含まれています。（BZ#513200）
</p></blockquote>
<p>
「データスクライピング（Data Scrubbing）」とは何か、なぜ重要なのかについては、ここで示されている<a href="https://bugzilla.redhat.com/show_bug.cgi?id=233972">Bugzilla #233972</a>およびその先のリンクに説明がある（一箇所リンクが切れているのは<a href="http://en.gentoo-wiki.com/wiki/RAID/Software#Data_Scrubbing">RAID/Software &#8211; GEntoo Linux Wiki</a>だと思われる）。
</p>
<p>
データスクライピングを実行するには、root権限で次のコマンドを実行する。これによって不良セクタが検出され、自動的に修復される。99-raid-check が実行するのも、まさにこのコマンドである（少なくともデフォルトの設定においては）。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> check <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>sys<span style="color: #000000; font-weight: bold;">/</span>block<span style="color: #000000; font-weight: bold;">/</span>mdX<span style="color: #000000; font-weight: bold;">/</span>md<span style="color: #000000; font-weight: bold;">/</span>sync_action</pre></div></div>



<p>
ではこのコマンドと、問題の mismatch_cnt とはどう関係するのか。/etc/sysconfig/raid-check のコメントを読むと次のように書いてある。
</p>
<blockquote><p>If it finds good sectors that
 contain bad data (meaning that the data in a sector does
 not agree with what the data from another disk indicates
 the data should be, for example the parity block + the other
 data blocks would cause us to think that this data block
 is incorrect), then it does nothing but increments the
 counter in the file /sys/block/$dev/md/mismatch_count.
</p></blockquote>
<p>
つまりセクタ自体は正常だが、中に入ってるデータがディスク間で異なる場合に mismatch_cnt が増加するということらしい。
</p>
<p>
ならば mismatch_cnt が 0 でないということは、ただちにRAIDが正常に機能していないことを意味するのだろうか？いろいろなMLの投稿などを読む限り、少なくとも swap パーティションを含むRAIDデバイスにおいては、全く正常であっても各ディスク間の内容が異なり得る…すなわち mismatch_cnt が0でないことがあり得るようだ。では swap を含まないパーティションの場合は？私の（また他のCentOS利用者の）ように、/boot のみを含む md0 の場合は？……これがよく分からない。<a href="http://marc.info/?l=linux-raid&#038;m=117555829807542&#038;w=2">この投稿</a>を読む限り、ある種の状況においてはそうしたことも起こり得る、とのことである。
</p>
<p>
もしそうした状況に該当するなら。mismatch_cnt が 0 でなくとも、異なっているのは実際にはファイルシステムからアクセス不能な部分であって、システムの運用には影響しないのであれば。修復する方法はある。check の代わりに repair を使うことである。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#このコマンドを実行する前に以下の説明をよく読んでください！！</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> repair <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>sys<span style="color: #000000; font-weight: bold;">/</span>block<span style="color: #000000; font-weight: bold;">/</span>mdX<span style="color: #000000; font-weight: bold;">/</span>md<span style="color: #000000; font-weight: bold;">/</span>sync_action</pre></div></div>



<p>
ただし /etc/sysconfig/raid-check には、次のような恐ろしいコメントが書いてある（強調は私による）。
</p>
<blockquote><p>
The repair option does the same thing, but
 when it encounters a mismatch in the data, it automatically
 updates the data to be consistent.  However, since <strong>we really
 don&#8217;t know whether it&#8217;s the parity or the data block that&#8217;s
 correct (or which data block in the case of raid1), it&#8217;s
 luck of the draw whether or not the user gets the right
 data instead of the bad data.</strong>
</p></blockquote>
<p>
というわけで、以下は「<strong>それでも自己責任でこの方法に賭けるぜ！</strong>」という方のみ読んでください。
</p>
<p>
まず各デバイスの mismatch_cnt の値をチェックしておく。
</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>sys<span style="color: #000000; font-weight: bold;">/</span>block<span style="color: #000000; font-weight: bold;">/</span>md0<span style="color: #000000; font-weight: bold;">/</span>md<span style="color: #000000; font-weight: bold;">/</span>mismatch_cnt</pre></div></div>



<p>そして repair を実行する。</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">sh</span> <span style="color: #660033;">-c</span> <span style="color: #ff0000;">'echo repair &gt; /sys/block/md0/md/sync_action'</span></pre></div></div>



<p>進行状況は /proc/mdstat で確認できる。</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/</span>mdstat</pre></div></div>



<p>repair を実行しただけでは mismatch_cnt は更新されないので、もう一度 check を実行する。進行状況はやはり /proc/mdstat で確認できる。</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">sh</span> <span style="color: #660033;">-c</span> <span style="color: #ff0000;">'echo check &gt; /sys/block/md0/md/sync_action'</span></pre></div></div>



<p>終了したら mismatch_cnt をチェックして、0 になっているか確認する。</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>sys<span style="color: #000000; font-weight: bold;">/</span>block<span style="color: #000000; font-weight: bold;">/</span>md0<span style="color: #000000; font-weight: bold;">/</span>md<span style="color: #000000; font-weight: bold;">/</span>mismatch_cnt</pre></div></div>



<p>……</p>
<p>
参考にしたサイトは<a href="http://b.hatena.ne.jp/serpere/mismatch_cnt/">はてブの mismatch_cnt タグ</a>にまとめてあるので、この記事に書いてあることを鵜呑みにせず、自分で調べ自分で判断するようお願いします。
</p>
]]></content:encoded>
			<wfw:commentRss>http://wp.serpere.info/archives/1099/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SONY NW-S645購入</title>
		<link>http://wp.serpere.info/archives/1094</link>
		<comments>http://wp.serpere.info/archives/1094#comments</comments>
		<pubDate>Fri, 11 Dec 2009 15:40:22 +0000</pubDate>
		<dc:creator>tkykmw</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://wp.serpere.info/?p=1094</guid>
		<description><![CDATA[16GBモデルで15000円弱。同容量のiPod nanoより2000円ほど安い。その安さに惹かれて購入したのだが、良い意味で驚かされた。それまで使っていた二世代前のiPodに比べて、圧倒的に音が良い。同じイヤホン（MDR-EX90SL）、同じ音源（mp3やAAC）なのに、全く違って聞こえる。さすがに最近のiPodならもう少し差は縮まるのかも知れないが、個人的にはもうiPodに戻ろうとは思わない。 私は初代からのiPodユーザなので、iPodシリーズとはかれこれ8年近い付き合いになる。その間にも、実はiPodの音を疑ったことは何度かあった。曲によってはっきりと不快に感じることすらあった。その度にイヤホンが悪いのか音源が悪いのかと疑い、iPod本体に目を向けることはなかった。iPodに代わる選択肢は事実上存在しない状況だったので、iPodを疑っても仕方がなかったのだ。でもついにはっきりと現実を認識する時が来てしまった。高音の歪みが不快で仕方なかったあの曲を、NW-S645は見事に奏でてくれた。iPodは、音が悪かったのだ……。 回顧はこのくらいにして、少し真面目なレビューを。 曲の転送 NW-S645は「ドラッグ＆ドロップ転送」に対応しているので、サポート対象外だがWindows以外でも使える。私の母艦であるMacBook Proに接続すると普通のUSBストレージとして認識された。ボリューム名は「WALKMAN」。中に MUSIC というディレクトリあるので、そこにコピーすればあとは勝手にアーティスト名やアルバム名のデータベースを構築してくれる（コピーしたディレクトリ単位で再生することもできる）。またiTunes Storeから購入した曲（PlusなどDRMがかかっていないもの）を転送すると、アートワークも正常に反映された。しかしiTunes上で後から割り当てたものについては反映されないようだ。 これは私の環境だけかも知れないが、取り外す際にちょっとしたトラブルがあった。Finderの取り外しアイコンをクリックすると一旦は接続解除されるのだが、すぐにまた接続が開始されてしまうのだ。結局「解除した瞬間にUSBケーブルを引っこ抜く」という、なんともいい加減な方法で対処することにした。 操作性 操作性はすこぶる良い。ほとんど何の不満も無い。iPodより使いやすいと思う。というか、これも比較して初めてはっきり認識できたことだが、iPodのタッチホイールによるUIは、別に使いやすくはなかった。例えば曲の再生方法（リピートやシャッフル）を変更したいとき、iPodだといちいちトップメニューまで戻って「設定」から変更する必要があったが、NW-S645は「OPTION」ボタンから即座に変更できる。曲を選ぶ時のカーソルの移動速度はホイールにはかなわないが、左右ボタンでA-Zあ-わ移動ができるので問題ない。全体として、よく考えられた作りになっていると思う。 その他 本体デザインは金属やガラスの質感が美しく、iPod nanoほどエレガントではないものの、とてもカッコいい。液晶も綺麗で見やすい。ACアダプタが別売りなことには面食らったが、そもそもバッテリの持ちが非常に良いのであまり問題にならない（実はiPodのものが流用できそう？）。 追記：音質について ピアノやヴァイオリンなどの比較的静かな曲だとそのままでも素晴らしい音が出るのだが、JPOPなどの賑やかな曲だとボーカルが埋没してしまって、ひどくアンバランスに聞こえることがある。そういうときはイコライザを「ポップス」あたりに変更してやれば、見違えるような（聞き違えるような？）音になる。イコライザもOPTIONボタンから簡単に切り替えられるので、いろいろ試してみると面白い。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwp.serpere.info%252Farchives%252F1094%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22SONY%20NW-S645%E8%B3%BC%E5%85%A5%22%20%7D);"></div>
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=ECF0D9&#038;fc1=2C2C2C&#038;lc1=E55B1F&#038;t=hebinikki09-22&#038;o=9&#038;p=8&#038;l=as1&#038;m=amazon&#038;f=ifr&#038;asins=B002P67U64" style="float: left; width:140px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
<p>
16GBモデルで15000円弱。同容量のiPod nanoより2000円ほど安い。その安さに惹かれて購入したのだが、良い意味で驚かされた。それまで使っていた二世代前のiPodに比べて、<strong>圧倒的に音が良い</strong>。同じイヤホン（MDR-EX90SL）、同じ音源（mp3やAAC）なのに、全く違って聞こえる。さすがに最近のiPodならもう少し差は縮まるのかも知れないが、個人的にはもうiPodに戻ろうとは思わない。
</p><p>
私は初代からのiPodユーザなので、iPodシリーズとはかれこれ8年近い付き合いになる。その間にも、実はiPodの音を疑ったことは何度かあった。曲によってはっきりと不快に感じることすらあった。その度にイヤホンが悪いのか音源が悪いのかと疑い、iPod本体に目を向けることはなかった。iPodに代わる選択肢は事実上存在しない状況だったので、iPodを疑っても仕方がなかったのだ。でもついにはっきりと現実を認識する時が来てしまった。高音の歪みが不快で仕方なかったあの曲を、NW-S645は見事に奏でてくれた。iPodは、音が悪かったのだ……。
</p>
<p>回顧はこのくらいにして、少し真面目なレビューを。</p>
<h3>曲の転送</h3>
<p>
NW-S645は「ドラッグ＆ドロップ転送」に対応しているので、サポート対象外だがWindows以外でも使える。私の母艦であるMacBook Proに接続すると普通のUSBストレージとして認識された。ボリューム名は「WALKMAN」。中に MUSIC というディレクトリあるので、そこにコピーすればあとは勝手にアーティスト名やアルバム名のデータベースを構築してくれる（コピーしたディレクトリ単位で再生することもできる）。またiTunes Storeから購入した曲（PlusなどDRMがかかっていないもの）を転送すると、アートワークも正常に反映された。しかしiTunes上で後から割り当てたものについては反映されないようだ。
</p><p>
これは私の環境だけかも知れないが、取り外す際にちょっとしたトラブルがあった。Finderの取り外しアイコンをクリックすると一旦は接続解除されるのだが、すぐにまた接続が開始されてしまうのだ。結局「解除した瞬間にUSBケーブルを引っこ抜く」という、なんともいい加減な方法で対処することにした。
</p>
<h3>操作性</h3>
<p>
操作性はすこぶる良い。ほとんど何の不満も無い。iPodより使いやすいと思う。というか、これも比較して初めてはっきり認識できたことだが、iPodのタッチホイールによるUIは、別に使いやすくはなかった。例えば曲の再生方法（リピートやシャッフル）を変更したいとき、iPodだといちいちトップメニューまで戻って「設定」から変更する必要があったが、NW-S645は「OPTION」ボタンから即座に変更できる。曲を選ぶ時のカーソルの移動速度はホイールにはかなわないが、左右ボタンでA-Zあ-わ移動ができるので問題ない。全体として、よく考えられた作りになっていると思う。
</p>
<h3>その他</h3>
<p>
本体デザインは金属やガラスの質感が美しく、iPod nanoほどエレガントではないものの、とてもカッコいい。液晶も綺麗で見やすい。ACアダプタが別売りなことには面食らったが、そもそもバッテリの持ちが非常に良いのであまり問題にならない（実はiPodのものが流用できそう？）。
</p>
<h3>追記：音質について</h3>
<p>
ピアノやヴァイオリンなどの比較的静かな曲だとそのままでも素晴らしい音が出るのだが、JPOPなどの賑やかな曲だとボーカルが埋没してしまって、ひどくアンバランスに聞こえることがある。そういうときはイコライザを「ポップス」あたりに変更してやれば、見違えるような（聞き違えるような？）音になる。イコライザもOPTIONボタンから簡単に切り替えられるので、いろいろ試してみると面白い。
</p>
]]></content:encoded>
			<wfw:commentRss>http://wp.serpere.info/archives/1094/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XREA+からエックスサーバーに移転</title>
		<link>http://wp.serpere.info/archives/836</link>
		<comments>http://wp.serpere.info/archives/836#comments</comments>
		<pubDate>Fri, 23 Oct 2009 13:24:08 +0000</pubDate>
		<dc:creator>tkykmw</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[xrea]]></category>
		<category><![CDATA[サーバ管理]]></category>

		<guid isPermaLink="false">http://wp.serpere.info/?p=836</guid>
		<description><![CDATA[XREAが重過ぎて使い物にならなくなったので、エックスサーバーに移転した。ここを選んだ理由は PHP5, MySQL5が使える 比較的値段が安い（X10プランで月額1050〜1260円） ネット上の口コミでは速度に対する評価が高い &#8220;ハズレ&#8221;を引いたときの救済措置簡単サーバ移動機能がある SSHが使えないので、派手なことをするヤツは少ないだろうという希望的観測 今のところ速度には満足。サーバの管理画面も使いやすい（若干パワーユーザ向けだが）。WordPressも問題なく移転できた。 WordPressの移転にはいろいろな方法があるようなので、私の方法も紹介しておく。最も原始的かつ確実な方法で行った。 エックスサーバーでの下準備 管理画面「MySQL設定」で新しいMySQLデータベースとMySQLユーザを作る 「ドメイン設定」で独自ドメインを登録する できればここで /etc/hosts ファイルを書き換えてきちんとアクセスできることを確認しておく。WebサーバのIPアドレスは「DNSレコード設定」で確認できる 旧データのバックアップと修正 XREAの管理画面「データベース」で「保存」ボタンを押してバックアップを作成する 作成されたmysql.dumpおよびサイトの全ファイルをローカルにコピーする wp-config.php を開き、データベース設定をエックスサーバーのものに書き換える エックスサーバーにアップロード 管理画面からphpMyAdminにログインして、mysql.dumpを実行 ドキュメントルートに全ファイルをコピー 例によって /etc/hosts を書き換え、WordPressが正常に動くことを確認 あとはDNSを変更すればOK。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwp.serpere.info%252Farchives%252F836%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22XREA%2B%E3%81%8B%E3%82%89%E3%82%A8%E3%83%83%E3%82%AF%E3%82%B9%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E7%A7%BB%E8%BB%A2%22%20%7D);"></div>
<p>XREAが重過ぎて使い物にならなくなったので、<a href="http://www.xserver.ne.jp/">エックスサーバー</a>に移転した。ここを選んだ理由は</p>
<ul>
<li>PHP5, MySQL5が使える</li>
<li>比較的値段が安い（X10プランで月額1050〜1260円）</li>
<li>ネット上の口コミでは速度に対する評価が高い</li>
<li>&#8220;ハズレ&#8221;を引いたときの救済措置<a href="http://www.xserver.ne.jp/feature.php#move">簡単サーバ移動機能</a>がある</li>
<li>SSHが<strong>使えない</strong>ので、派手なことをするヤツは少ないだろうという希望的観測</li>
</ul>
<p>今のところ速度には満足。サーバの管理画面も使いやすい（若干パワーユーザ向けだが）。WordPressも問題なく移転できた。</p>
<p>WordPressの移転にはいろいろな方法があるようなので、私の方法も紹介しておく。最も原始的かつ確実な方法で行った。</p>
<h3>エックスサーバーでの下準備</h3>
<ol>
<li>管理画面「MySQL設定」で新しいMySQLデータベースとMySQLユーザを作る</li>
<li>「ドメイン設定」で独自ドメインを登録する</li>
<li>できればここで /etc/hosts ファイルを書き換えてきちんとアクセスできることを確認しておく。WebサーバのIPアドレスは「DNSレコード設定」で確認できる</li>
</ol>
<h3>旧データのバックアップと修正</h3>
<ol>
<li>XREAの管理画面「データベース」で「保存」ボタンを押してバックアップを作成する</li>
<li>作成されたmysql.dumpおよびサイトの全ファイルをローカルにコピーする</li>
<li>wp-config.php を開き、データベース設定をエックスサーバーのものに書き換える</li>
</ol>
<h3>エックスサーバーにアップロード</h3>
<ol>
<li>管理画面からphpMyAdminにログインして、mysql.dumpを実行</li>
<li>ドキュメントルートに全ファイルをコピー</li>
<li>例によって /etc/hosts を書き換え、WordPressが正常に動くことを確認</li>
</ol>
<p>あとはDNSを変更すればOK。</p>

]]></content:encoded>
			<wfw:commentRss>http://wp.serpere.info/archives/836/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>twitterを始めてみた</title>
		<link>http://wp.serpere.info/archives/732</link>
		<comments>http://wp.serpere.info/archives/732#comments</comments>
		<pubDate>Mon, 24 Aug 2009 05:32:54 +0000</pubDate>
		<dc:creator>tkykmw</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://wp.serpere.info/?p=732</guid>
		<description><![CDATA[http://twitter.com/serpere 「フォローしないと面白くない」とは聞いていたので、とりあえず登録時におすすめされた有名人アカウントを半分くらい、それから購読しているブログの中でアカウントがすぐ判明した何人かをフォローして開始。 当たり前だが、まださっぱり面白さが分からない。混雑したファミレスの中で、他テーブルの雑談を聞くともなしに聞きながら独り言をつぶやいているような、ものすごい違和感。でもそういう雑談に思わず心の中で突っ込みを入れてしまうことがあるように、@xxx で突っ込みを入れていけば面白くなってくる…のだろうか？ 会話のための会話を楽しめる人向けというか、ある意味では最も純粋なコミュニケーション・ツールという気もする。当面はひたすらフォローする人を増やしながら様子を見ていこう。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwp.serpere.info%252Farchives%252F732%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22twitter%E3%82%92%E5%A7%8B%E3%82%81%E3%81%A6%E3%81%BF%E3%81%9F%22%20%7D);"></div>
<p><a href="http://twitter.com/serpere">http://twitter.com/serpere</a></p>
<p>「フォローしないと面白くない」とは聞いていたので、とりあえず登録時におすすめされた有名人アカウントを半分くらい、それから購読しているブログの中でアカウントがすぐ判明した何人かをフォローして開始。</p>
<p>当たり前だが、まださっぱり面白さが分からない。混雑したファミレスの中で、他テーブルの雑談を聞くともなしに聞きながら独り言をつぶやいているような、ものすごい違和感。でもそういう雑談に思わず心の中で突っ込みを入れてしまうことがあるように、@xxx で突っ込みを入れていけば面白くなってくる…のだろうか？</p>
<p>会話のための会話を楽しめる人向けというか、ある意味では最も純粋なコミュニケーション・ツールという気もする。当面はひたすらフォローする人を増やしながら様子を見ていこう。</p>

]]></content:encoded>
			<wfw:commentRss>http://wp.serpere.info/archives/732/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

