スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MySQL - sleepプロセスが溜まる

うちの会社で構築しているデータベースサーバー(MySQL)のうち、やけにsleepのプロセスが溜まりやすいサーバーがある。

sleepというのはMySQLに接続しているけど何も実行されてないですよー。待機中ですよー。という状態。

そしてついにこないだ、sleepが溜まりまくり、コネクションが設定してある1000を超えてサーバーに接続出来なくなってしまった。

プログラム側の問題かもしれないし、MySQL側の問題かもしれないけど、今後そういう状況に陥るとまずい。
という事で、sleepのタイムアウトを短くする設定を試してみた。

MySQLのtimeoutには

・interactive_timeout
・wait_timeout

の2つが存在する。

マニュアルを見ても違いが良く分からない(知識不足なだけ?)のだけど、恐らく

・mysqldump等で1つのコネクションで持続的に動作があるものに対するタイムアウト設定はinteractive_timeout
・mysql -uroot -p等でログインしたけど何も操作していない。プログラム側で、Connectしたけど何もしていない。でもプログラム側は(MySQLとは全く関係のない)別の処理を続けている。等に対するタイムアウト設定がwait_timeout

なのではないかと思っている。(間違っていたらご指摘お願いします!)

デフォルトではwait_timeoutは28800(8時間)に設定されているのだが、それをとりあえず1800にしてみる。
余談だけど、最大値は「31536000」(365日)のようです。

「実践ハイパフォーマンスMySQL」によると、wait_timeoutを短くするのなら、thread_cacheの増量を検討するべきだとあるけれど、実際にwait_timeoutを変更してから、どの程度の割合でthreadが作成・消去されるのかが分からないので、必要であれば増量を考えてみようと思う。

ちなみに現状ではthread_cacheは32。ヒット率は90%前後。
暫くは様子見かな・・・?
スポンサーサイト

この記事のトラックバックURL

http://kgworks.blog47.fc2.com/tb.php/42-5dc8ba82

コメント

お久です。。
パソコンが早くも復帰しルンルンです。
お久しぶりです。
パソコン復旧おめでとう!早くプログラムできる環境が作れるといいね!
今勉強中です。
そういえばXAMPP、phpMyAdmin入ってました・・・
また悪魔の囁きがぁ。。
phpMyAdminの設置はそんなに難しくないから、ちゃんと一個一個入れていきましょう(笑)
もし2.9系で出来なかったら2.7とか使ってもいいんだし。
えーと、ついさっき何気なくhttp://localhost/phpmyadmin/index.php
にアクセスしたら・・・
できました^^;

PHPのphp_mysql.dllを読み込んで無かったみたいですね・・・。
ていうかエラーメッセージの日本語おかしいだろ・・・
「識別できない拡張子です。」

「PHPのエクステンションを読み込んでないみたいです」

・・・ちょw
おお、やったじゃん!
これでやっとPHP+MySQL環境での開発が出来そうかな?
はいー^^
あとはちこちこApache、PHPの設定を見直して行きます。

何しようかなぁ。
えぇぇぇぇぇ?掲示板作るんじゃないの!?
目指せ!THE BBSで!
もちろん掲示板は作ります(汗
ただ、データベースを使うからには大規模な仕様にした方がいいかと思うのです。
既存のTHEBBS.PHPに、様々な管理機能を加えた物とか。
サポータさん機能とかあったら便利ぽいですね。それに決めた。。
データベース使うから大規模じゃないといけないという事はないと思いますよ。
どのテーブルがどの役割をするべきなのかをしっかり持っていればとりあえず問題ないかと。
今からデータベースの概念を猛勉強します。
いやすいません本当はしませんもう少しで寝ます。
一応PEARライブラリに関しての予備知識を後学として調べてますです。
本を読んで勉強するのかな?
正規化とかリレーションとかいう言葉が多々出てくると思うけど、本を読みつつも実際に稼動するソフトウェア(phpBBやNucleusのような比較的大きなもの)を設置してみて、実際にどう使われているのか、自分が実際にテーブル設計する時にはどう設計するかを考えてみるといいかも。かも。

自分は正規化だったりリレーションという言葉ばかり覚えて、実際にじゃあテーブル設計してくれっていう時に何も出来なくて苦労したので(笑)
や、本は基本的に買わない主義です。
本当は買った方がいいかもしれませんけど、
どうせネットで手に入る情報なら、ネットで手に入れたほうがいいと思うのです。
昔、本を買おうかといろいろ漁ったのですが、
「びびっと」来るものが無かったんですよね。
なんか「独習PHP」が入門書として人気らしいですけど・・・
自分も本は買わない主義ですね。

コンピュータ関係の本、2冊しかないですから(コードコンプリート上と実践ハイパフォーマンスMySQL)
PHPごとき(生意気な!)にお金はかけたくないのが本音です(笑)
欲しい本はあったりするけど、ビジネス関係の本だったりコンピュータと関係ない本だったりします。
本買うと検索に頼らない自分に成って行く気がしてイヤです><
検索に頼って本を読む力がなくなる自分も嫌です(笑)
ネットで検索して学ぶものと、本を読んで学ぶものをうまく分けていきたいな。
そろそろ実は本を買おうかと思ってます。
新しいことをネットだけで調べるのも厳しくなってきましたし。
本、買ったらどんな本を買ったか教えてね!
自分はコンピュータ系の本を買うとき、非常に神経質になるので(笑)
や、たぶん初心者向けの本にすると思います。
それと、「HTML+PHP」とか「○日で覚える」って言うのは買わないほうがいいってことを聞きました。
つまり、一つのことに特化していて、尚且つ時間が掛かっても内容は充実している本
を買おうと思います。後は安めの・・・(金がぁぁっぁぁ

極めるPHP!なんて買わないですけど。
○日で覚えるとかは、長く読み返せないパターンが多いので勿体無いと思います。
というかPHPの本はいらないような気がします。
マニュアルも充実しているし、チューニングのための設定項目もMLや一般のブログで結構載っていたりするから。

極めるPHP!というのもネットで探せば転がってるような情報のような気がします。

もし、PHP+MySQLで開発するに当たって、何をどうすればいいのか分からないなら、その入り口だけが分かる本でいいと思うよ。
基盤の部分が分かれば、後はネットに情報は沢山あるのでそれらから自分のスタイル(フレームワーク)を作っていけばいいんじゃないかな。

PHPからMySQLに接続する方法はPEAR::DBだったりPHPの関数からだったり、PDOだったり色々あるけど、とりあえずどういう方法があって、自分はどういう方法でやってみようかという部分を探してみると、良い本に出合えるかもしれません。
そうですね^^
ネットでいろいろ探すことにします。。。

コメントする

管理者にだけ表示を許可する

Template Designed by DW99

テクノラティ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。