したがって、私はシングルコアサーバーでMariaDB10データベースを実行しています。それほど強力ではありませんが、私のニーズもそれほど大きくありません。
ただし、私が気づいたことの1つは、htop
を見ると、リストに約28個のmysql
エントリが表示されていることです。これは、1つのプロセスと27個のスレッドであると考えています(htop
は、デフォルトでプロセスのようなスレッドをリストします)。
ただし、データベースは接続ごとにデフォルトの1スレッドではなく、8スレッドの制限を持つスレッドプールを使用するように構成されており、これらすべてを使用しているわけではないため、これは多くのように思われます(現在は2スレッドです)。 、それで他の25のスレッドは何のためにあるのでしょうか?この数を減らす方法はありますか?
必ずしも問題ではないことはわかっていますが、クエリが遅くなることはめったにありません(ほとんどのクエリは非常に単純なので、通常の1ミリ秒未満ではなく0.5秒以上)。スレッドが多すぎると、原因となる可能性があります。突然目覚める人が多すぎます。
このスレッド数は正常ですか?それをさらに減らす方法はありますか、それともこれらの余分なスレッドは何か重要なことをしていますか?
Sudo grep thread /etc/mysql/my.cnf
thread_stack = 256K
thread_cache_size = 8
thread_handling = pool-of-threads
thread_pool_max_threads = 8
thread_pool_stall_limit = 200
これらのスレッドはさまざまな目的を果たします。起動してシャットダウンするまで待機するメインスレッドがあり、InnodbとAriaにはいくつかのバックグラウンドスレッドがあります。
gdb
を添付してthread apply all bt
彼らが何をしているのかを見るために-おそらく彼らはそこに座って、何らかのイベントが起こるのを待って何もしていません。