You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Gereksinimler

Logo CRM uygulaması XAF alt yapısı nedeni ile çok fazla memory kullanımını yapmaktadır.Uygulamanın mutlaka 64 bit olarak kurulması ve IIS üzerinden ayarlanması gerekmektedir.Uygulama sunucu üzerindeSadece CRM için boş 8 gb memory ayrılması gerekmektedir. Uygulama sunucusu üzerinde yetersiz yer kaldığında işletim sistemi garbagecollector' ları tetikleyip, genel uygulamalar üzerinde temizliğe zorlar. Temizlenmemesi gereken veriler dahi silinir hale geleceğinden uygulama için beklenmedik hata, problemler sonucu uygulama sonlanır.  Genel olarak sunucu üzerindeki diğer uygulamalar içinde benzer durumlar yaşanacaktır. Sunucu üzerindeki boş memory kritik rol oynamaktadır. 

 Memory Durum

Web config

Aşağıdaki işlemleri web config içerisinde <appSettings></appSettings> arasına eklemeniz gerekir.

Memory - Performans İyileştirmesi

Veritabanı erişimi için CacheBaseXPOProvider yapısı kullanılmaktadır. Özellik kapatıldığında çok sayıda tekrarlı Sql (I/O) işlemi yapar hale gelmekte ve sistem yavaşlamaktadır. Yavaşlık x3 kat artmaktadır. Bu nedenle XPO cache yapısı performans için olmazsa olmaz. Aşağıda ilgili memory kullanımını genel ve kullanıcı bazlı limitleme ile ilgili uyarlama bilgileri mevcuttur.

Cache durumlarının sayısal değerlerini izleyebilmek için aşağıdaki (CacheStatisticsLogger) parametresi belirlenmiştir. 

CacheBaseXPOProvider

CacheBaseXPOProvider yapısı kullanıcı bazlı cache kullanımı yaptığı için kapatılması halinde ciddi hız sorunları yaşanmaktadır. Fakat ilgili XAF cache yapısının limitlenmesi ile ilgili eklemeler yapıldı.  Aşağıdaki gibi bir tanım yapıldığında toplam kullanıcı bazlı XPO yapısının cache kullanımı limitlemektedir.  Eklenecek değer MB cinsindendir. 1024 MB ya da 2048 MB ile limitlenip gözlemler yapılması gerekir.

Bilgilendirme

Webconfig üzerinde değer yazılmadığında sınır yok.  X86 için 1024, x64 için 3072 değeri sınırlandırmak için girilebilir.

CacheBaseXPOProvider

<add key="CacheNodeMaxTotalMemory" value="1024" /> 

Genel bir limit yerine kullanıcı bazlı limit tanımlanabilmesi için aşağıdaki tanımın girilmesi gerekmektedir. Öndeğer olarak kapalı bir özelliktir. Çok fazla kullanıcının olduğu sistemlerde memory kullanımını limitlemek için kullanıcı bazlı MB cinsinden değer girilebilir. 64 değeri girildiğinde min 32 MB, max 64 MB olacak şekilde XPO cache kullanımınına izin vermektedir. XPO için ayrılan cache kullanımı 10 kullanıcı için max 64*10 = 640 MB, 100 kullanıcı için 64*100 =6400 MB olacaktır.


CacheNodeMaxMemoryPerUser

<add key="CacheNodeMaxMemoryPerUser" value="64" />

ModelNode.GetValuesCache

ModelNode.GetValuesCache yapısı daha önceden kullanıcı bazlı tutulmaktaydı. Şu an memory bölgesine taşındı. Ciddi bir kazanç elde edildi.  Fakat buradaki memory maliyeti gözlemlenemiyor. İlgili alan için cache desteği parametreye bağlandı.

Aşağıdaki parametre 0 yapılarak modulecache yapısı kapatılır ve ek memory kazancı sağlanılır Fakat performans olarak düşüş sağlamaktadır.

ModelNode.GetValuesCache

<add key="ModuleCacheAllow" value="1" />

GarbageCollector

Uygulama ön görülmeyen kaçaklar için  IDisposeable nesnelerin sağlıklı dipose edilmemesiydi. Buna bağlı olarak 10 dk aralıklarla Garbage Collector çalıştırılması ile ilgili ek parametrik düzenleme yapıldı. 

Aşağıdaki parametre açıldığında 10 dakika aralıklarla NGarbageCollecter.Collect (true) işlemi gerçekleştirmektedir. Default olarak bu özellik aktif edildi (10 dakika). Kapatmak için 0 girilmelidir. Çalışması için girilebilir aralık ise > [ 5 .. 60 ]


Garbage Collector

<add key="GCRunningTime" value="10" />

CacheStatisticsLogger

Sistem üzerinde taşınan Cache yapılarının izlenmesi için aşağıdaki parametre 1 olarak atanır. Varsayılan değer 0 dır. 

Aşağıdaki nesnelerin item sayılarını eventviewer üzerinde warning olarak göstermektedir.

  • XafModuleCache Modul sayısı
  • PrivateMemorySize64
  • DataLookupCacheHelper
  • DataLookupDefinationCacheManager
  • ExtraFieldDefinationCacheManager
  • ZDDefaultValueCacheManager
  • ApplicationCache

CacheStatisticsLogger

<add key="CacheStatisticsLogger" value="1" />

Data LookUp Cache Parametreleri

Webconfig üzerimde DataLookupCacheRefreshMinutes özelliği ile data lookup alanları verilerinin cachelenme süresini belirlemektedir. Varsayılan değeri 60 (dakika) dır. 

DataLookupCacheGarbageDataCleanMinutes özelliği ise süresi dolan veriler belli aralıklarla kontrol edilip düzenler ve Cache bölgesinden silinirler. Varsayılan değer 60 (dakika) dır. 0 > özelliği kapatır. 

Data LookUp Cache

<add key="DataLookupCacheRefreshMinutes" value="60" />
<add key="DataLookupCacheGarbageDataCleanMinutes" value="60" />