伊藤くんの開発メモ -2ページ目

簡単にネットワークキャプチャ!<ngrep>

ngrepを使うと、ネットワークのキャプチャが簡単に行えます。
※インストールが必要です。

コマンドのは、以下の通りです。
・TCPポート番号80でフィルタリング
>ngrep -d eth0 tcp port 80 -W byline

・送信元IPでフィルタリング
>ngrep -d eth0 src 192.168.1.1 -W byline

・送信先IPでフィルタリング
>ngrep -d eth0 dst 192.168.1.1 -W byline

・送信元IPとポート番号80でフィルタリング
>ngrep -d eth0 src 192.168.1.1 and tcp port 80 -W byline


詳細は、参考URLを見て下さい。

月末の日付を取得する

PHPで月末の日付を取得するのは、非常に簡単です。date関数のt(指定した月の日数)を利用します。

date("Y-m-t")と書くと、今月の月末の日付が取得出来ます。

MySQLでプロセスのENDステータスが滞留する

高負荷の利用環境で、クエリーキャッシュを大きく取りすぎると、更新SQLがENDステータスで滞留してしまいます。場合によっては、ソケットのリソースを食いつぶし、DBへの接続が出来なくなります。
※SQLのENDステータスは、ドキュメントに記載されいませんが、SQL自体の処理は終了して、後処理(キャッシュのクリア等)を実行している際に表示される様です。

おそらくキャッシュ領域の更新処理が排他される為と思われ、大きなクエリーキャッシュを設定した際に、更新SQL毎に実行されるデータクリア処理に時間が掛かり全ての処理を止めてしまう様です。

今回、私が設定したクエリーキャッシュは3Gで設定したのですが、あっと言う間にサーバをダウンさせてしまいました。現在では、512Mbyte(デフォルト)に設定し快適に動作しています。

サーバプログラムにPHPを利用し、さらにPHPにてDBセッションを利用している為、PHPプログラムが終了する度にSESSIONデータの更新が常に発生している事も負荷を上げる要因の一つの様です。

しかし、クエリーキャッシュサイズを上げる方法が無いものですかね。。。