sql >> データベース >  >> RDS >> Mysql

mysqldサービスはec2サーバーで1日1回停止します

    使用可能な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/



    1. PostgreSQLがタイムゾーンのないタイムスタンプからタイムゾーンのあるタイムスタンプに誤って変換する

    2. MySql接続でSSLを使用しているかどうかをどのように判断しますか?

    3. notifyDataSetChanged()のWinDeath

    4. テーブルのCONNECTBYLEVELが余分な行を返すのはなぜですか?