Service Manager 2012 R2 – Grooming – Part 1

By | 20 January 2016

Merhaba, Bu makalemde önemli bir konudan bahsedeceğim. Daha öncelerde Service Manager Engineering Blog’da yayınlanan 3 Part’lık makaleyi kendi siem üzerinde de duyurmuştum. Gerçekten oldukça faydalı makaleler ve kesinlikle okunması gerekiyor. Bu amaçla 3 bölümlük bir seri yazmayı istedim. Genel olarak o 3 makalenin benim tarafımdan yorumlanması şeklinde bir makale serisi olacak. Bahsettiğim makalelere aşağıdaki linkten ulaşabilirsiniz.

http://blogs.technet.com/b/servicemanager/archive/2015/11/16/an-in-depth-look-at-grooming-in-system-center-service-manager-part-1.aspx

http://blogs.technet.com/b/servicemanager/archive/2015/11/17/an-in-depth-look-at-grooming-in-system-center-service-manager-part-2.aspx

http://blogs.technet.com/b/servicemanager/archive/2015/11/18/an-in-depth-look-at-grooming-in-microsoft-system-center-service-manager-part-3.aspx

CMDB IT service altyapısını otomatize etmek için gerekli olan çeşitli classların,relationshiplerin ve metodların bulunduğu yerdir.

Arka planda çalışan tüm tracking ve keeping işlemleri temp table oluşturmaya ve çok kısa sürelerde data girişi yapmaya ihtiyaç duyarlar. Yapılan bu işlemlerin CMDB performansını ve büyümesini etkilememesi için düzenli olması gerekir. Bu düzeni de grooming sayesinde sağlarız.

Service manager mimarisinde bu düzeni sağlamak için bir kaç grooming job’ı bulunmaktadır. Grooming job’ları arka planda çalışmaktadır fakat çalışan jobları ve yapılarını bilmemiz gerekmektedir.

Neden bukadar önemli diye soru sorabilirsiniz. Örneğin grooming job’ları çalışmayıp fail aldığı zaman service manager’da performans sorunları yaşamaya başlarsınız. Konsol üzerindeki sıradan tasklar yavaş çalışmaya başlar,workflowlar’da gecikmeler olur,yada performansa bağlı problemler gün yüzüne çıkar. Grooming jobları kesin olarak durduğunda, service manager üzerindeki key tablolar şişer ve bu da bahsettiğimiz performans sorunlarının oluşmasına sebep olur. Bu tablolar oldukça büyük boyutlara ulaştığı zaman da bunları temizleme işlemi her zaman kolay olmaz. Hatta temizleme işleminin riskli olacağı durumlarda microsoft’a support case açmak daha mantıklı olur.

SCSM’yi yöneten kişiler olarak performans problemi yaşadığınızda bunun groomingden kaynaklanan bir problem olduğunu adresleyebilmeniz gerekir. Bu şekilde sorunu gidermek adına hızlıca harekete geçebilirsiniz.

Service manager grooming hakkında bilgi edinmek için başlanacak ilk yer InternalJobHistory tablosudur.Bu tablo düzenli olarak çalışan ve grooming görevlerini içeren stored prosedure’lerin listesini gösterir.

resim

CMDB üzerinde bunların nasıl çalıştığını görmek istiyorsanız ManagedTypeTable’a bakmanız gerekir.

Aşağıdaki query’i çalıştırıp bunlara bakalım.

SELECT

StoredProcedure

,Criteria

,RetentionPeriodInMinutes

,BatchSize

FROM dbo.MT_GroomingConfiguration

 

image001

InternalJobHistory hakkında bilgi sahibi olduktan sonra full komutlarına göz atabilirsiniz.

SELECT DISTINCT command

FROM dbo.InternalJobHistory

image002

Yukarıdaki tabloda stored prosedürlerin parametrelerle nasıl çalıştırıldığını görebilirsiniz. Burada ilk parametre genellikle GUID’dir ve bu GUID service manager Managed Type’tır. Hangi type’ın groome edildiğini öğrenmek istiyorsanız p_GroomManagedEntity stored prosedürüne bakmamız gerekir. Yukarıdaki listedeki bu stored prosedürün kullandığı GUID’lerin Type Name’lerini aşağıdaki sorgu ile elde edelim. Tablodan p_GroomManagedEntity prosedürünün kullandığı guid’leri alıp işlem yapalım.

SELECT TypeName

FROM ManagedType

WHERE ManagedTypeID IN

(‘E6C9CF6E-D7FE-1B5D-216C-C3F5D2C7670C’

,’D02DC3B6-D709-46F8-CB72-452FA5E082B8′

,’04B69835-6343-4DE2-4B19-6BE08C612989′

,’A604B942-4C7B-2FB2-28DC-61DC6F465C68′

,’422AFC88-5EFF-F4C5-F8F6-E01038CDE67F’)

image003

Görüldüğü gibi tüm workitem class’ları sorgumuz sonucunda listelenmektedir. Bu da bize tüm workitem class’ları üzerinde grooming işleminin yapıldığını gösterir.

İşlemde kullanılan diğer parametreler için MT_GroomingConfiguration tablosundaki sonuçlara bakabilirsiniz.

İşlemde kullanılan ikinci parametre RetentionPeriodInMinutes, üçüncü parametre Criteria, son parametre ise BatchSize. ‘dır.

Bu prosedürler table’lardaki kilitlenmeyi minimumda tutmak için sık sık büyük miktarda datalar üzerinde çalışır.

GroomingConfiguration tablosu bilgiyi Service manager üzerindeki grooming management pack’inden alır. (ServiceManager.Grooming.Configuration.mp).

Diğer stored prosedürlerin (p_GroomStagedChangedLogs ve GroomChangeLogs) System.Entity Managed Types’larını da aynı metod ile öğrenebiliriz.

Leave a Reply