第3者にサーバーを操作されているようで、Webサーバーが大量なメモリーを利用しようとして再起動してもすぐダウンしてしまいます。HTMLページは問題なく表示されます。

mysqlがダウンしているようで対処方法をアドバイスいただきたいのですが?
mysqlのアカウント数やテーブル数も多いので手間のかからない方法があればよいのですが・・ちなみにバージョンは4.0です。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:2007/06/02 10:00:53
  • 終了:2007/06/06 13:33:37

回答(6件)

id:t_shiono No.1

t_shiono回答回数256ベストアンサー獲得回数222007/06/02 10:42:49

ポイント19pt

mysqlの対処というよりは、まずは、第3者に何をされているかを特定すべきではないでしょうか?

また、mysqlのダウンとのことですが、処理の負荷が大きくなって機能しなくなっているのか、サービスそのものが停止されてしまうのか、この辺りも明確にならないと答えにくいです。


また、直接は関係ないかもしれませんが、気になる点としては、Webサーバ上のmysqlは恐らくサイト内で表示するデータのために用意しているのだと思うのですが、それであれば、アカウントが多量にあることも問題な気がします。


まずは、問題(mysqlの処理が過負荷になる・第3者に操作される など)、その根拠(topで確認した・ログに不正アクセスが残っていた など)を明確にして頂ければと思います。

http://q.hatena.ne.jp/

id:kaji0245

/.../apache/logs/error_logに下記のエラーです。

Allowed memory size of 8388608 bytes exhausted (tried to allocate 942080 bytes)

Allowed memory size of 8388608 bytes exhausted (tried to allocate 256000 bytes)

Allowed memory size of 8388608 bytes exhausted (tried to allocate 129 bytes)

また、mysqlのアカウントは5つだけでした。テーブル等は100近くありましたが・・

2007/06/03 06:10:46
id:Yota No.2

Yota回答回数453ベストアンサー獲得回数282007/06/02 11:16:03

ポイント19pt

まずDBのログをとって、DBサーバにアクセスするユーザ数が原因なのか特定のクエリが原因なのか調べる。

その上でバッファサイズの調整などチューニングをするとか、SQLを見直すとか。テーブルの構造を検討するとかすればいいと思います。

http://dev.mysql.com/doc/refman/4.1/ja/slow-query-log.html

http://dev.mysql.com/doc/refman/4.1/ja/memory-use.html

でも結構てまがかかるので、とりあえずWEBサーバとDBサーバを分離するのが速いと思います。その方が問題の切り分けがしやすい上に、サーバごとのCPUやメモリが楽になります。

id:kaji0245

/.../apache/logs/error_logに下記のエラーです。

Allowed memory size of 8388608 bytes exhausted (tried to allocate 942080 bytes)

Allowed memory size of 8388608 bytes exhausted (tried to allocate 256000 bytes)

Allowed memory size of 8388608 bytes exhausted (tried to allocate 129 bytes)

また、mysqlのアカウントは5つだけでした。テーブル等は100近くありましたが・・

2007/06/03 06:11:06
id:hallo21 No.3

hallo21回答回数246ベストアンサー獲得回数22007/06/02 21:03:19

ポイント18pt

変なスクリプトを動かしている不良ユーザーいるだけだと思います。

http://end

id:kaji0245

ご回答ありがとうございます。サーバーを再起動しても1分ぐらいしたら、またSQLが落ちるのですが変なスクリプトをつきとめる方法はないでしょうか?

2007/06/03 06:06:10
id:stoned247 No.4

stoned247回答回数9ベストアンサー獲得回数02007/06/03 05:37:58

ポイント18pt

<< 第3者にサーバーを操作されているようで

これはどのようなこと意味しているのでしょうか?

ハッキングされているということですか?

仮にハッキングされているなら、それを一番最初に改善しなくてはいけないのではないでしょうか?



それ以外のことで考えられるのは、MySQLを使用しているという事は、何かPGを組まれているのでしょうか?

PGを組まれているのなら、以下の原因が考えられます。


・DBとの接続がcloseされないためにconnection数がオーバーしている。

・PG内でDBから取得する項目がループしているためにあっという間にメモリの使用量が限界値に達している。


質問内容がよくわからないので、これ以上のことはわかりませんがHTMLは正常に表示できているならばDBとの接続が怪しいかと思います。


javaでのコネクションに関して

http://www.hellohiro.com/datasource.htm

id:kaji0245

/.../apache/logs/error_logに下記のエラーです。

Allowed memory size of 8388608 bytes exhausted (tried to allocate 942080 bytes)

Allowed memory size of 8388608 bytes exhausted (tried to allocate 256000 bytes)

Allowed memory size of 8388608 bytes exhausted (tried to allocate 129 bytes)

また、mysqlのアカウントは5つだけでした。テーブル等は100近くありましたが・・

2007/06/03 06:11:27
id:t_shiono No.5

t_shiono回答回数256ベストアンサー獲得回数222007/06/03 09:49:40

ポイント18pt

現象を確認すると、

・apacheのログにはメモリ不足とのエラーが表示される

・mysqlを起動すると、1分ほどでダウンする

ということでしょうか?

apacheのログにそのログがでるのは、どの時点なのでしょうか?

仮に何かHTTPリクエストによるスクリプトがmysqlに対して変な処理をしていたとしても、起動しても1分というほどアクセスがあるのでしょうか?アクセスがあるのであれば、アクセスログから該当スクリプトは特定できると思います。

そうでなければ、apacheとは関係のないところでmysqlはダウンしているのではないかと思います。apacheのログは、mysqlの問題とは別なところでメモリ不足のエラーをはいたということではないかと思います。

この場合で1分程度とはっきりしているのであれば、常に稼動している、あるいは、短い間隔で定期的に起動されるプログラムが問題です。

つまり、

何かのサービスで変な処理を行っている

誰かがcronで何か変な処理を行っている

辺りではないかと思います。

いずれにせよ、mysqlのログを確認されてはいかがですか?

問題の処理に関係するものが、もう少し分かると思います。

http://dev.mysql.com/doc/refman/4.1/ja/log-file-maintenance.html

id:kaji0245

ご回答ありがとうございます、参考にさせていただきます。

2007/06/06 13:33:20
id:okinaka No.6

okinaka回答回数38ベストアンサー獲得回数12007/06/03 19:36:50

ポイント18pt

メモリ不足ということは、プログラムに問題がありそうですね。

どのプログラムへのアクセスがあるかを洗い出す。

プログラムがDBへどんなSQLを発行しているのか全て洗い出す。

あたりをログを出力させて見ながら検討します。

メモリが無くなるタイミングとあわせて調査するとよいです。

http://q.hatena.ne.jp

id:kaji0245

ご回答ありがとうございます、参考にさせていただきます。

2007/06/06 13:33:21

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません