2017-07-31 22 views
0

私たちは、大きなデータの挿入とデータの読み取りを持っている私たちのクーリエAPIアプリケーションをホストしています。私たちは、55cpuと128GB RAMと1TB SSDディスクを搭載したubuntu 16サーバーの最大スループットを達成しようとしています。私は私が私たちのオープンファイルの上限は、MySQLでMySQLとOpened_files使用のために65000だった見ることができました確認しているが、以下の「innobdbステータス結果」カーネルの制限 "オープンファイルの制限"とMySQLの "Opened_files"は関連していますか?

29 queries inside InnoDB, 517 queries in queue 
32 read views open inside InnoDB 
Process ID=2197, Main thread ID=140312433551104, state: sleeping 
Number of rows inserted 169904, updated 1662462, deleted 3, read 44626802863 
26.33 inserts/s, 202.20 updates/s, 0.00 deletes/s, 6061352.15 reads/s 

ある84981. 私の質問は、オープンファイルの制限 『「カーネルの制限です』されていますmysql Opened_filesは関連していますか? "

show global variables like 'open%'; 
+------------------+-------+ 
| Variable_name | Value | 
+------------------+-------+ 
| open_files_limit | 65536 

MariaDB [(none)]> show status like '%Opened_files%'; 
+---------------+-------+ 
| Variable_name | Value | 
+---------------+-------+ 
| Opened_files | 84981 | 
+---------------+-------+ 
1 row in set (0.00 sec) 

我々は異常な突然の巨大なスパイクを経験しているし、私たちのAPIを開始するには、接続をドロップします。

+0

nisamudeen97:質問に答えた場合は回答を受け入れてください – tukan

答えて

2

これらは2つの異なるものです。 1つのOpened_filesは、最後にmysqldが再起動してから何回テーブルを開いたかを示すカウンタです。 あなたが細くtable_open_cacheことによって、より良いperformenceを得ることができチューニングデータベースをしたいが、それはこの質問一方open file limit

の範囲外である場合は、あなたにどのように多くのファイルがわかりますハードオペレーティング・システムの制限であり、同時に開くことができます。制限は、通常、2^16(ファイルの別名のエイリアス)よりも多少低くなります。より詳細な説明は、説明して範囲外です。

ご質問に直接お答えください:これらは関連していません。

1

興味深い値は、Opened_files/Uptimeの商です。例えば、2 /秒は「合理的」です。

また、table_open_cache,innodb_open_filesなどが該当します。

より徹底的な分析については、

  • RAMサイズ
  • SHOWの変数を提供してください。
  • SHOW GLOBAL STATUS;

あなたが提供したスニペットは、重いテーブルスキャンを暗示しているようです。おそらくいくつかのインデックスがありませんか?一般的なクエリーや遅いクエリーのいくつかについて説明しましょう。