teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

メモリ量の見積もりについて追記した。

2016/01/04 05:49

投稿

eripong
eripong

スコア1546

answer CHANGED
@@ -16,4 +16,54 @@
16
16
  最低限、コントロールパネルの情報は必要と思います。
17
17
 
18
18
  それから、現象発生時に/var/log/messagesやhttpd、mysqldのログなどに、
19
- 何かエラーログは出ていませんか?
19
+ 何かエラーログは出ていませんか?
20
+
21
+ ---
22
+ (2016/1/4 14:42追記)
23
+ 大雑把に、接続毎に使用するメモリと、接続数によらず使用するメモリがあるので、
24
+
25
+ 0. 入口で接続数を制限する
26
+ 0. 接続毎のメモリ量を制限する
27
+ 0. 接続数によらないメモリの量を制限する
28
+
29
+ ことが必要と思います。
30
+ ```
31
+ 接続数×接続毎のメモリ量+接続数によらないメモリの量
32
+ ```
33
+ が総メモリ量の八割程度に収まるようにしておくのが良いかと思います。
34
+
35
+ 1.は、p-chanさんの回答にある、Apacheの多重度の制限で実現すれば良いと思います。
36
+ MaxClients、KeepAlive、MaxRequestsPerChildの設定が重要と思います。
37
+
38
+ 2.と3.については、ApacheとMySQLで分けて書きます。
39
+ ### Apache
40
+ 2.については、制限するというより、まずはどのくらい使用しているか見た方が良いと思います。
41
+ 1プロセスでは300MB程度のようなので、これをいくつの接続で使用したかを設定値を見て
42
+ 判断することになると思います。
43
+ 接続数はpreforkなら1ですし、workerならThreadsPerChildに設定した値と思います。
44
+ 3.については、おそらくApacheで接続数によらずに使用するメモリは少ないので、
45
+ 考慮に入れなくて良いと思います。
46
+
47
+ ### MySQL
48
+ 2.3.についてのMySQLの設定では、[この](http://blog.mogmet.com/calculate-mysql-total-memory-sql/)ページや[この](http://sawara.me/mysql/1428/)ページにもある、以下のパラメータの設定を見直すことになると思います。
49
+ - リクエスト毎のメモリ
50
+ ```
51
+ sort_buffer_size
52
+ join_buffer_size
53
+ read_buffer_size
54
+ read_rnd_buffer_size
55
+ net_buffer_length
56
+ ```
57
+ - リクエスト数によらないメモリ
58
+ ```
59
+ key_buffer_size
60
+ query_cache_size
61
+ innodb_buffer_pool_size
62
+ innodb_log_buffer_size
63
+ innodb_additional_mem_pool_size
64
+ ```
65
+ 設定値が、サーバにMySQLしかない場合に合わせてあり、
66
+ Apacheが使う分のメモリが計算に入っていない可能性があるのではと思っています。
67
+ 設定値を見ていないので、ただの憶測ですが。
68
+
69
+

1

リンクを追加した。

2016/01/04 05:48

投稿

eripong
eripong

スコア1546

answer CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  異様に重たくなるなどの現象が出た際、CPU、ネットワークトラフィック、
11
11
  ディスクI/Oの状況は分かりますか?
12
- さくらvpsにはコントロールパネルが有るようなので、
12
+ さくらvpsには[コントロールパネル](http://vps.sakura.ad.jp/feature/controlpanel.html)が有るようなので、
13
13
  その情報で良いので提示できますか?
14
14
 
15
15
  メモリの使用量もあると良いのですが、