SSRS akan mengatur bagaimana setiap report meng-konsumsi memory yang tersedia, sesuai dengan keadaan memory pressure pada saat itu, yaitu:
Low pressure:
- Proses yang ada akan terus dijalankan
- Semua request akan diterima
- Request ke Report Server Web Service akan lebih diutamakan
Medium pressure:
- Proses yang ada akan tetap dijalankan
- Request baru mungkin akan diterima (mungkin!)
- Alokasi memori dari semua proses akan dikurangi
High pressure:
- Request baru akan ditolak (bisa menghasilkan error HTTP 503 server unavailable)
- Proses yang sedang berjalan akan memakan waktu lebih lama, karena memory allocation dari proses tsb akan semakin berkurang.
Cara meng-configure Memory di SSRS
Kita bisa mengatur area memory pressure dengan menggunakan attribut di bawah ini:
- WorkingSetMaximum (KB): batas atas dari "High Pressure"
contoh: 8000000 --> berarti batas atasnya adalah 8,000,000 KB - MemoryThreshold (%): Persentase batas bawah dari "High Pressure"
contoh: 90% maka apabila anda punya Memory 8GB, berarti High Pressure dari 7.2GB - 8GB - MemorySafetyMargin (%): batas antara "Low Pressure" dengan "Medium"
contoh: 80% maka batas antara Low Pressure dengan Medium adalah 80% dari jumlah total memory ataupun WorkingSetMaximum - WorkingSetMinimum (KB)
contoh: 2000000 --> berarti batas minimum memory yang digunakan adalah 2,000,000 KB
Gambarannya seperti ini:
WorkingSetMaximum – MemoryThreshold: High Memory Pressure
MemoryThreshold – MemorySafetyMargin: Medium Memory Pressure
MemorySafetyMargin – WorkingSetMinimum: Low Memory Pressure
anda bisa menyimpan konfigurasi ini di Configuration File dari SSRS 2008 yaitu rsreportserver.config, yang ada di: C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer (atau ke installasi folder dari SSRS anda, lalu buka folder Reporting services\ReportServer).
contoh memory configuration:
<WorkingSetMaximum>4000000</WorkingSetMaximum>
<MemoryThreshold>90</MemoryThreshold>
<MemorySafetyMargin>80</MemorySafetyMargin>
<WorkingSetMinimum>2000000</WorkingSetMinimum>
silakan letakan konfigurasi ini di antara "<Service></Service>"
Secara default, sistem hanya menentukan MemoryThreshold dan MemorySafetyMargin.