mysqlのテーブルのクラッシュ


/usr/local/mysql/bin/myisamchk --recover --force --sort_buffer_size=2048M /usr/local/mysql/data/auc/200902.MYI

これでmysqlのテーブルがクラッシュしたのは2回目。前回は先月の中ごろだったので修復してから1ヶ月しかもたなかった。前回の修復作業はかなりの疲労を伴った。テーブルのレコード数が膨大であるためにいつ終わるのか見当もつかないから。テーブルのレコード数が4000万でそのうち4つのフィールドにインデックスが作成されている。結局、修復にかかる時間は前回の作業で20時間ほどかかった。今回はレコード数がそれより1000万増えているため、修復にかかる時間はさらに要することが予想される。

続きを読む mysqlのテーブルのクラッシュ

mysqlへの接続が8時間後に切れる

java.lang.Exception: The last packet successfully received from the server was20910 milliseconds ago.The last packet sent successfully to the server was 20910 milliseconds ago, which is longer than the server configured value of ‘wait_timeout’. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property ‘autoReconnect=true’ to avoid this problem.

(翻訳)

最後の箱はうまくサーバーwas20910から受け取りましたミリ秒、最後の箱がうまくサーバーに送信したago.Theは20910ミリ秒前でした、サーバーが『wait_timeout』の価値を構成したより、長いです。あなたは、どちらの期限切れになっておよび/またはあなたのアプリケーションで使用の前に接続有効性をテストして、クライアントタイムアウトのためにサーバー構成された価値を増やすか、この問題を避けるためにConnector/Jコネクションのプロパティ『autoReconnect=true』を使うことを考慮しなければなりません。

tomcatのウェブアプリケーションでサーブレットを実行したときに上記エラーが発生した。mysqlの設定で、my.cnfファイルには wait_timeout=28800 という設定をしているのだけれど、エラー内容はその値を増やすか、autoReconnect=trueを設定しろということらしい。それをすれば上記エラーは発生しなくなるのかわからないが、とりあえず試してみる。http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/jndi-datasource-examples-howto.htmlのページを参考に、tomcatのコンテキストファイルのデータベース接続urlに

url=”jdbc:mysql://localhost/database?autoReconnect=true

というパラメータを追加した。効果があるかどうかは様子見。

その後

java.net.ConnectException: Connection timed out
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:519)
        at java.net.Socket.connect(Socket.java:469)

というエラーが発生したのをログにて確認した。context.xmlファイルのデータベース接続情報のパラメータへ、自動再接続の設定を有効にするようにして動作テスト。以下記述例。データベースのurlの末尾に?autoReconnect=trueというパラメータを追加した。この状態で稼動したところ、1日稼動したところデータベースへの接続関連のエラーは発生していないことが確認できた。とりあえずしばらくは様子見。

<Context path=”/” reloadable=”true” docBase=”ROOT”>

<Resource name=”jdbc/db”
auth=”Container”
type=”javax.sql.DataSource”
driverClassName=”com.mysql.jdbc.Driver”
url=”jdbc:mysql://localhost/db?autoReconnect=true”
username=”nakahira”
password=”nakahira-pass”
maxActive=”100″
maxIdle=”100″ />

</Context>

apache2の設定備忘録

mod_rewriteの有効化

mod_rewriteはurlをリダイレクトする処理に使う。apache2では下記コマンドで有効化を行う。


# a2enmod rewrite

proxy_ajpの有効化

proxy_ajpはapacheとtomcatを連携する場合に使う。ポート80でのアクセスをtomcatの使うポート8080へ渡すために必要な設定。下記コマンドで有効化。


# a2enmod proxy_ajp

Debian amd64用のインストールCDを作成

前口上

現在私が使用しているサーバにインストールされているdebianは、2.6.24-etchnhalf.1-486というカーネルでインストールされている。cpuがamd64のマシンで使った場合、メモリが900MB程しか認識されないという現象があった。そのマシンのカーネルをamd64用のものをインストールしてアップグレードをしようと試みたが、アップグレードして起動後の動作確認においてネットワーク関連などのハードウェアドライバの認識などが上手くいかなかった。仕方が無いので、こうなったら最初から、インストールディスクの作成からはじめようと思ってOSの再インストール作業をすることにした。また、この際だからHDDの容量も現在使用している80GBのものから1TBのものへ換装してからやることにする。

続きを読む Debian amd64用のインストールCDを作成

DELL PowerEdge T105 のDebianのメモリが1GBしか認識しない

DELL PowerEdge T105にLinux のDebianをインストールしてから大分経過したが、今頃になってメモリが2GB搭載しているはずなのに1GBしか認識されていないことに気づいた。

cdn-project:/usr/local/src/tg3-3.92n# cat /proc/meminfo
MemTotal:       906400 kB
MemFree:        626112 kB
Buffers:         26468 kB
Cached:         125360 kB
SwapCached:          0 kB
Active:         152808 kB
Inactive:       110544 kB
SwapTotal:     2650684 kB
SwapFree:      2650684 kB
Dirty:               8 kB
Writeback:           0 kB
AnonPages:      111544 kB
Mapped:          39940 kB
Slab:             8572 kB
SReclaimable:     4248 kB
SUnreclaim:       4324 kB
PageTables:       1376 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:   3103884 kB
Committed_AS:   570956 kB
VmallocTotal:   122564 kB
VmallocUsed:      3440 kB
VmallocChunk:   118904 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
HugePages_Surp:      0
Hugepagesize:     4096 kB

トータルで利用できるのが906.4MBとなっている。2GB利用できるつもりでマシンをチューニングしていたため道理でパフォーマンスが悪いと思っていた。今現在のインストールされているDebianは、

cdn-project:/usr/local/src/tg3-3.92n# uname -a
Linux cdn-project.net 2.6.24-etchnhalf.1-486 #1 Mon Sep 8 05:28:59 UTC 2008 i686 GNU/Linux

となっている。というわけでamd64のDebianをインストールすることを検討。

ウェブサイトユーザビリティのポイント

ユーザビリティとは

ユーザビリティとは、大まかに言って使い勝手のことを指す。ソフトウェアや電化製品や乗り物など、人がそれを使う場合に使いやすいと感じるか、使いにくいと感じるか、それを抽象的な概念として定義したものをユーザビリティと言う。多くの人が使い勝手が良いと感じるものをユーザビリティが優れているとされ、誰にも平等に使うことができるユニバーサルデザインと似た側面を持つ。

続きを読む ウェブサイトユーザビリティのポイント