AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 334701
Accepted
hcm
hcm
Asked: 2024-01-10 02:25:12 +0800 CST2024-01-10 02:25:12 +0800 CST 2024-01-10 02:25:12 +0800 CST

Instância de banco de dados usando metade dos núcleos de CPU disponíveis

  • 772

Estou olhando para o seguinte cenário:

  • MSSQL Server 2019 Padrão em execução no Windows Server 2016.
  • sys.dm_os_schedulers mostra 12 núcleos lógicos de CPU disponíveis.
  • Esses 12 núcleos são divididos entre 2 soquetes.
  • Mesmo estando em 2 soquetes, eles parecem estar no mesmo nó NUMA (o servidor é virtualizado pelo VMWare) (saída coreinfo):
*-----------  Physical Processor 0
-*----------  Physical Processor 1
--*---------  Physical Processor 2
---*--------  Physical Processor 3
----*-------  Physical Processor 4
-----*------  Physical Processor 5
------*-----  Physical Processor 6
-------*----  Physical Processor 7
--------*---  Physical Processor 8
---------*--  Physical Processor 9
----------*-  Physical Processor 10
-----------*  Physical Processor 11

Logical Processor to Socket Map:
******------  Socket 0
------******  Socket 1

Logical Processor to NUMA Node Map:
************  NUMA Node 0
  • Não há afinidades configuradas.
  • O servidor está hospedando várias instâncias.
  • MAXDOP está definido como 6 para todas as instâncias.

Mas ainda assim um sintoma que estou vendo é que quando a instância 1 está executando um conjunto intensivo de consultas, a CPU está rodando em 50%, núcleos únicos estão usando 100%/muito pouca CPU, alternando: diagrama

Embora isso por si só esteja bom, naquele momento há a instância 2 que de repente apresenta um desempenho terrível e está até perdendo a conexão com o banco de dados.

Alguém tem uma idéia ou uma dica de onde procurar para restringir ainda mais esse problema? Fique à vontade para solicitar qualquer informação que precisar. :-)


edições: configuração do vSphere para @ErikDarling:

configuração do vsphere

saída do log de erros:

2023-09-05 23:15:51.95 Server      Microsoft SQL Server 2019 (RTM-CU22) (KB5027702) - 15.0.4322.2 (X64) 
    Jul 27 2023 18:11:00 
    Copyright (C) 2019 Microsoft Corporation
    Standard Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) (Hypervisor)

2023-09-05 23:15:51.95 Server      UTC adjustment: 2:00
2023-09-05 23:15:51.95 Server      (c) Microsoft Corporation.
2023-09-05 23:15:51.95 Server      All rights reserved.
2023-09-05 23:15:51.95 Server      Server process ID is 4852.
2023-09-05 23:15:51.95 Server      System Manufacturer: 'VMware, Inc.', System Model: 'VMware7,1'.
2023-09-05 23:15:51.95 Server      Authentication mode is MIXED.
2023-09-05 23:15:51.95 Server      Logging SQL Server messages in file 'D:\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG'.
2023-09-05 23:15:51.95 Server      The service account is 'NT Service\MSSQLSERVER'. This is an informational message; no user action is required.
2023-09-05 23:15:51.95 Server      Registry startup parameters: 
     -d D:\MSSQL15.MSSQLSERVER\MSSQL\DATA\master.mdf
     -e D:\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG
     -l D:\MSSQL15.MSSQLSERVER\MSSQL\DATA\mastlog.ldf
2023-09-05 23:15:51.95 Server      Command Line Startup Parameters:
     -s "MSSQLSERVER"
2023-09-05 23:15:53.75 Server      SQL Server detected 2 sockets with 6 cores per socket and 6 logical processors per socket, 12 total logical processors; using 12 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
2023-09-05 23:15:53.75 Server      SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
2023-09-05 23:15:53.76 Server      Detected 92159 MB of RAM. This is an informational message; no user action is required.
2023-09-05 23:15:53.76 Server      Using conventional memory in the memory manager.
2023-09-05 23:15:53.76 Server      Page exclusion bitmap is enabled.
2023-09-05 23:15:53.87 Server      Buffer Pool: Allocating 4194304 bytes for 2621440 hashPages.
2023-09-05 23:15:54.03 Server      Default collation: Latin1_General_CI_AS (us_english 1033)
2023-09-05 23:15:54.03 Server      Automatic soft-NUMA was enabled because SQL Server has detected hardware NUMA nodes with greater than 8 physical cores.
2023-09-05 23:15:54.15 Server      Buffer pool extension is already disabled. No action is necessary.
2023-09-05 23:15:54.32 Server      Query Store settings initialized with enabled = 1, 
2023-09-05 23:15:54.33 Server      The maximum number of dedicated administrator connections for this instance is '1'
2023-09-05 23:15:54.33 Server      This instance of SQL Server last reported using a process ID of 4524 at 05.09.2023 23:15:29 (local) 05.09.2023 21:15:29 (UTC). This is an informational message only; no user action is required.
2023-09-05 23:15:54.34 Server      Node configuration: node 0: CPU mask: 0x000000000000003f:0 Active CPU mask: 0x000000000000003f:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2023-09-05 23:15:54.34 Server      Node configuration: node 1: CPU mask: 0x0000000000000fc0:0 Active CPU mask: 0x0000000000000fc0:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2023-09-05 23:15:54.37 Server      Using dynamic lock allocation.  Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational message only.  No user action is required.
2023-09-05 23:15:54.38 Server      In-Memory OLTP initialized on standard machine.
2023-09-05 23:15:54.40 Server      [INFO] Created Extended Events session 'hkenginexesession'
2023-09-05 23:15:54.40 Server      Database Instant File Initialization: disabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.
2023-09-05 23:15:54.40 Server      Total Log Writer threads: 3. This is an informational message; no user action is required.
2023-09-05 23:15:54.43 Server      clwb is selected for pmem flush operation.
2023-09-05 23:15:54.45 Server      CLR version v4.0.30319 loaded.

sys.dm_os_schedulers:

scheduler_address   parent_node_id  scheduler_id    cpu_id  status  is_online   is_idle preemptive_switches_count   context_switches_count  idle_switches_count current_tasks_count runnable_tasks_count    current_workers_count   active_workers_count    work_queue_count    pending_disk_io_count   load_factor yield_count last_timer_activity failed_to_create_worker active_worker_address   memory_object_address   task_memory_object_address  quantum_length_us   total_cpu_usage_ms  total_cpu_idle_capped_ms    total_scheduler_delay_ms    ideal_workers_limit
0x0000025918220040  0   0   0   VISIBLE ONLINE  1   1   1153043 16864086    133496581   4   0   9   4   0   0   4   285671940   10880995620 0   0x00000259186BC160  0x000002591804E040  0x0000025918050040  4000    0   0   7283681 57
0x0000025918240040  0   1   1   VISIBLE ONLINE  1   1   1447172 19240663    140078602   5   0   10  4   0   0   4   301808773   10880994760 0   0x00000259183A8160  0x0000025918058040  0x000002591805A040  4000    0   0   7212441 58
0x0000025918260040  0   2   2   VISIBLE ONLINE  1   0   214859549   566109938   1285209060  4   1   9   4   0   0   6   -1417541559 10880995669 0   0x0000026F4AD94160  0x0000025918060040  0x0000025918062040  4000    0   0   32962149    55
0x0000025918480040  0   3   3   VISIBLE ONLINE  1   1   183703151   539137658   1240154119  3   0   9   3   0   0   3   -1502852373 10880995416 0   0x000002591850E160  0x0000025918068040  0x000002591806A040  4000    0   0   37429531    56
0x00000259184A0040  0   4   4   VISIBLE ONLINE  1   1   9690121 55468504    372230585   5   0   10  5   0   0   4   807572752   10880995541 0   0x0000025918580160  0x0000025918070040  0x0000025918072040  4000    0   0   14392226    56
0x00000259184C0040  0   5   5   VISIBLE ONLINE  1   1   86901162    272690595   959567522   4   0   11  3   0   0   2   2129958437  10880995650 0   0x0000026BFFCBE160  0x0000025918078040  0x000002591807A040  4000    0   0   24265549    57
0x00000259184E0040  0   1048578 0   HIDDEN ONLINE   1   0   10806   0   2405    1   0   1   1   0   0   1   2078088 10880994401 0   0x00000259186B6160  0x00000259186B0040  0x00000259186B2040  4000    0   0   0   2
0x0000025918C20040  1   6   6   VISIBLE ONLINE  1   1   14364691    48529713    395946180   4   0   9   3   0   0   2   862720484   10880993363 0   0x00000268144D2160  0x0000025918620040  0x0000025918622040  4000    0   0   14308350    57
0x0000025918C40040  1   7   7   VISIBLE ONLINE  1   1   981117  15276400    106523681   4   0   8   3   0   0   3   225092127   10880995322 0   0x0000025918E02160  0x0000025918628040  0x000002591862A040  4000    0   0   6992313 57
0x0000025918C60040  1   8   8   VISIBLE ONLINE  1   1   278403126   713103290   1467283639  2   0   8   2   0   0   1   -1025444988 10880995657 0   0x00000267DA07C160  0x0000025918630040  0x0000025918632040  4000    0   0   37662853    55
0x0000025918F00040  1   9   9   VISIBLE ONLINE  1   1   12156863    43687653    376792761   3   0   8   3   0   0   2   821501532   10880993419 0   0x0000026882FAC160  0x0000025918638040  0x000002591863A040  4000    0   0   12790071    56
0x0000025918F20040  1   10  10  VISIBLE ONLINE  1   1   183639496   503573475   1376124782  2   0   7   2   0   0   1   -1243539994 10880995250 0   0x00000268A8E1C160  0x0000025918640040  0x0000025918642040  4000    0   0   30034933    55
0x0000025918F40040  1   11  11  VISIBLE ONLINE  1   1   10686428    37944165    326803213   5   0   9   4   0   0   3   712439435   10880986711 0   0x0000025B1CADA160  0x0000025918648040  0x000002591864A040  4000    0   0   12708950    57
0x0000025918F60040  1   1048579 6   HIDDEN ONLINE   1   0   0   0   2215    1   0   1   1   0   0   1   2048291 10880993266 0   0x0000025919104160  0x000002591867E040  0x0000025919100040  4000    0   0   0   2
0x00000259191A0040  64  1048576 0   VISIBLE ONLINE (DAC)    1   1   4   9   12095   2   0   3   1   0   0   0   12102   10880209924 0   0x00000259186BA160  0x0000025919122040  0x0000025919124040  4000    0   0   0   5
0x000002591F9A0040  0   1048580 1   HIDDEN ONLINE   1   1   0   0   100614190   1   0   1   1   0   0   1   200151374   10880995666 0   0x000002591F96E160  0x000002591F968040  0x000002591F96A040  4000    0   0   0   2
0x000002591F980040  1   1048581 7   HIDDEN ONLINE   1   1   0   0   761882074   1   0   1   1   0   0   1   1210023305  10880995572 0   0x000002591F976160  0x000002591F970040  0x000002591F972040  4000    0   0   0   2
0x000002591F9C0040  1   1048582 8   HIDDEN ONLINE   1   1   0   0   755215122   1   0   1   1   0   0   1   1199890707  10880995666 0   0x000002591F97E160  0x000002591F978040  0x000002591F97A040  4000    0   0   0   2
0x000002591F9E0040  1   1048583 9   HIDDEN ONLINE   1   1   0   0   749447107   1   0   1   1   0   0   1   1191192769  10880995666 0   0x000002591FB80160  0x000002591F67C040  0x000002591F67A040  4000    0   0   0   2
0x0000025920320040  0   1048584 2   HIDDEN ONLINE   1   1   6   0   12128   1   0   1   1   0   0   1   12189   10880901314 0   0x0000025921A1E160  0x0000025921A18040  0x0000025921A1A040  4000    0   0   0   2
0x0000025920340040  0   1048585 3   HIDDEN ONLINE   1   1   2   0   12123   1   0   1   1   0   0   1   12179   10880901330 0   0x0000025921A32160  0x0000025921A2E040  0x0000025921A2C040  4000    0   0   0   2
0x0000025920240040  0   1048586 4   HIDDEN ONLINE   1   1   565500  0   2766233 1   0   1   1   0   0   1   5482068 10880994369 0   0x0000025924210160  0x000002592420A040  0x000002592420C040  4000    0   0   0   2
0x00000259285C0040  0   1048587 5   HIDDEN ONLINE   1   1   2972    0   3393964 0   0   1   0   0   0   0   6777584 10880866350 0   0x000002594F878160  0x000002594F860040  0x000002594F868040  4000    0   0   0   1
0x00000259285E0040  0   1048588 0   HIDDEN ONLINE   1   1   985 0   881850  0   0   1   0   0   0   0   1751250 10880866350 0   0x000002596012A160  0x000002594F87A040  0x000002594F87C040  4000    0   0   0   1
0x0000025960420040  1   1048589 10  HIDDEN ONLINE   1   1   1883    0   1831914 0   0   1   0   0   0   0   3652749 10880866350 0   0x0000025A85804160  0x0000025A85850040  0x0000025A85876040  4000    0   0   0   1
0x0000025960400040  1   1048590 11  HIDDEN ONLINE   1   1   2129    0   1854492 0   0   1   0   0   0   0   3698022 10880566076 0   0x0000025A85812160  0x0000025A85808040  0x0000025A85810040  4000    0   0   0   1
0x0000025A715A0040  0   1048591 1   HIDDEN ONLINE   1   1   2858    0   2369960 0   0   1   0   0   0   0   4730473 10880866319 0   0x00000259D154A160  0x0000025A46240040  0x0000025A46242040  4000    0   0   0   1
0x00000259283C0040  0   1048592 2   HIDDEN ONLINE   1   1   1431    0   1262788 0   0   1   0   0   0   0   2514230 10880176213 0   0x0000025A84230160  0x0000025A84264040  0x0000025A84244040  4000    0   0   0   1
0x000002596A680040  0   1048593 3   HIDDEN ONLINE   1   1   2599    0   2576020 0   0   1   0   0   0   0   5141377 10880866319 0   0x0000025A7982C160  0x0000025A79826040  0x0000025A79828040  4000    0   0   0   1
0x00000259283E0040  0   1048594 4   HIDDEN ONLINE   1   1   2634    0   2455946 0   0   1   0   0   0   0   4901224 10880176229 0   0x0000025A8426C160  0x0000025A8424A040  0x0000025A8426A040  4000    0   0   0   1
0x000002596A6A0040  0   1048595 5   HIDDEN ONLINE   1   1   2801    0   2731176 0   0   1   0   0   0   0   5451858 10880866335 0   0x0000025A79834160  0x0000025A7982E040  0x0000025A79830040  4000    0   0   0   1
0x000002592E8C0040  1   1048596 6   HIDDEN ONLINE   1   1   2416    0   2279872 0   0   1   0   0   0   0   4549033 10880176213 0   0x0000025A8298C160  0x0000025A829AA040  0x0000025A829A8040  4000    0   0   0   1
0x000002592E8A0040  1   1048597 7   HIDDEN ONLINE   1   1   3045    0   2940803 0   0   1   0   0   0   0   5871356 10880866319 0   0x00000259D13D6160  0x0000025A864FE040  0x00000259D13D2040  4000    0   0   0   1
0x000002595F9A0040  0   1048598 0   HIDDEN ONLINE   1   1   1173    0   1000858 0   0   1   0   0   0   0   1990374 10880866319 0   0x00000259D0E64160  0x0000025A84BFE040  0x00000259D0E52040  4000    0   0   0   1
0x00000259C0E80040  1   1048599 8   HIDDEN ONLINE   1   1   2070    0   2225588 0   0   1   0   0   0   0   4440225 10880814028 0   0x0000025A830BA160  0x0000025A830F4040  0x0000025A830B6040  4000    0   0   0   1
0x00000259C0EA0040  1   1048600 9   HIDDEN ONLINE   1   1   2337    0   2287844 0   0   1   0   0   0   0   4564136 10880866335 0   0x0000025A830D2160  0x0000025A830C2040  0x0000025A830C4040  4000    0   0   0   1
0x0000025A715C0040  0   1048601 1   HIDDEN ONLINE   1   1   2939    0   3071534 0   0   1   0   0   0   0   6134000 10880866319 0   0x0000025A47534160  0x00000259D1544040  0x00000259D1548040  4000    0   0   0   1
0x0000025A715E0040  0   1048602 2   HIDDEN ONLINE   1   1   2093    0   2161732 0   0   1   0   0   0   0   4312590 10880176229 0   0x0000025A4751E160  0x0000025A4751A040  0x0000025A47500040  4000    0   0   0   1
0x00000259240E0040  0   1048603 3   HIDDEN ONLINE   1   1   1518    0   1618964 0   0   1   0   0   0   0   3226729 10880866319 0   0x0000025A79FC2160  0x0000025A47508040  0x0000025A4752A040  4000    0   0   0   1
0x000002592E8E0040  1   1048604 10  HIDDEN ONLINE   1   1   1897    0   1558224 0   0   1   0   0   0   0   3105359 10880866319 0   0x00000259D13F6160  0x00000259D13E0040  0x00000259D13EA040  4000    0   0   0   1
0x0000025926DC0040  0   1048605 4   HIDDEN ONLINE   1   1   1875    0   2196012 0   0   1   0   0   0   0   4380991 10880176213 0   0x0000025A74E1C160  0x0000025A74E2E040  0x0000025A74E0A040  4000    0   0   0   1
0x0000025A86580040  1   1048606 11  HIDDEN ONLINE   1   1   1189    0   984507  0   0   1   0   0   0   0   1957588 10880566076 0   0x00000259D14C6160  0x00000259D14E2040  0x00000259D14F6040  4000    0   0   0   1
0x000002592A640040  1   1048607 6   HIDDEN ONLINE   1   1   1882    0   1544327 0   0   1   0   0   0   0   3077654 10880866319 0   0x0000025A82A42160  0x0000025A82A2C040  0x0000025A82A3A040  4000    0   0   0   1
0x0000025926DE0040  0   1048608 5   HIDDEN ONLINE   1   1   1308    0   1039508 0   0   1   0   0   0   0   2067713 10880814028 0   0x0000025A74E7E160  0x0000025A74E04040  0x0000025A74E02040  4000    0   0   0   1
0x000002595F9C0040  0   1048609 0   HIDDEN ONLINE   1   1   2829    0   2412064 0   0   1   0   0   0   0   4813658 10880866319 0   0x00000259D0E7C160  0x00000259D0E3A040  0x00000259D0E2E040  4000    0   0   0   1
0x000002595F9E0040  0   1048610 1   HIDDEN ONLINE   1   1   2379    0   2192673 0   0   1   0   0   0   0   4375512 10880866335 0   0x0000025A856EE160  0x00000259D0E42040  0x0000025A85690040  4000    0   0   0   1
0x0000025960440040  1   1048611 7   HIDDEN ONLINE   1   1   1386    0   1352646 0   0   1   0   0   0   0   2693439 10880866319 0   0x0000025A85842160  0x0000025A85854040  0x0000025A85858040  4000    0   0   0   1
0x0000025A86600040  0   1048612 2   HIDDEN ONLINE   1   1   3015    0   2869906 0   0   1   0   0   0   0   5729329 10880176229 0   0x0000025A6D2CE160  0x0000025A6D2F4040  0x0000025A6D2A8040  4000    0   0   0   1
0x0000025960460040  1   1048613 8   HIDDEN ONLINE   1   1   1610    0   1571447 0   0   1   0   0   0   0   3131717 10880866335 0   0x0000025A85862160  0x0000025A85864040  0x0000025A8584A040  4000    0   0   0   1
0x000002592A620040  1   1048614 9   HIDDEN ONLINE   1   1   3448    0   3469913 0   0   1   0   0   0   0   6929661 10880176213 0   0x0000025A82A4E160  0x0000025A82A46040  0x0000025A82A48040  4000    0   0   0   1
0x0000025A86620040  0   1048615 3   HIDDEN ONLINE   1   1   3332    0   3070622 0   0   1   0   0   0   0   6130958 10880176213 0   0x0000025A6D298160  0x0000025A6D2BC040  0x0000025A6D2E6040  4000    0   0   0   1
0x0000025A86700040  0   1048616 4   HIDDEN ONLINE   1   1   2185    0   1890908 0   0   1   0   0   0   0   3770898 10880866335 0   0x0000025A856E4160  0x0000025A856F0040  0x0000025A85686040  4000    0   0   0   1
0x0000025A86680040  1   1048617 10  HIDDEN ONLINE   1   1   2   0   15639   0   0   1   0   0   0   0   19194   10880884265 0   0x0000025A861F4160  0x0000025A861B8040  0x0000025A861EC040  4000    0   0   0   1
0x0000025A866A0040  1   1048618 11  HIDDEN ONLINE   1   1   3   0   14081   0   0   1   0   0   0   0   16078   10880884202 0   0x00000259D07F2160  0x0000025A861FE040  0x00000259D0668040  4000    0   0   0   1

sys.dm_os_nodes:

node_id node_state_desc memory_object_address   memory_clerk_address    io_completion_worker_address    memory_node_id  cpu_affinity_mask   online_scheduler_count  idle_scheduler_count    active_worker_count avg_load_balance    timer_task_affinity_mask    permanent_task_affinity_mask    resource_monitor_state  online_scheduler_mask   processor_group cpu_count
0   ONLINE  0x0000025918032040  0x000002591802A640  0x0000025918600160  0   63  6   6   23  3   45  60  1   63  0   6
1   ONLINE  0x0000025918604040  0x000002591802AD90  0x0000025919080160  0   4032    6   6   16  1   64  0   1   4032    0   6
64  ONLINE DAC  0x0000025919106040  0x000002591802B4E0  0x00000259186B8160  64  0   1   1   1   0   0   0   0   63  0   6

configurações de sistema:

configuration_id    name    value   minimum maximum value_in_use    description is_dynamic  is_advanced
1535    affinity mask   0   -2147483648 2147483647  0   affinity mask   1   1

Tracestatus DBCC: Nenhuma tabela é impressa, então presumo que isso prova que nenhum rastreamento está em execução.

sql-server
  • 1 1 respostas
  • 905 Views

1 respostas

  • Voted
  1. Best Answer
    Sean Gallardy
    2024-01-10T06:19:51+08:002024-01-10T06:19:51+08:00

    Mas ainda um sintoma que estou vendo é que quando a instância 1 está executando um conjunto intensivo de consultas, a CPU está rodando em 50%, núcleos únicos estão usando 100%/muito pouca CPU, alternando

    Embora isso por si só esteja bom, naquele momento há a instância 2 que de repente apresenta um desempenho terrível e está até perdendo a conexão com o banco de dados.

    O cerne da questão tem a ver com o agendamento da CPU e a afinidade de thread no Windows e no SQL Server.

    • Existem duas instâncias do SQL Server, nenhuma delas conhece a outra.
    • Existem dois soquetes, o SQL definirá a afinidade no nível do thread por soquete (já que nenhum outro sinalizador de rastreamento está presente).
    • O SQL Server apenas apresenta threads ao SO para serem agendados, não controla o agendamento deles.
    • O Windows programa como achar melhor.
    • A distorção da virtualização devido ao agendamento da CPU e às habilidades de processamento pode entrar em jogo, como CPU pronta e co-stop no VMWare.
    • MAXDOP está definido como 6, que é um soquete inteiro. O SQL Server normalmente não abrange soquetes ou nós NUMA para colocar threads paralelos.

    Sem entrar nas águas turvas da colocação de threads paralelos, é uma boa suposição que ele será colocado no conjunto de threads locais à conexão. Se a conexão veio originalmente na CPU 3, então ela seria local para o soquete 0, o que definiria o posicionamento do encadeamento para encadeamentos afinizados do soquete 0 (neste caso, 0 - 5). É essencialmente daí que vem o uso de 50% da CPU ... O SQL Server está executando a consulta paralela, os threads são definidos na Instância 1 do SQL Server como disponíveis para execução no sistema operacional, o sistema operacional os agenda em algum momento para execução.

    Isso acontece muitas vezes por segundo, qualquer ocorrência em uma espera fará com que o thread não seja agendado, pois estará em um estado de espera indefinido de acordo com o sistema operacional. Como essas não são as únicas threads a serem escalonadas, outros itens também precisam ser executados (como Instância 2, serviços, etc.) e podem estar em threads afinizadas ao mesmo conjunto de processadores. Eles podem não ter tempo para serem executados ou não serem concluídos devido a outros fatores (como ISRs, DPCs, APCs, etc.).

    Se a Instância 1 do SQL Server executar uma carga de trabalho intensa com muitos threads nos mesmos núcleos que a Instância 2 também deseja, ambos não poderão ser executados ao mesmo tempo. Além disso, o sistema operacional não sabe nada sobre SQL, possíveis tempos limite, erros ou qualquer outra coisa, por isso agenda threads conforme achar adequado. Suponha que a Instância 1 execute uma consulta que usa paralelismo em que a implementação subjacente é um loop estreito que não cede internamente ao SQL OS (o SQL Server implementa um ambiente de agendamento cooperativo, em vez do Windows, que não o é). Suponha que não haja outras esperas (disco, memória, rede, etc.) nesses threads. Os threads podem ser agendados para múltiplas execuções em uma CPU antes que os threads da Instância 2 sejam executados, novamente isso depende do Windows. Suponha que a instância 2 esteja executando um thread que requer alocação de memória, esse thread pode solicitar uma alocação do gerenciador de memória do Windows que, por sua vez, pode precisar aguardar o bloqueio de simultaneidade antes de continuar. Isso colocaria esse thread em um estado de espera e o contexto seria desligado da CPU. Além disso, suponha que o referido thread tenha um tempo limite de 15 segundos. O tempo limite pode ser atingido antes que o bloqueio possa ser concedido a esse thread, o que apenas colocaria o thread como alertado (de acordo com o Windows) e permitiria que ele fosse agendado, o que pode estar atrás de vários outros threads, como os agendadores ocultos em a instância, a outra instância, pacotes de rede recebidos, renderização de vídeo, conclusões de disco, etc. Além disso, suponha que o referido thread tenha um tempo limite de 15 segundos. O tempo limite pode ser atingido antes que o bloqueio possa ser concedido a esse thread, o que apenas colocaria o thread como alertado (de acordo com o Windows) e permitiria que ele fosse agendado, o que pode estar atrás de vários outros threads, como os agendadores ocultos em a instância, a outra instância, pacotes de rede recebidos, renderização de vídeo, conclusões de disco, etc. Além disso, suponha que o referido thread tenha um tempo limite de 15 segundos. O tempo limite pode ser atingido antes que o bloqueio possa ser concedido a esse thread, o que apenas colocaria o thread como alertado (de acordo com o Windows) e permitiria que ele fosse agendado, o que pode estar atrás de vários outros threads, como os agendadores ocultos em a instância, a outra instância, pacotes de rede recebidos, renderização de vídeo, conclusões de disco, etc.

    Este é um exemplo inventado? Sim, pelo fato de dar um exemplo fácil de seguir.

    Isso nem traz hipervisores, como eles agendam, desvio de agendamento de CPU permitido, etc., como é possível no VMware. Também não leva em consideração quaisquer problemas dos administradores da referida plataforma de virtualização, que possam estar assinando demais o host.

    Exemplo de afinidade de thread no SQL Server:

    FROM sys.dm_os_threads  t
        inner join sys.dm_os_schedulers s
            on t.scheduler_address = s.scheduler_address
    
    +----------------+--------------+----------------+--------------+-----------+
    | parent_node_id | scheduler_id | status         | os_thread_id | affinity  |
    +----------------+--------------+----------------+--------------+-----------+
    | 0              | 0            | VISIBLE ONLINE | 6156         | 63        |
    | 0              | 0            | VISIBLE ONLINE | 6160         | 63        |
    | 0              | 0            | VISIBLE ONLINE | 2464         | 63        |
    | 0              | 0            | VISIBLE ONLINE | 5396         | 63        |
    | 0              | 0            | VISIBLE ONLINE | 2052         | 63        |
    | 0              | 0            | VISIBLE ONLINE | 3468         | 63        |
    | 0              | 0            | VISIBLE ONLINE | 1456         | 63        |
    | 0              | 0            | VISIBLE ONLINE | 5744         | 63        |
    | 0              | 0            | VISIBLE ONLINE | 1884         | 63        |
    +----------------+--------------+----------------+--------------+-----------+
    

    Isso é por que:

    • Eu não teria mais do que uma única instância em um servidor
    • Se você tiver mais de uma instância no mesmo servidor, defina a afinidade da CPU corretamente
    • Não subscrever anfitriões em excesso
    • Forneça aos convidados do SQL Server alocações reservadas de CPU, memória e disco no hipervisor
    • Suponha que os núcleos SMT não sejam unidades de execução completas
    • 9

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve