PHPで実行時間を測定する
月曜日, 2月 25th, 2008簡単なのだけど忘れやすいのでメモ。
仕事で本格的に vi を使い始めて一ヶ月ちょっと。やっと慣れてきました。慣れて来たは良いけど、普通の GUI のエディタやブラウザのテキスト入力時まで ESC 押したり、dd 押したりしてしまいます。慣れは怖い。いままで敬遠していたのですが、慣れてしまえば vi ってものすごく使いやすいのかも、と思ってきました。
ブログを書いてる時も vi だったら楽なのに…という事が多々ありまして、ブラウザ上で vi 入力できる部品とか、有るんじゃない?と思って探したら、案の定、有りました。実用的ではないかもしれません。
MOONGIFT: » JSVim:オープンソースを毎日紹介
http://gpl.internetconnection.net/vi/
Emacs もあるよ。
ssh-agent に秘密鍵を登録してパスフレーズ無しで scp コマンドを実行しようと思っているのですが、うまくいきません。
key-gen で ~.ssh 以下に id_rsa という鍵を作ってユーザールートで
んで、他マシンから scp コマンドを実行してファイル転送してもパスワード聞かれる。なんでやろ?
// TODO 解決したら後で書く
@IT:sshでパスワードなしにログインするには
ITmedia エンタープライズ : Linux Tips「ssh-agentでパスフレーズをキャッシュさせたい〜ノンパスワードの実現〜」
特に使う予定はないのだけど、 mac から PPTP で会社の Win マシンに接続する方法のメモ。
アプリケーション > インターネット接続 で新しい VPN (PPTP) 接続を作成。
参照
・MacとWindowsを繋ごう (無線LANとかVPNとか)
・VPN on Mac OS X
Microsoft Remote Desktop で会社のマシンにつなげる。
・Remote Desktop Connection for Mac
他にもクライアントはいろいろあるみたい。
接続はできるのだけど、何らかの理由で強制的に切断される。S さんに調べて頂いたら、MTU が大きすぎてサーバー側から切断されていた模様。あー、また知らん単語が出てきましたよー。
BASIC認証を通してしかアクセスできないようにする
アクセス制限したいディレクトリに .htaccess と .htpasswd というファイルを作成して、以下の設定をする。
.htaccess ファイルに
AuthUserFile /ディレクトリのパス/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your password. " AuthType Basic require valid-user
.htpasswd ファイルに
ユーザー名:暗号化したパスワード
.htaccess実践活用術 さんの # IDとパスワードによるアクセス制限(Basic認証)の説明が分かりやすいです。
SSL以外ではアクセスできないようにする
.htaccess に SSLRequireSSL を追加する。
よく囁かれる余談ですが、自分と違う分野で働いている友人に「IT系の人ってサーバーとかパソコンのことを擬人化するよね」と言われた。筐体を指さしながら「この人、ファイルサーバーにしていい?」とか「(このサーバーが)お亡くなりになった」とか言うのが面白いらしい。
暗号技術入門-秘密の国のアリス
会社のサーバーで SSL を扱うので勉強してみようと思って読んでみた。なにこれ。面白い。技術書なのに推理小説を読んでいるときみたいな心持になる。
結城 浩さんの本は興味を持つきっかけを与えてくれるような書き方をされているので本当に面白い。Javaでもお世話になりました。
Windows Server 2003上で ASP.NET + SQL Server 2005 の構成で Webページを表示する速度が遅い。
考えられる原因
・プログラムがどこかで遅い処理をしている
・クライアント側のネットワークが遅い
・サーバー側のネットワークが遅い
処置
・SQL Server 2005 の使用メモリを全体の約半分にしてみる。放って置くと SQL Server は際限なくメモリを使ってしまうので、それを制限する。SQL Server Management Studio の左ペインでサーバーのプロパティを開き、最大サーバーメモリを設定する。
・IIS の設定で、HTTP 圧縮をしてみる。サーバーとクライアントの間のデータ転送を圧縮して行う。
・遅い処理のコードレビュー
・IIS のリサイクルタイミングを増やす。そのままだと、リサイクルの際にセッションが切れてしまうので、State Service を利用する。
参考 [ASP.NET]セッション情報を外部プロセスで管理するには?
以上を試してメモリ消費は少なくなったのだが、まだまだ画面遷移に時間がかかるので Ajax で非同期通信を取り入れ画面遷移を無くした。断然、表示が速くなったので、お客さんに好評。画面表示が早くても遅くても、お客さんの作業進捗率はあまり変わらないようだ。しかし「さくさく動く」とユーザーに感じさせることは重要だと思い知らされた。
本日のコマンド。
bzcat yyy_log-20060923.bz2の中のxxxという文字列を含む行だけ出力。
> bzcat yyy_log-20060923.bz2 | grep xxx
いちいち解凍せんくていいんや。
SUSE Linux のカーネルのバージョンがあがっていたのでアップデートしたら、OSが立ち上がらなくなりました。どうにもこうにもならなくなったので、Sさんに助けて頂いた。どうやら、SoftwareRAIDの定義ファイル /etc/mdadm.conf の先頭行が消えていたみたいです。
Linuxにはどうにか慣れてきたけど、こういうときにはまだ右往左往してしまう。
追記 2006/08/29
Sさんが社内wikiにメモしてたものを了承を得て掲載。個人的にもメモっておきたかったので。
1) Rescue環境で起動し、rootでログイン。(OpenSUSEのCD1から起動→Rescue)
2) mdデバイスに、物理ディスクを結びつける。
# mdadm -A /dev/md0 /dev/sda1 /dev/sdb1 # mdadm -A /dev/md1 /dev/sda2 /dev/sdb2 # mdadm -A /dev/md2 /dev/sda3 /dev/sdb3 # mdadm -A /dev/md3 /dev/sda5 /dev/sdb5 # mdadm -A /dev/md4 /dev/sda6 /dev/sdb6 # mdadm -A /dev/md5 /dev/sda7 /dev/sdb7 # mdadm -A /dev/md6 /dev/sda8 /dev/sdb8
うちのサーバーはこんな感じで、以下の通りの領域割当となっている。 md0 (sda1/sdb1) : / md1 (sda2/sdb2) : (swap) md2 (sda3/sdb3) : /usr md3 (sda5/sdb5) : /var md4 (sda6/sdb6) : /tmp md5 (sda7/sdb7) : /home1 md6 (sda8/sdb8) : /home2
3) 適当なマウントポイントを作成し、/(ルート)パーティションをマウントする。
# mkdir /tmp/sysroot # mount /dev/md0 /tmp/sysroot
4) その中の/etc/mdadm.confの情報を正しいものにする。
# echo "DEVICE /dev/sda* /dev/sdb*" > /tmp/sysroot/etc/mdadm.conf.new # mdadm --detail --scan >> /tmp/sysroot/etc/mdadm.conf.new # cat /tmp/sysroot/etc/mdadm.conf.new (内容を確認して、正しいようならば差し替え) # cp /tmp/sysroot/etc/mdadm.conf.new /tmp/sysroot/etc/mdadm.conf
5) マウントポイントを/として、作業環境を作成する
# chroot /tmp/sysroot # mount /usr # mount /var
6) 起動イメージを作成する
# mkinitrd -d /dev/md0
7) 可能な限りアンマウント処理を行って、再起動する
# umount /var # umount /usr # exit # umount /tmp/sysroot # reboot
OSが動かんくなったら、Rescueモードで起動。次にこうなったら私がやります…。
Apacheのバージョンがあがったので、うちのサーバーもバージョンを上げた。ついでにSさんに教えてもらったことをメモ。
mod_status, mod_info の両方とも Apacheセキュリティ では
ほかのものよりも危険性が高いため、それらのインストールが必要かどうかについて検討すべきモジュール
と書かれている。
セキュリティを考えて、この情報は外部からアクセスできないようにした方が良い。
