Tanım
ArcGIS Server yüklü makinenizdeki ArcSOC.exe örneklerinin (instance) sayısının fazla olması, makinenin bellek (RAM) kaynaklarını tüketerek ArcGIS Server üzerinde performans sorunlarına neden olabilir.
Sebep
Bu durum, tek bir sunucu makine üzerinde fazla sayıda instance çalıştırıldığında gözlenir ve bu nedenden dolayı kullanılabilir bellek limitlerinin aşılması, aşırı kaynak tüketilmesi ve servislerinizin kararsız çalışması gibi problemler yaşayabilirsiniz. ArcGIS Server; ek bir yapılandırmaya ihtiyaç duymadan, optimum performansta çalışacak şekilde tasarlanmıştır. Sistem boştayken (idle) bile, büyük miktarda gelebilecek istekler için hazır olacak şekilde ayarlanmıştır. Sistem yoğun bir şekilde kullanılmaya başlandığında ise, bellek kullanımı da yüksek performans fonksiyonlarına uyum sağlayacak şekilde artar.
Çözüm
Bu durumu çözümlemek için iki yöntem bulunmaktadır. 1. seçenek ArcGIS Server 10.7 ve daha sonraki versiyonlar için geçerlidir. 2. seçenek ise tüm ArcGIS Server versiyonlarında uygulanabilir.
Seçenek 1: Harita servislerinizi, paylaşılan örnek havuzunu (shared instance pool) kullanacak şekilde yapılandırın.
ArcGIS Server; 10.7 versiyonundan itibaren paylaşılan örnek havuzu adı verilen yeni bir özellik içermektedir. Varsayılan haliyle bu örnek havuzunda 4 adet ArcSOC.exe örneği çalışmaktadır. Paylaşılan örnek havuzu özeliğinin öncesinde, yayınlanan her bir harita servisi kendi ArcSOC.exe işlemlerini oluşturmaktaydı. 10.7 versiyonundan itibaren paylaşılan örnek havuzu özelliği sayesinde, eğer bir harita servisi paylaşılan örnek havuzunu kullanacak şekilde yayınlandı ise, ayrı bir ArcSOC.exe işlemi başlatmak yerine, mevcut olan ArcSOC.exe işlemlerini kullanacaktır. Bu sayede yayınlanan her bir harita servisi ayrı ayrı ArcSOC.exe işlemi başlatmayacak ve sunucu performansını etkilemeyecektir. Çok yoğun bir kullanımı olmayan harita servisleriniz için paylaşılan örnek havuzunu kullanmak performans açısından en ideal yaklaşımdır.
Paylaşılan örnek havuzu seçeneği, ArcGIS Pro ile yayınlanan haritalarda kullanılabilir. Ayrıca paylaşılan örnek havuzu özelliğini kullanabilmek için aşağıda bazı dikkat edilmesi gereken hususlar bulunmaktadır.
- Paylaşılan örnek havuzu, yalnızca harita servisleri için yapılandırılabilir. Geoprocessing servis gibi diğer servis türleri desteklenmez.
- Harita servislerinin feature access, WFS, WMS ve KML gibi yetenekleri etkinleştirilebilir. Servisi yayınlamadan önce diğer tüm yetenekleri kapatınız.
- ArcMap ile yayınlanan servislerde paylaşılan örnek havuzu kullanılamaz.
- ArcGIS Pro’dan yayınlanan ve yukarıdaki gereksinimleri karşılayan önbelleğe alınmış harita servisleri, paylaşılan örnekleri kullanabilir.
Paylaşılan örnek havuzunu kullanmak için aşağıdaki adımları izleyebilirsiniz.
- Yönetici haklarına sahip kullanıcı hesabınızla, ArcGIS Server Manager’da oturum açın.
- Services sayfası içerisinde listelenen harita servisleri içerisinde, ayarlamak istediğiniz servisi düzenleyin.
- Sol kısımdaki seçeneklerden Pooling (Gruplama) seçeneğini seçin ve ekrandaki Instance Type (Örnek Türü) kısmında Shared Instance Pool (Paylaşılan Örnek Havuzu) seçeneğini seçin.
- Save and Restart (Kaydet ve Yeniden Başlat) butonuna basarak değişikliklerin etkili olmasını sağlayın.
Seçenek 2: Minimum örnek sayısını ‘0’ olarak ayarlayın.
ArcGIS Server’da paylaşılan örnek havuzu özelliğini kullanmak sizin için uygun bir seçenek değilse, fazla kullanılmayan harita servisleri için minimum örnek sayısını ‘MinInstances = 0’ olarak ayarlayabilirsiniz. Bu sayede, diğer harita servisleriniz için daha fazla kaynak sağlayabilirsiniz. Minimum örnek sayısının sıfır olması, bir istekten sonra ArcSOC.exe’nin çalışmaya başlaması için bir miktar zaman alacağından harita performansının gecikmesine neden olabilir. Kullanıcılar tarafından yüksek oranda tüketilen servisler için maksimum örnek sayısını ‘MaxInstances = n+1’ olarak ayarlayabilirsiniz (‘n’, sunucu makinenin çekirdek sayısıdır). ArcGIS for Server performans optimizasyonu hakkında ek bilgi için Tune and configure services dokümanını inceleyebilirsiniz.
ArcGIS Server Manager’da ArcSOC.exe işlemlerinin örnek sayısını belirlemek için aşağıdaki adımları uygulayabilirsiniz.
- Yönetici haklarına sahip kullanıcı hesabınızla, ArcGIS Server Manager’da oturum açın.
- Services sayfası içerisinde listelenen harita servisleri içerisinde, ayarlamak istediğiniz servisi düzenleyin.
- Sol kısımdaki seçeneklerden Pooling (Gruplama) seçeneğini seçin ve ekrandaki Minimum number of instance per machine seçeneğini ‘0’ olarak ayarlayın.
- Save and Restart (Kaydet ve Yeniden Başlat) butonuna basarak değişikliklerin etkili olmasını sağlayın.
NOT: Minimum instance değeri, maksimum instance değerinden düşük olmalıdır.
Detaylı bilgi için Configuring service instance settings dokümanını inceleyebilirsiniz.
Faydalı Bağlantılar
- https://support.esri.com/en/technical-article/000012639
- Blog: Introducing shared instances in ArcGIS Server 10.7
- Wiki GIS: Server Software Performance
- GeoNet: Service configuration questions – instances, isolation, and ArcSOC.exes