人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

第3者にサーバーを操作されているようで、Webサーバーが大量なメモリーを利用しようとして再起動してもすぐダウンしてしまいます。HTMLページは問題なく表示されます。
mysqlがダウンしているようで対処方法をアドバイスいただきたいのですが?
mysqlのアカウント数やテーブル数も多いので手間のかからない方法があればよいのですが・・ちなみにバージョンは4.0です。

●質問者: kaji0245
●カテゴリ:インターネット ウェブ制作
✍キーワード:HTML MySQL Web アカウント アドバイス
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● t_shiono
●19ポイント

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

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


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


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

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

◎質問者からの返答

/.../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近くありましたが・・


2 ● Yota
●19ポイント

まず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やメモリが楽になります。

◎質問者からの返答

/.../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近くありましたが・・


3 ● hallo21
●18ポイント

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

http://end

◎質問者からの返答

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


4 ● stoned247
●18ポイント

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

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

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

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



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

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


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

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


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


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

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

◎質問者からの返答

/.../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近くありましたが・・


5 ● t_shiono
●18ポイント

現象を確認すると、

・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

◎質問者からの返答

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


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ