{"id":4201,"date":"2016-04-14T10:21:48","date_gmt":"2016-04-14T12:21:48","guid":{"rendered":"http:\/\/www.fabriciolima.net\/blog\/?p=4201"},"modified":"2016-11-17T16:27:34","modified_gmt":"2016-11-17T18:27:34","slug":"casos-do-dia-a-dia-comprei-um-servidor-melhor-e-o-sql-server-esta-mais-lento-como-pode","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2016\/04\/14\/casos-do-dia-a-dia-comprei-um-servidor-melhor-e-o-sql-server-esta-mais-lento-como-pode\/","title":{"rendered":"Casos do Dia a Dia: Comprei um servidor melhor e o SQL Server est\u00e1 mais lento! Como pode???"},"content":{"rendered":"<p>Ol\u00e1 Pessoal,<\/p>\n<p>Passando para compartilhar com voc\u00eas mais uma experi\u00eancia que tive no meu dia a dia de <a href=\"https:\/\/www.fabriciolima.net\/blog\/consultoria-remota\/\" target=\"_blank\">Consultor SQL Server<\/a>.<\/p>\n<p>Uma empresa entrou em contato comigo para ajud\u00e1-los a entender porque um servidor SQL Server novo e com hardware melhor estava com uma performance pior que o antigo.<\/p>\n<p><!--more--><\/p>\n<p>Cen\u00e1rio:<\/p>\n<p>Servidor Antigo:<\/p>\n<ul>\n<li>16 GB de mem\u00f3ria<\/li>\n<li>6 Cores<\/li>\n<li>Disco SSD<\/li>\n<\/ul>\n<p>Servidor Novo:<\/p>\n<ul>\n<li>128 GB de mem\u00f3ria<\/li>\n<li>12 Cores<\/li>\n<li>Disco SSD<\/li>\n<\/ul>\n<p>Eles fizeram uma procedure que tinha um loop com 100 mil itera\u00e7\u00f5es e que cada itera\u00e7\u00e3o realizava um select e update em uma tabela. A procedure demorava <strong>20 segundos<\/strong> no servidor antigo e <strong>40 segundos<\/strong> no servidor novo. O dobro do tempo!!!<\/p>\n<p><span style=\"color: #ff0000;\">A\u00ed voc\u00ea mata o diretor do cora\u00e7\u00e3o!!! Falar que o servidor que ele investiu uma boa grana est\u00e1 com uma performance pior que o antigo n\u00e3o \u00e9 legal.<\/span><\/p>\n<p>Iniciando a an\u00e1lise, verifiquei que o plano de execu\u00e7\u00e3o das queries era o mesmo nos dois servidores e eles estavam realizando a mesma quantidade de reads.<\/p>\n<p>Dessa forma, resolvi fazer um loop que n\u00e3o realizava nenhuma consulta (acesso a disco) para comparar o processamento entre os dois servidores.<\/p>\n<p>Segue a query do loop:<\/p>\n<p>SET NOCOUNT ON<\/p>\n<p>declare @tmpCount int<br \/>\nselect @tmpCount = 0<\/p>\n<p>while @tmpCount &lt;= 10000000<br \/>\nbegin<br \/>\nset @tmpCount = @tmpCount + 1<br \/>\nend<\/p>\n<p>Esse loop demorou <strong>5 segundos<\/strong> no servidor antigo e <strong>10 segundos<\/strong> no servidor novo. Exatamente o dobro, assim como a procedure de teste deles.<\/p>\n<p>Opa!!! O problema \u00e9 CPU.<\/p>\n<p>Para comparar a CPU entre os servidores, utilizei a ferramenta CPU-Z:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-4204\" title=\"CPU-Z\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z.png\" alt=\"\" width=\"405\" height=\"377\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z.png 579w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z-300x279.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z-410x382.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z-100x93.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z-275x256.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z-20x20.png 20w\" sizes=\"auto, (max-width: 405px) 100vw, 405px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Comparei os dois servidores e verifiquei que a informa\u00e7\u00e3o <strong>Core Speed<\/strong> estava com os seguintes valores:<\/p>\n<p><strong>Servidor Antigo: 2592 MHz<\/strong><\/p>\n<p><strong>Servidor Novo: 1210 MHz<\/strong><\/p>\n<p>Opa!!! Algo de estranho no ar.<\/p>\n<p>Alguma coisa estava segurando a utiliza\u00e7\u00e3o de CPU, visto que o processador do servidor novo era melhor que o do servidor antigo.<\/p>\n<p>Ap\u00f3s um bate papo com meu amigo Rodrigo (<a href=\"http:\/\/thesqltimes.com\/blog\/\" target=\"_blank\">Blog<\/a>), validei v\u00e1rias configura\u00e7\u00f5es entre os servidores e uma delas era a op\u00e7\u00e3o de energia do servidor.<\/p>\n<p>Por default, esse servidor estava com a op\u00e7\u00e3o de energia marcada como <b>&#8220;Balanced&#8221;<\/b>. Alterei para <b>&#8220;High performance&#8221;<\/b> conforme figura abaixo:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/PowerOptions.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-4205\" title=\"PowerOptions\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/PowerOptions-1024x494.png\" alt=\"\" width=\"614\" height=\"296\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #0000ff;\"><strong>Feito isso, na hora o Core Speed do CPU-Z subiu de\u00a01210 MHz para 2700 MHz!!!<\/strong><\/span><\/p>\n<p>Opa!!!<\/p>\n<p>Executei novamente o teste do loop e agora os dois servidores estavam executando em <strong>5 segundos<\/strong>.<\/p>\n<p>A procedure de teste do cliente passou a rodar em <strong>20 segundos<\/strong> nos dois servidores.<\/p>\n<p>Pronto!!! A configura\u00e7\u00e3o do SO estava economizando energia e reduzindo a capacidade de processamento do servidor.<\/p>\n<p>Agora o Diretor pode ficar tranquilo que a performance do servidor novo n\u00e3o ser\u00e1 pior que do servidor antigo.<\/p>\n<p>O Glenn Berry disse em um dos posts abaixo, que fica triste em dizer para habilitarmos essa op\u00e7\u00e3o de High Performance devido a um maior consumo de energia, mas \u00e9 o indicado para servidores de banco de dados. Podemos economizar energia de outras formas, com virtualiza\u00e7\u00e3o ou consolidando v\u00e1rias instancias de SQL Server em um mesmo Hardware.<\/p>\n<p>Segue alguns posts sobre o assunto\u00a0para leitura:<\/p>\n<ul>\n<li><a href=\"https:\/\/sqlserverperformance.wordpress.com\/2010\/09\/28\/windows-power-plans-and-cpu-performance\/\" target=\"_blank\">https:\/\/sqlserverperformance.wordpress.com\/2010\/09\/28\/windows-power-plans-and-cpu-performance\/<\/a><\/li>\n<li><a href=\"https:\/\/sqlserverperformance.wordpress.com\/2010\/02\/22\/power-plans-and-windows-server-2008-r2\/\" target=\"_blank\">https:\/\/sqlserverperformance.wordpress.com\/2010\/02\/22\/power-plans-and-windows-server-2008-r2\/<\/a><\/li>\n<li><a href=\"https:\/\/www.brentozar.com\/archive\/2010\/10\/sql-server-on-powersaving-cpus-not-so-fast\/\" target=\"_blank\">https:\/\/www.brentozar.com\/archive\/2010\/10\/sql-server-on-powersaving-cpus-not-so-fast\/<\/a><\/li>\n<\/ul>\n<p>\u00c9 uma op\u00e7\u00e3o bem simples de ser alterada que fez uma grande diferen\u00e7a na performance do ambiente.<\/p>\n<p>&nbsp;<br \/>\n<b>Gostou dessa dica?<\/b><\/p>\n<p>Cadastre seu e-mail para receber novos Posts e curta minha <a href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\">P\u00e1gina no Facebook<\/a> para receber Dicas de Leituras e Eventos sobre SQL Server.<\/p>\n<p>Confira mais experi\u00eancias do Dia a Dia de um DBA no meu <a href=\"https:\/\/www.fabriciolima.net\/cursos-online\/treinamento-tarefas-do-dia-a-dia-de-um-dba-online\/\" target=\"_blank\">Treinamento de Tarefas do Dia a Dia de um DBA<\/a>.<\/p>\n<p>Abra\u00e7os,<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>MCITP \u2013 Database Administrator<\/p>\n<p>Consultor e Instrutor SQL Server<\/p>\n<p>Trabalha com SQL Server desde 2006<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 Pessoal, Passando para compartilhar com voc\u00eas mais uma experi\u00eancia que tive no meu dia a dia de Consultor SQL Server. Uma empresa entrou em contato comigo para ajud\u00e1-los a entender porque um servidor SQL Server novo e com hardware melhor estava com uma performance pior que o antigo.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[3,6,942,991,33],"tags":[1272,1275,1276,1268,1273,1269,613,1274,1270,1271],"class_list":["post-4201","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-casos-do-dia-a-dia","category-consultoria-sql-server","category-dba-remoto","category-sql-server","tag-como-escolher-a-cpu","tag-configuracao-energia-servidor","tag-core-speed","tag-cpu","tag-cpu-probrems","tag-cpu-z","tag-high-performance","tag-power-plan","tag-problema-cpu","tag-sql-server-cpu"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/4201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/comments?post=4201"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/4201\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=4201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=4201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=4201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}