SQL Server 2008’te Resource Governor’ı kullanarak ne yapabilirsiniz?


Resource Governor’ın temel amacı, SQL Server’ın çalışan oturumlar arasında kaynak kullanımını daha optimum seviyede yönetebilmesidir.

SQL Server kaynakları en optimum şekilde kullanmaya zaten çalışır, ama oturumlar arasında önceliklerle ilgili SQL Server’ın bilemeyeceği konular vardır. Hangi uygulamaların, hangi oturumların, hangi istemci makinelerin daha önemli olduğunu SQL Server bilemez. Resource Governor’ı kullanarak şirketinize özel bu tür bilgileri SQL Server’a tanıtabilir ve oturumları nasıl kısıtlayacağını tarif edebilirsiniz.

Öncelikle oturumlar arasında bir sınıflama yapmanız gerekir. Bu sınıflamaya bağlı olarak da hangi tip oturumların kaynakların ne kadarını kullanacağını belirler ve bu doğrultuda SQL Server üzerinde Resource Governor’ı uygularsınız.

Sıklıkla olduğu gibi burada da planlama ve uygulama süreçleri birbirinin tersine işler. Planlama yaparken öncelikle oturumların sınıflamasından yola çıkarsınız. Oysa uygulama yaparken önce kaynak kısıt gruplarını oluşturursunuz.

Biz burada iki sıralamadan birini tercih etmek zorunda olduğumuzdan, uygulama sırasıyla anlatacağız. Bu aşamaya gelmeden önce planlamayı kendi sırasına göre yapmış olmanız gerektiğini unutmayın.

Uygulamada öncelikle Resource Governor’ı enable edersiniz. (Resource Governor’la ilgili işlerin neredeyse tamamına yakınını SQL Server Management Studio’da servera bağlı management düğümü altındaki Resource Governor bölümünden gerçekleştirirsiniz.)

Ardından Resource Pool’ları oluşturursunuz. Bir resource pool minimum ve maksimum CPU yüzdesini ve yine minimum ve maksimum bellek yüzdesini ifade etmekte kullanılır. Bu kısıtlar yarışma durumunda kullanılır. Eğer sistemde yarışan bir istek yoksa bu limitlerle sınırlı kalınmaz, ama yarışma durumu olduğu anda bu limitler uygulanır.

Resource Pool’larla kaynakların kullanım limitlerini sınırladıktan sonra, herbirinin altında Workload groupları (işyükü grupları) oluşturabilirsiniz. İşyükü gruplarının da kendine özel bazı seçenekleri belirtilebilmektedir.

Önemli bir eksiklik var: Oturumları işyükü gruplarına nasıl atayacaksınız? Öyle ya, bir oturum öncelikle bir işyükü grubuna dahil olmalı ki, o iş yükü grubunun özellikleriyle ve atanmış kaynak kısıtlarıyla çalışabilsin.

Bu kısmı Management Studio’dan yapmak mümkün değil. Bunun için bir classifier function (sınıflandırıcı fonksiyon) yazmak gerekiyor. Sistemde bir anda tek bir sınıflandırıcı fonksiyon etkin olabiliyor. Yani tek bir fonksiyonda oturumları sınıflandırmak için kullandığınız ne kadar koşul varsa belirtmek durumundasınız. Bu fonksiyonu yazarken aşağıdaki bağlantı özelliklerini kullanabiliyorsunuz:

HOST_NAME
APP_NAME
SUSER_NAME
SUSER_SNAME
IS_SRVROLEMEMBER
IS_MEMBER

Yani grup üyelikleri, bağlanan kullanıcı, hangi iş istasyonundan bağlandığı, hangi uygulamanın bağlandığı gibi seçeneklere göre oturumun hangi işyükü grubuna dahil olacağını belirlemiş oluyorsunuz.

Önemli bir konu aklınıza gelmiş olabilir: Resource Pool’lar işlemci ve bellek bazında kısıtlama yapıyorlar. Yani disk IO bazında kısıtlama yapmıyorlar. Çoğu durumda bu sorun olmayacaktır. Çünkü işlemci ve bellek kullanımı ile disk IO kullanımı paralellik gösterecektir. Ama bazı durumlarda işlemci ve bellek yükü sınırlar dahilindeyken IO yükü fazla olabilir. Aklınızda bulunsun.

Not: Resource governor’ı adım adım nasıl kullanacağınızı anlatmadım. Bununla ilgili olarak Books Online’da yeterince detaylı açıklamalar bulabilirsiniz. Kavramı ve temel bileşenlerini anladıktan sonra uygulamak son derece kolay.

Bu yazı SQL Server 2008 içinde yayınlandı. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s