使用可能なRAMの50%を使用してテストします:
innodb_buffer_pool_sizeを非常に低くして、それが役立つかどうかを確認できます。
#/etc/my.cnf
innodb_buffer_pool_size = 1M
経験則では、innodb_buffer_pool_sizeを低メモリテストで使用可能なRAMの50%に設定します。これは、サーバーとを除くすべてを起動することを意味します MySQLInnoDB。 RAMの容量を確認してください。次に、その50%をInnoDBに使用します。
一度に多くの低メモリ設定を試すには:
より可能性の高い原因は、Webサーバーなど、そのサーバー上にある他のものです。
アパッチ?
Apacheや別のWebサーバーを使用していますか?その場合は、RAMの使用量を減らしてみてください。たとえば、Apache confでは、次のような低RAM設定を検討してください。
StartServers 1
MinSpareServers 1
MaxSpareServers 5
MaxClients 5
そして、次のようにリクエストに上限を設定します:
MaxRequestsPerChild 300
次に、Apacheを再起動します。
mod_wsgi:
mod_pythonでApacheを使用している場合は、mod_wsgiでApacheに切り替えてください。
Pympler:
それがまだ発生している場合は、Djangoが着実に成長している可能性があります。 PymplerでDjangoメモリプロファイリングを試してください:
SAR:
1日1回の失敗、次に1週間に1回の失敗のレポートは、毎日または毎週実行されているある種のcronジョブを示している可能性があります。たとえば、大量のRAMを使用するバッチプロセスやデータベースダンプなどがあります。
RAMの使用を追跡し、MySQLが停止する1時間前のRAMスパイクを探すには、優れたツールであるSARを確認してください。 http://www.thegeekstuff.com/2011/03/sar-examples/