web-dev-qa-db-ja.com

XTP_THREAD_POOLプロセスはすべて何をしていますか?

私はただ走ったsp_whoを使用するSQL Server 2016インスタンスでMEMORY_OPTIMIZEDテーブル、いくつかのXTP_THREAD_POOL実行中のプロセス:

xtp nonsense

出力に関するその他の詳細:

  • 正確に6つありますXTP_THREAD_POOL結果セットの行
  • 私のシステムには2つの論理コアがあります
    • 具体的には、VM 2ソケット-各ソケットに1コアプロセッサを搭載
  • これらのタスクはすべてバックグラウンドで実行されています(sa)

これらのプロセスは何をしていますか?私はこのタスク名についてGoogleであまり見つけていません。

TIA

5
Josh Darnell

実際、これらのタスクに関する情報を入手することは困難です。

ドキュメント( メモリ内ストレージの作成と管理OLTP->スケーラビリティ )は、

SQL Server 2016(13.x)では、メモリ最適化テーブルへの変更を永続化する複数の同時スレッドがあります。

また、ドキュメントにはこれらの同時スレッドに関連付けられている可能性のある「cmd」の値は記載されていませんが、 Bob WardのPowerPoint があり、上記のドキュメントページにリンクして、このプロセスの詳細を追加しています:

これらはcommand = XTP_THREAD_POOLまたはXTP_PREEPMTIVE_TASKとして表示されます。

したがって、これらのタスクは、メモリ内で使用されるデータとデルタファイルを保持していますOLTP up-to-date。それら常にバックグラウンドで実行します。アイドル状態の間、待機します DISPATCHER_QUEUE_SEMAPHORE 待機します。


プレゼンテーションでは、次の点にも言及しています。

プールは#論理CPU以下になる必要があります...

したがって、これらのプロセスのうち6つが2プロセッサボックスで実行されているのを見るのは少し意外です。これはバグであるか、BobのPowerPointプレゼンテーション以降、状況が変わっている可能性があります。うまくいけば、私よりもヘカトンの賢さを持っている人がやって来るでしょう。

HTH

6
Josh Darnell