0

Web サイトを Linode に移行したばかりで、現在 1 GB RAM プランを使用しています。デフォルトでは、mysql ユーザーの数は 100 に設定されていました。これにより、Too many connectionsエラーが発生しました。

これを利用してmysqlの設定を再度編集しました。しかし、現在、データベースはほぼ毎日クラッシュしています。

これが私の現在のmysql設定です:-

key_buffer              = 100M
max_allowed_packet      = 1M
thread_stack            = 128K
thread_cache_size       = 8
myisam-recover         = BACKUP
max_connections        = 150
table_cache       ​ ​     = 1024​
query_cache_limit       = 300M
query_cache_size        = 300M ​
max_allowed_packet      = 16M
key_buffer              = 100M

変更点や、データベースが頻繁にクラッシュする理由を誰か教えてもらえますか? サーバーに関する詳細をオンデマンドで追加することもできます。

編集

私はどこにでも mysql_close($con) を追加しましたが、それはどういうわけか私のウェブサイトの問題をさらに増やしました.接続は以下に示す結果で指数関数的に増加しています:-

mysql> show status like '%onn%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Aborted_connects         | 48    |
| Connections              | 1634  |
| Max_used_connections     | 8     |
| Ssl_client_connects      | 0     |
| Ssl_connect_renegotiates | 0     |
| Ssl_finished_connects    | 0     |
| Threads_connected        | 4     |
+--------------------------+-------+
7 rows in set (0.00 sec)

ありがとう !

4

2 に答える 2

0

実際、増加する指数関数的接続の主な原因は、私のテーブル自体でした。私はMYISAM dbを使用していました。実際には、更新を行う前にテーブル全体をロックします。そのため、あまりにも多くのユーザーが私の Web サイトにアクセスすると、問題が発生していました。

解決 :-

データベースを InnoDB に変更しました。必要な個々の行のみをロックします。これは、一度に接続できる数が 1 桁までに制限されています。これは、問題を完全に解決するのに役立った別の質問です。

于 2013-04-11T10:51:51.090 に答える