2007年8月29日水曜日

YodaoBot襲来

IPアドレス「60.191.80.80」からのアクセスが大量にあったので、アクセスログを見てみたら
60.191.80.80 - - [29/Aug/2007:13:39:16 +0900] "GET /robots.txt HTTP/1.1" 200 58 "-" "Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.yodao.com/help/webmaster/spider/; )"
というログが残っていた。
YadaoBot、、、ヨダオって読むのか?
サイトにアクセスしてみると、どうやら中国語のサーチエンジンのようだ。Baiduと同じく、リソースの無駄になるだけなので早速アクセス不可にしておきました。

2007年8月9日木曜日

pear5

仕事でSuSE Linux上にアプリケーションを構築することになった。
phpアプリをサーバーにアップし、pearのライブラリをインストールしようと思って、
# pear install hogehoge
を実行しようとするが、pearコマンドがない!!
ググってみたところ、SuSE環境ではpearではなくpear5というのがあるようだ。
# pear5 install hogehoge
これで使えるようです。
ひとまず
# pear5 upgrade-all
を実行したのですが、そしたらもともとあった
/usr/bin/pear5
にくわえて
/usr/bin/pear
も出てきてしまった。どっちを使えばいいのかよく分からないのですが、とりあえずいつも使ってるpearのほうを使うようにしています。今のところ不具合は出ていません。。。

2007年7月26日木曜日

MySQLメモリ使用量の計算

って、どうやればいいんだろう??
と思って調べてみたらドンピシャのエントリを発見。
http://antas.jp/blog/ina/archives/2007/05/mysql_1.html

max_connections *
(sort_buffer_size
  + join_buffer_size
  + read_buffer_size
  + read_rnd_buffer_size
  + max_allowed_packet) <-- カッコ内は1接続あたりの使用メモリ
+ key_buffer_size
+ query_cache_size
+ innodb_buffer_pool_size
+ innodb_additional_mem_pool_size
+ innodb_log_buffer_size

ということです。参考にさせていただきました。

php.iniのmax_execution_timeとmax_input_time

先日、php.iniのmemory_limitをいじっていたら、そのすぐ上のところに

max_execution_time
max_input_time

という2つのパラメータがあり、気になったので調べてみました。


max_execution_time
スクリプトがパーサにより強制終了されるまでに許容される最大の 時間を秒単位で指定します。この命令は、いい加減に書かれた スクリプトがサーバーの負荷を上げることを防止するのに役立ちます。 デフォルトでは、30 に設定されています。
max_input_time
スクリプトが POST、GET そしてファイルアップロードなどの入力を パースする最大の時間を、秒単位で指定します。


自分が管理してるウェブアプリでは処理のボリュームが大きいスクリプトがいくつかあるので、デフォルト値より大きめの数字にしておきました。

「PHP Fatal error: Allowed memory size of 8388608 bytes exhausted」に遭 遇した

メモリが足りなくなるとこのエラーを吐くようです。
対処方法はメモリ量を増やすこと。
php.iniのmemory_limitの値を調整します。デフォルトで8Mになっているのを32Mにしたらエラーが出なくなりました。
php.iniを編集したら、apache再起動を忘れずに。。

mysqlでバイナリログを記録しない

my.cnfの
log-bin=mysql-bin
の行をコメントアウトするだけです。
大量のSQLを発行する場合など、ログを取るのと取らないのではSQLの実行速度がけっこう変わってくるようです。
あらかじめバックアップを取ってから大容量のバッチを実行する場合や、テスト環境などではバイナリログは取らないほうが効率が上がると思います。