2011年

[雑記] 2011.11.16 バッテリー対策のために「ネットワーク設定のリセット」をしてみた

image

norirow さんのブログを見てちょっとネットワークをリセットして見ました。

iPhone4Sのバッテリーがネットワーク設定のリセットで回復したという検証結果まとめ。 | norirow’s Diary

というわけでやって見ました。

昨日
起動時間 18時間11分
使用時間 5時間2分

今日
起動時間 16時間14分
使用時間 5時間29分

まだ電源はオフになっていないので5時間45分くらいまではMaxでいきそうですね。最後のほうこんな時間なので思わずゲームとかしてみたりしたのでその影響もあるかもな。でも若干延びたような気がします。1

それ以外では言えば昨日データ通信が 80M だったのが、今日は240Mですね。朝型Wifi環境でのダウンロードでしょうか?3Gではそれほど昨日と違う使い方していないのですが。逆に電話は使っていませんでした。

 

1% 5時間50分

機能に比べると大分伸びている感じですね。もう最後の方はディスプレイ(ON)で音楽流していたので微妙ですが(^^;もう少し延びた気もするな。

 

IMG_0888
IMG_0888 Photo by tokiyan

IMG_0889
IMG_0889 Photo by tokiyan

 

まぁノリロウさんも書いていますが、iPhone4Sのバッテリーは結構持つということですね。普段はニュースサイトメインですが場合によっては3G経由でビデオ見たりしているのでちょっと明日とかはその辺りの利用もしてみたいと思います。

  1. 明日また使ってみてですね [↩]

[雑記] 2011.11.15 バッテリーの調子はどうよ?

相変わらずこの話題は盛り上がっている気がします。

私のiPhone4Sは もともと「使用時間=起動時間」ではなかったので 5.0.1以前と以降では差を感じていません。周りの新しくiPhoneユーザになった人をみても誰もいないのでやはり既存環境から引継している人が問題になっているのかなぁ?と思っています。

@donpy さん、@motomaka さん、@norirow さん等も色々調査されていて興味深いです。ちょっと最近は100%フル充電の後にリブートを入れてみていますが別段代わりはない感じです。

参考文献

 

IMG_0879
IMG_0879 Photo by tokiyan

だいたい、5時間15分±15分ぐらいな気がしますね。毎日の使い方としては電車での往復でニュース見まくるというのが一番電波探したりして大変なんじゃないかと思います。音楽とかは特に聞きません。

 

IMG_0880
IMG_0880 Photo by tokiyan

昨日の22時にリセットした後のデータ通信の累計です。今日はニュースサイトくらいしか見ていないのでそれほど受信は行っていないですね。ビデオとか見たらあっという間なので。

 

WordPressのプラグインの情報でもエントリーしようと思ったけど流石にそんなんiPhoneじゃやってられね~ ちょうどバッテリーも枯渇しつつあるのでエントリーただいま1%なり。送信できるかなww

nginx + fastcgi (php5-cgi ) + mySQL on Serversman(Entory) でのチューニング

nginx

機能を制限してパフォーマンスの向上を。

WordPressは結構富豪な感じのブログなのでパワーを食う。

ServersManに移動してから完全に放置していたので最近遅くなったようなぁと思いながらもそのままにしてしまっていた。また借りていた当初に比べて空きがなくなってきたのかなんか全体的に遅くなってきたような気がしている。

この一番安いEntryプランはメモリ 256M (保証1G)となっている。実際に固定で割り当てられているメモリは 256Mとなっていて後は空き次第らしい。1 という訳で覗いてみると。

root# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Feb15 ?        00:00:12 init
www-data  3391 50628  2 09:53 ?        00:07:06 /usr/bin/php5-cgi
www-data  5419 50628 12 14:19 ?        00:01:11 /usr/bin/php5-cgi
www-data 34756 50628  0 Sep14 ?        00:00:03 /usr/bin/php5-cgi
root     42137     1  0 Feb15 ?        00:01:04 cron
syslog   42184     1  0 Feb15 ?        00:00:34 /sbin/syslogd -u syslog
www-data 46403     1  0 Feb22 ?        00:00:00 /usr/bin/perl /usr/bin/fastcgi-wrapper.pl
www-data 46750 50628  0 Oct29 ?        00:05:06 /usr/bin/php5-cgi
www-data 50628     1  0 Aug26 ?        00:00:00 /usr/bin/php5-cgi
root     50704 58564  0 14:29 ?        00:00:00 sshd: root@pts/1 
root     50786 50704  0 14:29 pts/1    00:00:00 -bash
root     50987 50786  0 14:29 pts/1    00:00:00 ps -ef
www-data 51056 50628  0 01:25 ?        00:07:10 /usr/bin/php5-cgi
mysql    52964     1  0 Mar26 ?        03:09:37 /usr/sbin/mysqld
www-data 56366 50628  0 Oct03 ?        00:03:41 /usr/bin/php5-cgi
root     58564     1  0 Aug26 ?        00:00:00 /usr/sbin/sshd
root     58936     1  0 Aug26 ?        00:00:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayalive -
root     59067     1  0 Aug26 ?        00:00:00 nginx: master process /usr/sbin/nginx
www-data 59091 59067  0 Aug26 ?        00:10:16 nginx: worker process
www-data 59092 59067  0 Aug26 ?        00:10:04 nginx: worker process
www-data 59093 59067  0 Aug26 ?        00:10:00 nginx: worker process
www-data 59094 59067  0 Aug26 ?        00:10:17 nginx: worker process
www-data 59095 59067  0 Aug26 ?        00:00:52 nginx: cache manager process
root# free
             total       used       free     shared    buffers     cached
Mem:       1048576     544784     503792          0          0          0
-/+ buffers/cache:     544784     503792
Swap:            0          0          0

当初はこんな感じ、なんか以前は普通にセットアップして

root# ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1   2464  1416 ?        Ss   Feb15   0:12 init
www-data  7204  2.9  4.1  78976 43060 ?        S    19:48   0:43 /usr/bin/php5-cgi
root      9355  0.0  0.5   7300  5556 ?        Ss   Nov13   0:00 /usr/sbin/munin-node
mysql    12108  3.9  0.8  41560  8536 ?        Ssl  20:13   0:00 /usr/sbin/mysqld
root     13488  0.0  0.0   2360   916 pts/1    R+   20:13   0:00 ps aux
www-data 32273  0.0  0.7  65020  7508 ?        Ss   Nov13   0:00 /usr/bin/php5-cgi
root     32583  0.0  0.1  14236  1192 ?        Ss   Nov13   0:00 nginx: master process /usr/sbin/nginx
www-data 32584  0.0  0.2  14728  2544 ?        S    Nov13   1:15 nginx: worker process
www-data 32585  0.0  0.1  14236  1552 ?        S    Nov13   0:00 nginx: cache manager process
root     40660  0.0  0.0   2420   888 ?        Ss   Nov12   0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayalive -inetd_compat -inetd_ipv6
root     42137  0.0  0.0   2300   912 ?        Ss   Feb15   1:04 cron
syslog   42184  0.0  0.0   1912   700 ?        Ss   Feb15   0:34 /sbin/syslogd -u syslog
root     44401  0.0  0.3   9024  3440 ?        Rs   19:19   0:00 sshd: root@pts/1
root     44507  0.0  0.1   3112  1832 pts/1    Ss   19:19   0:00 -bash
www-data 46403  0.0  0.2   5140  2772 ?        Ss   Feb22   0:00 /usr/bin/perl /usr/bin/fastcgi-wrapper.pl
root     58564  0.0  0.0   5468   940 ?        Ss   Aug26   0:00 /usr/sbin/sshd
www-data 64767  2.5  3.7  78720 39680 ?        S    19:45   0:41 /usr/bin/php5-cgi

root# free
             total       used       free     shared    buffers     cached
Mem:       1048576     160084     888492          0          0          0
-/+ buffers/cache:     160084     888492
Swap:            0          0          0

いまはこのようになっている。ログがなかったので今回分は ps aux で確認している。メモリの使用量が半減しているのが (544M –> 160M )見ていただけていると思う。多分普通にリソースがあるサーバですることではない。変更点は以下のとおり

 

1. nginx

・worker_processes 5 –> 1 仮想CPUの割当が1つしか無い様なの同時実行すうを削減

・worker_connections 256 –> 1000 worker_processesの変更に伴い逆にコネクション数は上げる

・Keep alive  -> 0  DoS攻撃の対策にも0に設定する

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 26
model name      : Intel(R) Xeon(R) CPU           L5520  @ 2.27GHz
stepping        : 5
cpu MHz         : 903.096
cache size      : 8192 KB
physical id     : 1
siblings        : 8
core id         : 0
cpu cores       : 4
apicid          : 16
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
bogomips        : 4522.10
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: [8]

2. fast-cgi (php5-cgi )

アプリケーションサーバである fast-cgi も以前は複数起動していたがこれも削減する。実際には1サーバあたり100M程度利用しているので(共有メモリは考えないで)これも変更する (/usr/bin/php-fastcgi)

変更:5 –> 2 2

 

3.MySQL

一番メモリを大量に消費しているのはMySQL。普通に何もしないと512M~1024Mほど消費されてしまうのではないのかと。ちょっと導入した直ぐ後の構成が無いので不明ですが。ディフォルトのMySqlの設定だとInnoDBが利用できるように成っていますがWordpress的には全てのテーブルはMyISAMで作成されています。( show tables status で確認できますので要確認)、この場合InnoDBに変更も出来ますがトランザクションが少ないなら特にこのままでも良いのでMySQL側でInnoDBを利用しないように修正します。

-skip-innodb 

上記を /etc/mysql/my.cnf に追記して再起動 (service mysql restart )するとメモリが激減しているのがわかる。他にもかなりパラメータを貧素に変更しているのでパフォーマンスは落ちているカンジがするのでこのあたりは少しづつ上げていきたい。

 

4. まとめ

今後の方針としてはパフォーマンスを上げるためにリソースを使用する方向でチューニングをしていきたいがまずは貧祖にする方向に一度フルことで確認が出来るかなぁと思っている所。数値的に正しく検証を取るべきなのだろうがちょっとそこまでできていない。MySQLのパラメータを結構弄ったら MUNINの監視項目「 MySQL slow queries 」の項目の値が 200m付近から300m付近になってしまったのでこのあたりを戻していければと思う次第(代わりにメモリはだいぶ稼げた)。また同時接続ユーザはこのブログはとても少ないので(^^; nginxやfast-cgiのプロセス数の現象自体は影響が出てないと思っているのだがその辺りも検証していきたい。少なくとも此方側で言えば、io sleep や loadave の数値は改善されている。

最後に、mysqlで削減できた分は fast-cgi (php5-cgi )のプロセスを 2 –> 3 に増加させることで使用してみた。

途中経過としては ab (apaceh bentch)を利用して測定していたが値としては整理しきれていないので詳細なチューニングはまた今度行う。

 

あれ?結局放置していただけでなにもチューニングになってないやん!っというおちか。。。

  1. 空きがない場合には仮想側では実際にはスワップしているけど仮想ホスト側では物理メモリでスワップしていないように見えるという理解でいいのかな? [↩]
  2. 最終的には 3 にした [↩]

[InputOutput] 2011.11.13 今週のアプリ

今週も色々出ていまいた。無料版はなるべく使ってみたいなぁと思いながらもほんの少しだけ。最近は写真系のアプリが大量生産されているのですがなかなか手を付けられていません。今週は「辞書」と「Dypticフレーム」の日本だったかな。

よく利用しているのはあまり変わりがないのですが、4SになってよくiPhoneだけで文章を書くことが多くなりました。

DraftPad App
カテゴリ: 仕事効率化
価格: 無料

PostEver – 1日分のメモが1つのEvernoteノートに App
カテゴリ: ビジネス
価格: ¥600

この2つはお世話になった感じだな。

ブログとかで色々アプリが紹介されているんだけど「いい」というものだけで「いい」けど俺は使ってないよっていう感じの紹介が無いなぁと、逆に「いい」アプリでもなんか別のアプリのここが気に入っていて使っていないんや。みたいな意見も面白いかと思って削除したもの含めて今週触ったアプリを☆付した。(作者様すみません。。。)


指標
☆☆☆:消した
★☆☆:保留
★★☆:当面使ってみる
★★★:一軍レベル

アプリ 評価 コメント
Ping Analyzer – Graphical Network Ping App
カテゴリ: ユーティリティ
価格: ¥170
★☆☆ すでに170yenですね。無料ならいいかも知れませんが有料なら微妙です。サイトをブックマークできるので素早くPingが出来ます。AverageRTT, Max/MinRTT ,Jitter, PacketLoss, LineQuality が計測できる
辞書 App
カテゴリ: 辞書/辞典/その他
価格: 無料
★★★ 今週登場したこの辞書アプリはiOS5であれば必須のアプリですね。これだけ手軽に辞書が使えて無料ときたら入れるしか有りません。iOS5の辞書機能もサードベンダー使えるようになると面白いんですがね。
90 in 1 : APPZILLA! App
カテゴリ: ユーティリティ

価格: 無料
AppZilla 2 FREE! App
カテゴリ: ユーティリティ
価格: 無料

★★☆ 大量にユーティリティが収まっているアプリです。まぁなにかの役に立つかも知れないので一応置いておくに越したことはないかと思うアプリ。はまれば使いたいものが見つかるかも!
Dyptic フレーム FREE App
カテゴリ: 写真/ビデオ
価格: 無料
★★★ 今週一番のあたりだったかも知れない、写真のフレームに配置が出来るアプリ。無料でこのての加工が出来るものを知らなかったので良い感じです。サイズは1200×1200が最大でスクウェアになってしまうのが残念。それでも手軽に出来るのはいいことですね。こんな感じで飾れます
IMG_0849
Days Away App
カテゴリ: 仕事効率化
価格: ¥85
☆☆☆ 特定の日から幾日たったのか、幾日あるのかを表示してくれるアプリ。画面はシンプル。機能として「日」単位でしかできないのが残念な感じです。これも無料の時に購入した。この手のアプリを持っていない人にはいいかも知れません。
Orchestra To-do App
カテゴリ: 仕事効率化
価格: 無料
☆☆☆ グループで実施するTodoなのかな。あまり詳しくは使って見れていません。
LINE App
カテゴリ: ソーシャルネットワーキング
価格: 無料
★☆☆ まだ未使用
ヘアチェン Hair Change App
カテゴリ: エンターテインメント
価格: 無料
☆☆☆ ヘアごとに写真をとって重ねないといけないとか、、、面倒でした。
Cocktail Calendar (Free) App
カテゴリ: 仕事効率化
価格: 無料
☆☆☆ 案件ほど実際のアプリは可愛くない。他のアプリでも十分の機能。有料版ではまた違うのかも知れませんが

 

無料アプリも最新の値段を確認の上ご購入下さい。

ではまた来週!?

MuninでHTTPレスポンスを監視する

リソース監視をする

ServersManのVPSをUbuntuで借りているのですが、Muninという監視ツールでのリソースの監視をしています。他にも色々ツールはあるのですが特にCPUがどうなったといっても何もすることも無いのでグラフだけで十分なので利用しています。

なにもいじっていなかったのでHTTPのレスポンスを図るようにしました。

A Munin plugin to track http response times.

こちらにPython製のHTTPレスポンスを図るプラグインがあります。Githubからダウンロードしましょう。1

https://github.com/arthur-debert/munin-httpresponse-plugin/blob/master/httpresponsetime

 

Muninの導入ディレクトリにもよるかと思いますが

# ls -l httpresponsetime
-rwxr-xr-x 1 root root 3842 Nov 12 19:50 httpresponsetime

に配置します。
設定は /plugin-conf.d/munin-node に記載を行います。

[httpresponsetime]
env.urls http://roguer.info,http://roguer.info/nginx_status

こんな感じでサイトのURLを指定しています。反映させるには通常通り munin-node を再起動すれば良いです

# service munin-node restart

これでグラフが追加されます。

Http Response Times

しばらくこれでモニターをしてみたいと思います。

  1. 利用にあたって httplib2 が必要となりますので導入してない場合には導入しましょう。通常のPythonのライブラリ同様 #python setup.py installで導入ができます [↩]