Küçük sorgular çalışır, büyükler başarısız olur: hangi paket boyutu?
SQL Server sürücü paketleri, MySQL mesaj sınırları ve bir IP yolunun MTU'su farklı birimlerdir. Boyuta bağlı bir arıza onları birbirinin yerine kullanılabilir yapmaz.
Küçük sorgular döner, büyükler takılır veya düşer ve ilk sezgi paket boyutunda bir sorun olduğudur. Bu sezgi genellikle doğrudur ve neredeyse her zaman yanlış katmana yönelir. Üç ayar paket kelimesini paylaşır ve ilgisiz üç şeyi ölçer: bir veritabanı sürücüsünün taşıma ambalajı, bir veritabanı sunucusunun mesaj sınırı ve IP yolunun maksimum iletim birimi. Birini diğerinin yol açtığı bir belirtiyi düzeltmek için ayarlamak, beş dakikalık bir sorunun bir haftalık ayara dönüşme yoludur. Aşağıdaki sıra bana en az zaman kaybettiren sıradır.
Üç katman, tek ortak kelime
Aşağıdaki her satır farklı bir sahibi olan farklı bir birimdir ve hiçbiri diğerlerinden çıkarılamaz. Bir veritabanı mesajı birçok TCP segmentine ve birçok IP paketine yayılabilir, bu nedenle izin verilen boyutunu artırmak yolu genişletmez ve bir sürücü ayarını düşürmek bir arayüz MTU'sunu değiştirmekle aynı işlem değildir. Kelime üç farklı yapılandırma dosyasında görünür, bu yüzden aranması ilgisiz üç yanıt döndürür. Önce hata metnini okuyun, sonra hangi dosyayı açacağınıza karar verin.
| Setting or observation | Unit it describes |
|---|---|
| SQL Server client network packet setting | The provider's transport packaging for that connection |
| MySQL communication packet limit | A database message, such as one statement, row or replication event |
| IP path MTU | The largest IP packet the path carries without fragmentation handling |
Bir yapılandırma dosyası açmadan önce başarısız işlemin hangi katmana ait olduğunu yazın. Hata metni bunu genellikle söyler ve insanların atladığı kısım tam da bu metindir.
Ayarını değiştirmeden önce sağlayıcıyı belirleyin
SQL Server için uygulamayı, sürücü veya sağlayıcı adını, sürümü ve etkin bağlantı yapılandırmasını kaydedin. Bir tanılama betiği ve bir masaüstü uygulaması aynı sunucuya farklı sağlayıcılar üzerinden ulaşabilir, bu yüzden birine yardım eden bir ayar diğeri hakkında hiçbir şey kanıtlamaz. Sağlayıcı varsayılanları farklıdır ve benzer adlı bir bağlantı dizesi alanı her sağlayıcının onu aynı şekilde yorumladığının kanıtı değildir.
Bir bakımlı sürücüyü yalnızca eski bir çözüm onun sözdizimini kullandı diye eski bir sürücüyle değiştirmeyin. Güncel belgeler bu daha eski bileşenler üzerinde yeni geliştirmeyi teşvik etmez ve onların sınırlarını miras almak tek bir ayar için kötü bir takastır.
Mesaj reddi yol tıkanıklığı değildir
MySQL 8.4'te iletişim paketi belgeleri, geçerli sınıra karşı çok büyük bir ifadenin, satırın veya ikili günlük olayının reddedildiğini açıklar ve hem istemci hem de sunucu sınırları önemli olabilir. Bu, veritabanı katmanında bir reddetmedir; ağın devasa bir IP paketi taşıması gerektiği iddiası değildir. Gerçek hatayı ve sorunlu mesajın şeklini okuyun: birçok küçük satırdan oluşan büyük bir sonuç, tek bir dev satırdan farklı bir durumdur ve farklı şekillerde başarısız olurlar.
MariaDB kurulumları kendi sürümlerinin belgelenmiş sınırlarına ve tanılamasına ihtiyaç duyar. MySQL varsayılanlarını MariaDB'ye kopyalamak fazladan adımlarla tahmin etmektir.
Yol kanıtı gerçekte nasıl görünür
Bir yol boyutu sorununun kendi parmak izi vardır: belirli bir rota ve adres ailesi boyunca yinelenebilir, boyuta bağlı bir taşıma arızası; tünelin ek yükü devrede ve keşif geri bildirimi yolun izin verdiği gibi davranır. Tek başına bir zaman aşımı onu yavaş sorgudan, sürücü hatasından veya sunucu tarafı sınırdan ayırmaz ve zaman aşımını MTU sorunlarının kanıtı saymak sizi güvenle yanlış katmana gönderir.
Yolu test ederseniz hedefi, hesabı ve iş yükünü sabit tutun ki tek değişken araştırdığınız boyut olsun. Üç şeyin değiştiği bir test hangisinin önemli olduğu hakkında size hiçbir şey söylemez.
Belgelenmiş bir değişkeni değiştirin, sonra kaydedin
Hedefi, hesabı, sağlayıcıyı ve iş yükünü sabit tutun, özgün değeri kaydedin, desteklenen tek bir değişiklik uygulayın ve sonucu kaydedin. Bir testi geçiren daha küçük bir ayar o test edilen yığın hakkında yararlı bir kanıttır; evrensel bir optimum değildir ve özgün arızaya neyin yol açtığını ortaya koymaz. Bunlar farklı iddialardır ve yalnızca birincisi tek bir deneyle desteklenir.
Belirlenen sınırı kendi katmanında çözün, sonra hangi katman olduğunu not edin. Not, sorun yol olduğu için bir sonraki kişinin sürücüyü ayarlamasını engelleyen şeydir.