WSRM ile maksimum CPU kullanımını sınırlayın SQL SERVER


10

SQL Server'ın bir örneğini çalıştıran fiziksel bir sunucum var.

Bu sunucunun genellikle% 100 CPU kullanımında çalıştığını fark ettim.

BT ekibim bundan memnun değil ve 32 çekirdeğin 2'sini işletim sistemi için ayırmamızı önerdi.

Bu harika çalışıyor, şimdi maksimum kullanım zirvesi% 90'ın biraz altında. Ayrıca, çeşitli kullanıcılardan yavaş veri alımı artık rapor edilmemektedir.

WSRM'yi (Windows Sistem Kaynağı Yöneticisi) bu şekilde kullanmamak için herhangi bir neden var mı - SQL Kaynak Yöneticisi yerine?


Gerçekten tüm CPU'yu kullanmak istiyor musunuz? İşletim sistemi için birkaç çekirdek kaydetmek ihtiyatlı görünüyor değil mi? İş istasyonumda, eğer bir miktar çıtırdamak için tüm çekirdekleri kullanırsam, makinem durur. Her zaman birkaç çekirdeği serbest tutarım. Bu, SQL Server'a adanmış bir makinede de iyi bir uygulama olmaz mı?
ManInMoon

Bu sunucuda ne tür bir yük çalışıyor? Ne tür bir işlem% 100 CPU kullanıyor? Bu OLTP veya analiz veya grafik mi?
Max Vernon

@ Ayarlama - SQL Server'ın kendisi - veya sorgular / tablo yapısı mı demek istediniz? SQL Server'ı kastediyorsanız, lütfen bana neye bakacağınıza bir bağlantı verin. Eğer sıralar / tablolar varsa, yapabildiğim zaman onları optimize ederim, ancak bazı kullanıcılar tasarım konusunda daha az bilinçlidir!
ManInMoon

Yanıtlar:


14

Tanımladığınız yaklaşımı kullanmamak için herhangi bir neden var mı? Kesinlikle.

Bir araba satın aldığınızı düşünün - 50MPH'ye bastığınızda motorun aşırı ısınmaya başladığı bir araba. Bu duruma tepkiniz arabayı yapay olarak 49MPH ile sınırlamak mı, yoksa motordaki hatanın ne olduğunu bulmak mı?

Arabanızı neden 49MPH ile sınırlamalısınız? Üretici, 80MPH kadar hızlı sürdüğünü belirtti - o kadar hızlı sürmek istiyorsunuz, böylece bu hıza ulaşmak istiyorsunuz - eğer o lanet aşırı ısınma sorunu için değilse.

Satın aldığınız araba da gerçekten çok pahalıydı. Her motor silindiri maksimuma çıkarılmalıdır, böylece bu parayı boşa harcamazsınız!

SQL Server'ların CPU'ya erişimini yapay olarak sınırlandırarak performanstan kaçınıyorsunuz. CPU'nun işletim sisteminin kullanabilmesi için performans sorunlarını geçici olarak çözmüş olabilirsiniz, ancak asıl soruyu cevaplamadınız - SQL Server neden CPU'nun% 100'ünü kullanıyor?

Tavsiyem şöyledir:

Gerçek sorunun ne olduğunu öğrenin ve düzeltin. Sorunu etkili bir çamur olan şeyle örtmeyin. Sorun OLACAK yeniden ve sunucunun iş yükü doğal olarak büyümesi ile arttığında satır aşağı yüzüne tokat.

Bir itibariyle geçici düzeltme , kaynak vali, kullanılan CPU düşürmek için kullanılabilir SİZE GERÇEK SORUNU BUL KADAR.


11

Erik Darling , sorunuzun yorumunda WSRM'yi kullanmamanın en büyük pratik nedeninden bahsetti:

... diğer işlemlerde CPU kullanımını karşılıklı olarak sınırlamaz. SQL Server bu iki çekirdeği kullanamayabilir, ancak diğer şeyler SQL Server'ın kullandığı diğer 30 şeyi kullanabilir. Gerçekten bir crapshoot.

Bu sizin için işe yarıyorsa, o zaman sadık kalın - hepimiz meşgulüz ve sadece verilen herhangi bir soruna çok fazla zaman harcayabilirsiniz. İdeal çözüm kullanıcı farkedilir problemler (onun George kapakları noktasına CPU sürüş altında yatan sorgular / sorunları gidermek olacaktır mükemmel cevap ).

Erik söylemeye devam ediyor

Ayrıca, onlar için SQL Server lisansı ödüyorsunuz.

Bir işletme açısından bakıldığında, bu muhtemelen WSRM anlaşmasının en kötü kısmıdır - açıkça kullanılmayan 2 çekirdek için çekirdek başına lisans ödüyorsunuz. Bu yazı yazıldığı zaman, bu tabloya 3 bin dolar ya da 14 bin dolar kaldı (Standard'a karşılık Enterprise'a bağlı).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.