Transações muito altas por segundo

8

Nosso servidor de produção executa em média 4.000 transações por segundo. Nos últimos dias, a média saltou para 175.000 transações por segundo. Isso não é um erro de digitação, é 175K por segundo.
Observando as DMVs para transações, não podemos vinculá-lo diretamente às sessões do usuário, mas vemos isso:

SELECT NAME,
       COUNT(*)
FROM   sys.dm_tran_active_transactions
GROUP  BY NAME
ORDER  BY 2 DESC 

-

+------------------------------+-------+
|             Name             | Count |
+------------------------------+-------+
| WorkFileGroup_fake_worktable |   627 |
| LobStorageProviderSession    |   217 |
| workfile                     |   171 |
+------------------------------+-------+

Alguém pode lançar luz sobre esses tipos de transações? Ou estou perseguindo fantasmas aqui?

paulbarbin
fonte
Talvez você possa criar um perfil do servidor executando sp_whoisactive repetidamente. Quais consultas surgem com mais frequência?
usr
Provavelmente não está claro, mas no texto original, afirmei que não há correlação entre os processos do usuário e as transações. Normalmente, temos cerca de 4000 usuários conectados e, em um determinado momento, entre 40 e 60 deles são spids executáveis. Durante esse período de transação inflado, ainda havia 40-60 spids executáveis ​​- sem diferença.
Paulbarbin #
Atualização: o tps está de volta ao seu valor normal e não vemos nenhuma razão real para isso acontecer. A única coisa que faz sentido é que executamos uma consulta de servidor vinculado, onde parecia que toda a tabela estava sendo puxada através do fio para o tempdb. Esse processo estava demorando muito mais que o normal. É possível que o tps estivesse sendo contado como 1 linha na tabela = 1 transação? A tabela possui 50K linhas e é executada adhoc pelos usuários, portanto, 3 vezes por segundo é chamada e isso pode ser feito, mas isso não parece provável.
paulbarbin
2
Se fosse o meu servidor, eu executaria um rastreamento rápido do lado do servidor. Talvez apenas um rastreio de 5 minutos para ver se há alguma chance de a contagem de tps ser falsa. Definitivamente, enviaria spam para sp_whoisactive para observar também as consultas em voo.
Peter

Respostas:

1

Preste atenção à alta atividade novamente; quando você o vir, inicie um rastreamento do lado do servidor ou, se necessário, use o Profiler brevemente para ver o que está acontecendo.

Como alternativa, use um sniffer de pacotes como o Wireshark para capturar a atividade do fio bruto.

Verifique dm_exec_cached_plans para ver se isso dá alguma idéia do que está acontecendo.

Assista a dm_io_virtual_file_stats para ver quais arquivos em particular, se houver, estão sendo encontrados.

Senhas anti-fracas
fonte