CPU コアの不一致を回避する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CPU コアの不一致を回避する

ライセンスカバーよりも多くのコアを持つサーバーを選択すると、CPUスキューが発生し、CPU電力が浪費される可能性があります。これは、論理コアと物理コアがマッピングされるためです。クライアントアクセスライセンス (CAL) で SQL Server を使用する場合、一部のスケジューラは VISIBLE ONLINEになり、残りは になりますVISIBLE OFFLINE。これにより、スケジューラノードが最適に使用されていないため、不均一なメモリアクセス (NUMA) トポロジでパフォーマンスの問題が発生する可能性があります。

例えば、m5.24xlargeインスタンスで SQL Server を実行すると、24 コアの 2 つのソケットとソケットあたり 48 の論理プロセッサが検出され、合計 96 の論理プロセッサになります。48 コアのみのライセンスがある場合は、SQLサーバーエラーログに次のようなメッセージが表示されます。

2020-06-08 12:35:27.37 サーバーSQLサーバーは、サーバーSQLライセンスに基づいて 48 個の論理プロセッサを使用し、ソケットあたり 24 個のコアとソケットあたり 48 個の論理プロセッサを持つ 2 個のソケットを検出しました。これは情報メッセージであり、ユーザーによる操作は必要ありません。

合計コア数とSQLサーバーで使用されているコア数に違いがある場合は、CPU使用状況の不均衡を確認するか、ライセンスがサポートするコア数と同じ数のサーバータイプを使用してください。

CPU skew: この例のインスタンスタイプ (m5.24xlarge) では、SQLサーバーはデフォルトで 8 つのNUMAノードを作成します。これらのノードのうち 4 つ (親ノード ID 0、1、2、3) だけが、ステータスが VISIBLE ONLINE であるスケジューラを持っています。残りのスケジュールはすべて VISIBLE OFFLINE です。このようなスケジューラー間の相違は、パフォーマンスの低下につながる可能性があります。

スケジューラーの情報とステータスをチェックするには、以下を使用します:

$ select * from sys.dm_os_schedulers

サーバーライセンスがサポートするコア数よりも多くのコアを持つSQLサーバーインスタンスを使用する場合は、Amazon EC2ドキュメントの「インスタンスCPUのオプションを指定する」の手順に従ってコア数をカスタマイズすることを検討してください。