1

mysqlで開いているファイルを減らす方法があるかどうか疑問に思っていました。

詳細 :

  • mysql 5.0.92

  • 使用エンジン:MyISAM

  • 'Opened_tables' のようなグローバル ステータスを表示: 150K

  • 「%open%」のような変数を表示:

        open_files_limit    200000
        table_open_cache    40000
    

試した解決策:

  • サーバーの再起動: 開いているテーブルのカウンターは 0 で動作しますが、カウンターが急速に増加するため、毎週再起動が必要になるため、これは私の pov からの良い解決策ではありません

  • FLUSH TABLES : mysql のドキュメントのように、使用中のすべてのテーブルを強制的に閉じる必要がありますが、これは起こりません

それで、この問題について何か考えはありますか?

4

1 に答える 1

4

通常、開いているテーブルの多くは心配する必要はありません。OS の制限に近づいた場合は、カーネル設定でこの制限を増やすことができます。

Linux で開いているファイル数の制限を変更するにはどうすればよいですか?

MySQL は各セッションのテーブルを個別に開き、同時実行性を高めます。

table_open_cacheおよびmax_connectionsシステム変数は、サーバーが開いたままにしておくファイルの最大数に影響します。これらの値のいずれかまたは両方を増やすと、プロセスごとに開いているファイル記述子の数に対してオペレーティング システムによって課せられた制限に達する可能性があります。多くのオペレーティング システムでは、開いているファイルの制限を増やすことができますが、その方法はシステムによって大きく異なります。

詳しくはこちらで解説しています

http://dev.mysql.com/doc/refman/5.5/en/table-cache.html

編集

max_connections仮定を検証するために、table_open_cache一時的に を減らすことができますSET GLOBAL table_open_cache := newValue

サーバーを再起動せずに値を動的に調整できます。

MySQL 5.1 より前のバージョンでは、この変数はtable_cacheと呼ばれていました

私が伝えようとしていたのは、この値を減らすと、おそらく同時読み取りの可能性が低くなるという点でパフォーマンスに悪影響を与える可能性があるということです (キューが長くなります)。代わりに、OS の制限を増やして を増やす必要がありますがmax_open_files、おそらく私はここで要点がわかりません

于 2013-01-25T10:01:14.227 に答える