2012-08-01から1ヶ月間の記事一覧

nginx + php + fastcgi

あらかじめphpをcgi用(--with-apxs をつけずに)でインストールしておくこと(php-cgi バイナリが必要)。fastcgiはepelにspawn-fcgi があるのでこれを使う。 # yum install --enablerepo=epel spawn-fcgi # vim /etc/sysconfig/spawn-fcgi #### socket, php-cg…

nginx + perl + fastcgi

http://www.ruby-forum.com/topic/145858 http://library.linode.com/web-servers/nginx/perl-fastcgi/ http://library.linode.com/web-servers/nginx/perl-fastcgi/centos-5 http://d.hatena.ne.jp/Kmusiclife/20111107/1320678141 install fastcgi # yum i…

nginx fastcgi で PATH_INFO を取得する

fastcgi などを設定した際に location . \.cgi$ と設定すると、/index.cgi/foo/bar などのURLに対応できないのでやった。 nginx.conf location ~ \.cgi($|/) { include fastcgi_params; fastcgi_pass 127.0.0.1:8999; fastcgi_index index.cgi; fastcgi_spli…

tarとncを使って簡単にディレクトリごと他のサーバに転送

http://d.hatena.ne.jp/hogem/20101115/1289827270 続き tarと組み合わせればファイルだけじゃなくてディレクトリごといけますね。ncの入出力にtar の"-" で標準入出力を使えば良い。 portは適当(ここでは10000) 送信サーバ tar zcvf - ./directory | nc -l …

通常transport_maps では設定できない静的配送先のsmtpサーバを冗長構成で設定する

http://miyatech.blog.so-net.ne.jp/2011-10-01-1 久々にやったらど忘れしてた。sendmailのmailertableと違って、postfixのtransport_mapsはsmtpサーバを1つしか指定できないため、静的配送先のサーバを冗長構成で指定できない。(配送先サーバが死んだとき…

mysql リストア時のチューニング

巨大なデータをimportで少しでもリストア時間を短縮したいとき。 my.cnf restore時は堅牢性は必要ないので、binlogやinnodbの二重書き込み等を無効にする。 # log-bin の項目をコメントして起動 # bin_logを無効にできない場合は、せめてsync_binlog = 0 ski…

mysql の複合インデックス復習

mysqlは1つのSQLで、1つのテーブルには1つのインデックスしか利用されない。 なので、whereで2つのカラムを条件に指定する場合それぞれのカラムにインデックスを張っていたとしても、(where id = 0 and name = 'hoge' のような) どちらか1つしか利用されない…

シェルスクリプトで空白をクォートしている引数とコマンドを変数に入れて実行する場合はevalを使う必要がある

何かタイトルが長くてわかりにくいですね。 普通に変数に入れているだけだと、クォートしていても空白区切りで別々の引数として認識される。 foo.sh 【grep "foo bar"】を変数に入れて、それをそのまま実行する。 $ cat foo.sh #!/bin/bash grep='grep "foo …

fio でdisk のパフォーマンス測定

http://freecode.com/projects/fio http://sourceforge.jp/magazine/08/05/22/0127246 install libaio-devel がいる。 # yum install libaio-devel # wget http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz # tar zxvf fio-2.0.7.tar.gz # cd fio-2.0.7 # mak…

Kyoto.pm Tech Talks 02 でSys::VirtとSys::Guestfsについて発表してきた

http://kyoto.pm.org/entry/2012/07/29/195512 主催者のid:shiba_yu36 さん、また会場を提供して頂いたはてな/はてなスタッフの皆さんありがとうございました&お疲れさまでした。 perlでkvm (libvirt) を操作する話をしてきました。ちょっと緊張してしまっ…

innodbのinnodb_log_file_size を大きくする

mysql停止後ib_logfile* を削除した後、innodb_log_file_size を変更しmysqlを起動する。が、停止する際にログの内容をデータに確実に反映させるために mysql> set global innodb_fast_shutdown = 0;を実行してから停止したほうが良いとのこと。出典忘れた。…

mysqltunerでmysqlの設定値を診断してチューニングする

https://github.com/rackerhacker/MySQLTuner-perl/ mysqltuner.pl を実行するだけ。 $ git clone git://github.com/rackerhacker/MySQLTuner-perl.git $ cd MySQLTuner-perl $ perl mysqltuner.pl"!!"の項目が改善すべき項目。 $ perl mysqltuner.pl >> MyS…

LVM パーティション をrescue モードから操作する

LVMを使っていない場合はrescueモードで起動したあとに # mount /dev/sda1 /mnt/sysimageなどとするだけで良いけど、lvmを使っているとそのままではパーティションが見えないのでmount出来ない。 rescue モード起動時にはlvmパーティション領域が有効になっ…

sysv-rc-conf - debian/ubuntu での起動時のdaemon一覧確認コマンド

RHEL/CentOS/SL 系のchkconfigのdebian/ubuntu版?久々にdebian触ったら完全に忘れてしまっていた。なぜかdefaultで入ってないのでaptで入れておく。 # apt-get install sysv-rc-conf # sysv-rc-conf --list # sysv-rc-conf exim4 off # sysv-rc-conf exim4 …

libguestfsのperl binding Sys::Guestfs で仮想マシン image のデータにアクセスする

http://libguestfs.org/ http://libguestfs.org/guestfs-perl.3.html Sys::Guestfs はcpanにはないので、libguestfsのとこからとってくる or package からinstallする。ちなみに↑のURLのsynopsys は間違っている(古い内容?) なのでinstallした後のperldoc S…

virt-clone を使ってcliでkvmの仮想マシンをcloneする

virt-manager からcloneするのはやったことあるけど、cliはなかったのでやってみた。 といってもコマンド1発で終わるのでやってみたというほどのことではなかった。 man virt-clone # virt-clone --original original_vm \ --name new_vm \ --file /path/to…

vnstat を使ってlinuxサーバのtrafficをお手軽に確認する

http://humdi.net/vnstat/ vnStat is a console-based network traffic monitor for Linux and BSD that keeps a log of network traffic for the selected interface(s). サーバのtrafficを真面目に確認/監視したい場合はcacti, mrtg等を使うのが通常だと思…

noVNCでブラウザからvnc接続

お名前ドットコムのvpsで使ってるらしいので使ってみた。HTML5対応のブラウザが必要。 http://kanaka.github.com/noVNC/ VNC client using HTML5 (WebSockets, Canvas) with encryption (wss://) support. 動かす localhost:5901 のvnc portにプロキシさせる…

ip addr addで追加されたaliasアドレスはip addr show で表示されるけどifconfig では表示されない

確か昔keepalivedでvrrpするときにも内部でipコマンド使われてて同じことになった記憶がある。ip コマンドで設定されたものはifconfig では表示されないので、サーバのIP見る時はip addr show で見たほうが確実なのでは、と今更思った。なんで今さら言ってい…

CentOS 6 perl 5.10.1 でPersistentPerl がmake できない

ナズェ? # cpan > look PersistentPerl # make make[1]: ディレクトリ `/root/.cpan/build/PersistentPerl-2.22-FqO72S/src' に入ります make[1]: `all' に対して行うべき事はありません. make[1]: ディレクトリ `/root/.cpan/build/PersistentPerl-2.22-FqO7…

tcp関連の/proc パラメータ復習

/proc/sys/net/ipv4/ 以下のアレ。高負荷時にはチューニングすると良いらしいけど、これを設定して効果が出るような状況にはまだ出くわしたことない。 tcp_fin_timeout default: 60 (秒) tcpのシーケンスでFIN-WAIT2からTIME_WAIT に移行するまでの待ち時間…

bigpipe でbigipのstatusをCLIで確認/設定する

設定する、と書いておきながらなんだけど、ミスったら嫌なので設定はGUIでしかやったことない。help はbigpipe だけで叩いたのを見たらだいたいわかる。 persist tableを確認 bigpipe persist show all pool のstatus カレント/最大 接続数とか bigpipe pool…

Big-IP iRule使ってUser-Agent でpersistenceする

なんか書いてみた。下の例は携帯電話の時にpersistenceするiRuleなので、PCも含めて全部対象にする場合はswitch -regexp の条件分をまるごとけずって、persist uie [HTTP::header User-Agent] 600 などとしたら良い。 when HTTP_REQUEST { switch -regexp [s…