{"id":2245,"date":"2026-10-01T21:55:34","date_gmt":"2026-10-02T00:55:34","guid":{"rendered":"https:\/\/www.especialistadeseo.com.br\/blog\/gargalo-de-io-em-discos-nvme-e-lentidao-de-escrita-em-bancos-mysql-de-alta-concorrencia\/"},"modified":"2026-10-01T21:55:34","modified_gmt":"2026-10-02T00:55:34","slug":"gargalo-de-io-em-discos-nvme-e-lentidao-de-escrita-em-bancos-mysql-de-alta-concorrencia","status":"publish","type":"post","link":"https:\/\/www.especialistadeseo.com.br\/blog\/gargalo-de-io-em-discos-nvme-e-lentidao-de-escrita-em-bancos-mysql-de-alta-concorrencia\/","title":{"rendered":"Gargalo de I\/O em Discos NVMe e Lentid\u00e3o de Escrita em Bancos MySQL de Alta Concorr\u00eancia"},"content":{"rendered":"\n\n<p class=\"lead wp-block-paragraph\">Muita gente acha que colocar um disco NVMe resolve qualquer lentid\u00e3o de banco de dados. S\u00f3 que no MySQL e MariaDB usando o motor InnoDB, o gargalo de escrita muitas vezes n\u00e3o tem a ver com a velocidade bruta do disco, mas com a quantidade de vezes que o banco for\u00e7a o sistema operacional a confirmar a grava\u00e7\u00e3o f\u00edsica no chip de mem\u00f3ria flash. Quando dezenas de transa\u00e7\u00f5es acontecem por segundo, essas chamadas formam uma fila de espera que faz o tempo de resposta do servidor subir e trava a navega\u00e7\u00e3o dos usu\u00e1rios. Entenda como medir isso e como configurar seu banco para trabalhar direito em <a href=\"https:\/\/www.especialistadeseo.com.br\/otimizacao-de-sites.php\">Otimiza\u00e7\u00e3o de Sites e Servidores<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full featured-article-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"675\" src=\"https:\/\/www.especialistadeseo.com.br\/blog\/wp-content\/uploads\/2026\/10\/post_2_Gargalo_de_I_O_em_Discos_NVMe_-2.jpg\" alt=\"Diagn\u00f3stico de I\/O em discos NVMe e MySQL\" class=\"wp-image-2244\" srcset=\"https:\/\/www.especialistadeseo.com.br\/blog\/wp-content\/uploads\/2026\/10\/post_2_Gargalo_de_I_O_em_Discos_NVMe_-2.jpg 1200w, https:\/\/www.especialistadeseo.com.br\/blog\/wp-content\/uploads\/2026\/10\/post_2_Gargalo_de_I_O_em_Discos_NVMe_-2-300x169.jpg 300w, https:\/\/www.especialistadeseo.com.br\/blog\/wp-content\/uploads\/2026\/10\/post_2_Gargalo_de_I_O_em_Discos_NVMe_-2-1024x576.jpg 1024w, https:\/\/www.especialistadeseo.com.br\/blog\/wp-content\/uploads\/2026\/10\/post_2_Gargalo_de_I_O_em_Discos_NVMe_-2-768x432.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption>Medi\u00e7\u00e3o de lat\u00eancia de escrita e ajuste de par\u00e2metros de InnoDB no MySQL.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">T\u00f3picos abordados<\/h2>\n\n\n\n<ul class=\"toc-list wp-block-list\">\n    <li><a href=\"#o-que-e-fsync\">1. Por que o MySQL faz tantas chamadas de fsync()<\/a><\/li>\n    <li><a href=\"#medindo-com-iostat\">2. Como usar o iostat para achar a fila de escrita<\/a><\/li>\n    <li><a href=\"#parametros-my-cnf\">3. Os par\u00e2metros principais para mudar no my.cnf<\/a><\/li>\n    <li><a href=\"#riscos-de-ajustar-errado\">4. Os riscos reais de mudar a durabilidade das transa\u00e7\u00f5es<\/a><\/li>\n    <li><a href=\"#impacto-no-seo\">5. O que essa lentid\u00e3o de banco faz com o seu SEO<\/a><\/li>\n    <li><a href=\"#como-falar-comigo\">6. Como resolver a velocidade do seu banco de dados<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"o-que-e-fsync\">1. Por que o MySQL faz tantas chamadas de fsync()<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para garantir que nenhum dado de venda ou cadastro seja perdido se a energia do servidor cair, o motor InnoDB usa uma propriedade chamada durabilidade. Cada vez que uma transa\u00e7\u00e3o termina com <code>COMMIT<\/code>, o MySQL pede ao sistema operacional para descarregar os dados do buffer da mem\u00f3ria direto para os blocos f\u00edsicos do NVMe usando uma chamada chamada <code>fsync()<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mesmo em um NVMe veloz, cada sincroniza\u00e7\u00e3o f\u00edsica leva alguns microssegundos. Se voc\u00ea tem 500 pessoas navegando, colocando produtos no carrinho, atualizando sess\u00f5es e disparando webhooks, o banco tenta fazer milhares de chamadas de sincroniza\u00e7\u00e3o ao mesmo tempo. As threads do MySQL come\u00e7am a disputar a vez de gravar, a fila enche e o servidor come\u00e7a a demorar segundos para responder qualquer consulta simples.<\/p>\n\n\n\n<div class=\"cta-incontent-box\" style=\"background: linear-gradient(180deg, #18181b 0%, #121217 100%); border: 1px solid #3f3f46; border-left: 4px solid #3b82f6; border-radius: 6px; padding: 1.75rem; margin: 2.5rem 0; box-shadow: 0 10px 25px rgba(0,0,0,0.3);\">\n    <h4 style=\"color: #ffffff; font-size: 1.15rem; margin-top: 0; margin-bottom: 0.5rem;\">\n        Seu site fica lento para carregar durante hor\u00e1rios de pico?\n    <\/h4>\n    <p style=\"color: #d4d4d8; font-size: 0.95rem; line-height: 1.6; margin-bottom: 1.25rem;\">\n        Se o processador est\u00e1 com folga mas as p\u00e1ginas demoram para abrir, o gargalo costuma estar nas travas de escrita do banco de dados. N\u00f3s identificamos essas esperas para voc\u00ea.\n    <\/p>\n    <button onclick=\"showModal()\" class=\"btn-solid\" style=\"background-color: #ffffff; color: #09090b; border: none; padding: 0.75rem 1.5rem; font-weight: 600; font-size: 0.9rem; border-radius: 4px; cursor: pointer;\">\n        Pedir diagn\u00f3stico do meu banco &rarr;\n    <\/button>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"medindo-com-iostat\">2. Como usar o iostat para achar a fila de escrita<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para confirmar se o disco est\u00e1 travando as opera\u00e7\u00f5es, instale o pacote <code>sysstat<\/code> e rode este comando no terminal enquanto o site estiver recebendo visitas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>iostat -xz 1 10<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Foque em duas colunas espec\u00edficas do relat\u00f3rio:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n    <li><strong>w_await:<\/strong> Mostra o tempo m\u00e9dio em milissegundos que cada escrita espera para ser atendida. Em um disco NVMe bom, esse n\u00famero deve ficar abaixo de <strong>1.0ms<\/strong>. Se estiver batendo 5ms ou 10ms, h\u00e1 sobrecarga.<\/li>\n    <li><strong>avgqu-sz:<\/strong> Mostra o tamanho m\u00e9dio da fila de pedidos esperando atendimento. Se passar de <strong>3 ou 4<\/strong>, significa que o banco est\u00e1 acumulando requisi\u00e7\u00f5es em fila.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"parametros-my-cnf\">3. Os par\u00e2metros principais para mudar no my.cnf<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A configura\u00e7\u00e3o padr\u00e3o do MySQL vem calibrada para discos antigos e prioriza seguran\u00e7a absoluta sobre velocidade. Em servidores dedicados de alta performance, voc\u00ea pode ajustar estes valores no arquivo <code>\/etc\/mysql\/my.cnf<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[mysqld]\n# Grava no log a cada commit mas s\u00f3 sincroniza no disco uma vez por segundo\ninnodb_flush_log_at_trx_commit = 2\n\n# Ajusta a capacidade de IOPS para o padr\u00e3o de discos NVMe modernos\ninnodb_io_capacity = 3000\ninnodb_io_capacity_max = 6000\n\n# Permite mais threads trabalhando na leitura e escrita do banco\ninnodb_write_io_threads = 8\ninnodb_read_io_threads = 8<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A mudan\u00e7a de <code>innodb_flush_log_at_trx_commit = 1<\/code> para <code>2<\/code> \u00e9 a que d\u00e1 maior resultado. O MySQL continua gravando todas as transa\u00e7\u00f5es na mem\u00f3ria do sistema operacional imediatamente, mas s\u00f3 for\u00e7a o disco a travar a sincroniza\u00e7\u00e3o f\u00edsica a cada 1 segundo. Isso costuma derrubar o tempo de resposta em opera\u00e7\u00f5es de escrita em at\u00e9 80%.<\/p>\n\n\n\n<div class=\"cta-incontent-box\" style=\"background: linear-gradient(180deg, #18181b 0%, #121217 100%); border: 1px solid #3f3f46; border-left: 4px solid #f59e0b; border-radius: 6px; padding: 1.75rem; margin: 2.5rem 0; box-shadow: 0 10px 25px rgba(0,0,0,0.3);\">\n    <h4 style=\"color: #ffffff; font-size: 1.15rem; margin-top: 0; margin-bottom: 0.5rem;\">\n        N\u00e3o mexa no my.cnf sem ter backup recente e ambiente de testes\n    <\/h4>\n    <p style=\"color: #d4d4d8; font-size: 0.95rem; line-height: 1.6; margin-bottom: 1.25rem;\">\n        Alterar configura\u00e7\u00f5es de banco sem entender as vari\u00e1veis pode corromper tabelas ou causar perda de dados. Se precisar de ajuda, conte com nossa <a href=\"https:\/\/www.especialistadeseo.com.br\/auditoria-tecnica.php\" style=\"color: #60a5fa; text-decoration: underline;\">Auditoria T\u00e9cnica<\/a>.\n    <\/p>\n    <button onclick=\"showModal()\" class=\"btn-solid\" style=\"background-color: #ffffff; color: #09090b; border: none; padding: 0.75rem 1.5rem; font-weight: 600; font-size: 0.9rem; border-radius: 4px; cursor: pointer;\">\n        Agendar auditoria t\u00e9cnica &rarr;\n    <\/button>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"riscos-de-ajustar-errado\">4. Os riscos reais de mudar a durabilidade das transa\u00e7\u00f5es<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ao usar <code>innodb_flush_log_at_trx_commit = 2<\/code>, se o servi\u00e7o do MySQL cair de forma inesperada, voc\u00ea n\u00e3o perde nada porque os dados j\u00e1 estavam no buffer do sistema operacional. O \u00fanico risco real acontece se a m\u00e1quina f\u00edsica sofrer um corte total de energia el\u00e9trica: nesse caso extremo, voc\u00ea pode perder at\u00e9 1 segundo de transa\u00e7\u00f5es que ainda estavam na mem\u00f3ria RAM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para 99% das lojas virtuais e portais de conte\u00fado hospedados em datacenters com nobreaks e redund\u00e2ncia de energia, esse risco \u00e9 muito baixo comparado ao ganho de velocidade que voc\u00ea conquista para todos os visitantes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"impacto-no-seo\">5. O que essa lentid\u00e3o de banco faz com o seu SEO<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quando o banco de dados demora para responder, a primeira m\u00e9trica que sofre \u00e9 o TTFB (Time to First Byte). Se o seu servidor leva mais de 600ms s\u00f3 para come\u00e7ar a mandar o HTML, sua nota no <a href=\"https:\/\/www.especialistadeseo.com.br\/core-web-vitals.php\">Core Web Vitals<\/a> cai, o Largest Contentful Paint (LCP) estoura e o Googlebot diminui a quantidade de p\u00e1ginas que rastreia por dia no seu site. Ajustar o banco \u00e9 um dos passos fundamentais da nossa <a href=\"https:\/\/www.especialistadeseo.com.br\/seo-tecnico.php\">Consultoria de SEO T\u00e9cnico<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"como-falar-comigo\">6. Como resolver a velocidade do seu banco de dados<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Eu atendo opera\u00e7\u00f5es digitais que precisam de desempenho alto e estabilidade cont\u00ednua. Se o seu banco de dados est\u00e1 lento ou travando sob tr\u00e1fego, fale diretamente comigo para avaliarmos a estrutura do seu servidor.<\/p>\n\n\n\n<div class=\"cta-incontent-box\" style=\"background: linear-gradient(180deg, #18181b 0%, #121217 100%); border: 1px solid #3f3f46; border-left: 4px solid #22c55e; border-radius: 6px; padding: 1.75rem; margin: 2.5rem 0; box-shadow: 0 10px 25px rgba(0,0,0,0.3);\">\n    <h4 style=\"color: #ffffff; font-size: 1.15rem; margin-top: 0; margin-bottom: 0.5rem;\">\n        Converse comigo no WhatsApp\n    <\/h4>\n    <p style=\"color: #d4d4d8; font-size: 0.95rem; line-height: 1.6; margin-bottom: 1.25rem;\">\n        Vamos analisar seus \u00edndices, seu my.cnf e deixar suas consultas r\u00e1pidas.\n    <\/p>\n    <button onclick=\"showModal()\" class=\"btn-solid\" style=\"background-color: #25D366; color: #ffffff; border: none; padding: 0.85rem 1.75rem; font-weight: 600; font-size: 0.95rem; border-radius: 4px; cursor: pointer;\">\n        Falar no WhatsApp agora &rarr;\n    <\/button>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Muita gente acha que colocar um disco NVMe resolve qualquer lentid\u00e3o de banco de dados. S\u00f3 que no MySQL e MariaDB usando o motor&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2244,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-2245","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress-e-infraestrutura"],"_links":{"self":[{"href":"https:\/\/www.especialistadeseo.com.br\/blog\/wp-json\/wp\/v2\/posts\/2245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.especialistadeseo.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.especialistadeseo.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.especialistadeseo.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.especialistadeseo.com.br\/blog\/wp-json\/wp\/v2\/comments?post=2245"}],"version-history":[{"count":0,"href":"https:\/\/www.especialistadeseo.com.br\/blog\/wp-json\/wp\/v2\/posts\/2245\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.especialistadeseo.com.br\/blog\/wp-json\/wp\/v2\/media\/2244"}],"wp:attachment":[{"href":"https:\/\/www.especialistadeseo.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.especialistadeseo.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.especialistadeseo.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}