だから私はシングルコアサーバーでMariaDB 10データベースを実行しています。非常に強力ではありませんが、要件も大きくありません。
しかし、1つの注目すべき点は、リストにhtop
約28の項目が表示されることです。これは、1つのプロセスに27のスレッドを追加したものです(スレッドは基本的にプロセスのようにリストされているため)。mysql
htop
しかし、私のデータベースは、接続ごとに1つの基本スレッドではなく8つのスレッドに制限されたスレッドプールを使用するように構成されており、そのスレッドをすべて使用しないため(現在は2つです)、さらに25が必要なため、同じです。スレッドは何に使用されますか?この数を減らす方法はありますか?
これは必ずしも問題になるわけではないことを知っていますが、遅いクエリをほとんど経験せず(ほとんどのクエリが非常に簡単なため、一般的な<1msではなく>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
答え1
これらのスレッドはさまざまな用途に使用されます。開始と終了を待つメインスレッド、InnodbとAriaのいくつかのバックグラウンドスレッドがあります。
接続しgdb
て実行して、thread apply all bt
彼らが何をしているかを確認してください。ほとんどの人は何もせず、イベントが起こるのを待っています。