Mengonfigurasi memori yang tersedia untuk aplikasi server laporan

Berlaku untuk: SQL Server 2016 (13.x) Reporting Services dan Server Laporan Power BI yang lebih baru

Untuk konten yang terkait dengan versi SQL Server Reporting Services (SSRS) sebelumnya, lihat SQL Server 2014 Reporting Services.

Penting

Informasi dalam artikel ini hanya berlaku untuk fitur yang terkait dengan laporan paginasi (RDL) dalam Server Laporan Power BI. Laporan Power BI (PBIX) dan aktivitas refresh terjadwalnya dalam Server Laporan Power BI tidak terpengaruh oleh pengaturan ini. Untuk bantuan terkait memori refresh terjadwal, lihat Memecahkan masalah refresh terjadwal di Server Laporan Power BI.

Meskipun Reporting Services dapat menggunakan semua memori yang tersedia, Anda dapat mengambil alih perilaku default. Anda dapat mengambil alih perilaku dengan mengonfigurasi batas atas jumlah total sumber daya memori yang dialokasikan untuk aplikasi server Reporting Services. Anda juga dapat mengatur ambang batas yang menyebabkan server laporan mengubah cara memprioritaskan dan memproses permintaan tergantung pada apakah itu berada di bawah tekanan memori rendah, sedang, atau berat. Pada tingkat tekanan memori yang rendah, server laporan merespons dengan memberikan prioritas yang sedikit lebih tinggi untuk pemrosesan laporan interaktif atau sesuai permintaan. Pada tingkat tekanan memori yang tinggi, server laporan menggunakan beberapa teknik untuk tetap beroperasi menggunakan sumber daya terbatas yang tersedia untuknya.

Artikel ini menjelaskan pengaturan konfigurasi yang dapat Anda tentukan dan bagaimana server merespons ketika tekanan memori menjadi faktor dalam memproses permintaan.

Kebijakan manajemen memori

Reporting Services merespons batasan sumber daya sistem dengan menyesuaikan jumlah memori yang dialokasikan untuk aplikasi dan jenis permintaan pemrosesan tertentu. Aplikasi yang berjalan di layanan Server Laporan dan yang tunduk pada manajemen memori meliputi:

  • Portal web, aplikasi front-end Web untuk server laporan.

  • Layanan Web Server Laporan, digunakan untuk pemrosesan laporan interaktif dan permintaan sesuai permintaan.

  • Aplikasi pemrosesan latar belakang, digunakan untuk pemrosesan laporan terjadwal, pengiriman langganan, dan pemeliharaan database.

Kebijakan manajemen memori berlaku untuk layanan Server Laporan secara keseluruhan, dan bukan untuk aplikasi individual yang berjalan dalam proses.

Jika tidak ada tekanan memori pada sistem, setiap aplikasi server meminta beberapa memori saat startup, sebelum menerima permintaan, untuk memberikan performa optimal ketika permintaan akhirnya diterima. Saat tekanan memori dibangun, server laporan menyesuaikan model prosesnya seperti yang dijelaskan dalam tabel berikut.

Tekanan memori Respons server
Kurang Penting Permintaan saat ini terus diproses. Permintaan baru hampir selalu diterima. Permintaan yang diarahkan ke aplikasi pemrosesan latar belakang diberikan prioritas yang lebih rendah daripada permintaan yang diarahkan ke layanan Web Server Laporan.
Medium Permintaan saat ini terus diproses. Permintaan baru mungkin diterima. Permintaan yang diarahkan ke aplikasi pemrosesan latar belakang diberikan prioritas yang lebih rendah daripada permintaan yang diarahkan ke layanan Web Server Laporan. Alokasi memori untuk ketiga aplikasi server berkurang, dengan pengurangan yang relatif lebih besar ke pemrosesan latar belakang untuk membuat lebih banyak memori tersedia untuk permintaan layanan Web.
Sangat Penting Alokasi memori dikurangi lebih lanjut. Aplikasi server yang meminta lebih banyak memori ditolak. Permintaan saat ini diperlambat dan membutuhkan waktu lebih lama untuk diselesaikan. Permintaan baru tidak diterima. Server laporan menukar file data dalam memori ke disk.

Jika batasan memori menjadi parah dan tidak ada memori yang tersedia untuk menangani permintaan baru, server laporan mengembalikan kesalahan server HTTP 503 yang tidak tersedia. Hasil ini terjadi saat permintaan saat ini selesai. Dalam beberapa kasus, domain aplikasi mungkin didaur ulang untuk segera mengurangi tekanan memori.

Meskipun Anda tidak dapat menyesuaikan respons server laporan ke skenario tekanan memori yang berbeda, Anda dapat menentukan pengaturan konfigurasi yang menentukan batas yang memisahkan respons tekanan memori tinggi, sedang, dan rendah.

Kapan harus menyesuaikan pengaturan manajemen memori

Pengaturan default menentukan rentang yang tidak sama untuk tekanan memori rendah, sedang, dan tinggi. Secara default, zona tekanan memori rendah lebih besar dari zona untuk tekanan memori sedang dan tinggi. Konfigurasi ini optimal untuk memproses beban yang didistribusikan secara merata atau yang tumbuh atau menurun secara bertahap. Dalam skenario ini, transisi antar zona bertahap dan server laporan memiliki waktu untuk menyesuaikan responsnya.

Mengubah pengaturan default berguna jika pola beban menyertakan lonjakan. Ketika ada lonjakan tiba-tiba dalam beban pemrosesan, server laporan mungkin beralih dari tidak ada tekanan memori ke kegagalan alokasi memori dengan cepat. Hasil ini dapat terjadi jika Anda memiliki beberapa instans bersamaan dari laporan intensif memori yang dimulai pada saat yang sama. Untuk menangani jenis beban pemrosesan ini, Anda ingin server laporan berpindah ke respons tekanan memori sedang atau tinggi sesegera mungkin sehingga dapat memperlambat pemrosesan. Konfigurasi ini memungkinkan lebih banyak permintaan untuk diselesaikan. Untuk memungkinkan lebih banyak permintaan selesai, Anda harus menurunkan nilai untuk MemorySafetyMargin membuat zona tekanan memori rendah lebih kecil relatif terhadap zona lain. Melakukannya menyebabkan respons untuk tekanan memori sedang dan tinggi terjadi sebelumnya.

Pengaturan konfigurasi untuk manajemen memori

Pengaturan konfigurasi yang mengontrol alokasi memori untuk server laporan meliputi WorkingSetMaximum, , WorkingSetMinimumMemorySafetyMargin, dan MemoryThreshold.

  • WorkingSetMaximum dan WorkingSetMinimum tentukan rentang memori yang tersedia. Anda dapat mengonfigurasi pengaturan ini untuk mengatur rentang memori yang tersedia untuk aplikasi server laporan. Jika Anda menghosting beberapa aplikasi di komputer yang sama, memori ini dapat berguna. Anda dapat menentukan bahwa server laporan menggunakan jumlah sumber daya sistem yang tidak proporsional relatif terhadap aplikasi lain di komputer yang sama.

  • MemorySafetyMargin dan MemoryThreshold atur batasan untuk tekanan memori tingkat rendah, sedang, dan tinggi. Untuk setiap status, Reporting Services mengambil tindakan korektif untuk memastikan pemrosesan laporan dan permintaan lain ditangani dengan tepat relatif terhadap jumlah memori yang tersedia di komputer. Anda dapat menentukan pengaturan konfigurasi yang menentukan delineasi antara tingkat tekanan rendah, tinggi, dan sedang.

    Meskipun Anda dapat mengubah pengaturan konfigurasi, melakukannya tidak meningkatkan performa pemrosesan laporan. Mengubah pengaturan konfigurasi hanya berguna jika permintaan dihilangkan sebelum selesai. Cara terbaik untuk meningkatkan performa server adalah dengan menyebarkan server laporan atau aplikasi server laporan individual di komputer khusus.

Ilustrasi berikut menunjukkan bagaimana pengaturan digunakan bersama-sama untuk membedakan antara tekanan memori tingkat rendah, sedang, dan tinggi:

Screenshot of the configuration settings for memory state.

Tabel berikut ini menjelaskan WorkingSetMaximumpengaturan , WorkingSetMinimum, MemorySafetyMargin, dan MemoryThreshold . Pengaturan konfigurasi ditentukan dalam file RSReportServer.config.

Elemen Deskripsi
WorkingSetMaximum Menentukan ambang memori setelah itu tidak ada permintaan alokasi memori baru yang diberikan untuk melaporkan aplikasi server.

Secara default, server laporan diatur WorkingSetMaximum ke jumlah memori yang tersedia di komputer. Nilai ini terdeteksi ketika layanan dimulai.

Pengaturan ini tidak muncul dalam RSReportServer.config file kecuali Anda menambahkannya secara manual. Jika Anda ingin server laporan menggunakan lebih sedikit memori, Anda dapat mengubah RSReportServer.config file dan menambahkan elemen dan nilai. Nilai yang valid berkisar dari 0 hingga bilangan bulat maksimum. Nilai ini dinyatakan dalam kilobyte.

Ketika nilai untuk WorkingSetMaximum tercapai, server laporan tidak menerima permintaan baru. Permintaan yang saat ini sedang berlangsung diizinkan untuk diselesaikan. Permintaan baru diterima hanya ketika penggunaan memori berada di bawah nilai yang ditentukan melalui WorkingSetMaximum.

Jika permintaan yang ada terus menggunakan lebih banyak memori setelah WorkingSetMaximum nilai tercapai, semua domain aplikasi server laporan akan didaur ulang. Untuk informasi selengkapnya, lihat Domain Aplikasi untuk Aplikasi Server Laporan.
WorkingSetMinimum Menentukan batas bawah untuk konsumsi sumber daya; server laporan tidak merilis memori jika penggunaan memori keseluruhan di bawah batas ini.

Secara default, nilai dihitung pada startup layanan. Perhitungannya adalah bahwa permintaan alokasi memori awal adalah untuk 60 persen dari WorkingSetMaximum.

Pengaturan ini tidak muncul dalam RSReportServer.config file kecuali Anda menambahkannya secara manual. Jika Anda ingin menyesuaikan nilai ini, Anda harus menambahkan WorkingSetMinimum elemen ke RSReportServer.config file. Nilai yang valid berkisar dari 0 hingga bilangan bulat maksimum. Nilai ini dinyatakan dalam kilobyte.
MemoryThreshold Menentukan persentase WorkingSetMaximum yang menentukan batas antara skenario tekanan tinggi dan menengah. Jika penggunaan memori server laporan mencapai nilai ini, server laporan memperlambat pemrosesan permintaan dan mengubah jumlah memori yang dialokasikan ke aplikasi server yang berbeda. Nilai defaultnya adalah 90. Nilai ini harus lebih besar dari nilai yang ditetapkan untuk MemorySafetyMargin.
MemorySafetyMargin Menentukan persentase WorkingSetMaximum yang menentukan batas antara skenario tekanan sedang dan rendah. Nilai ini adalah persentase memori yang tersedia yang dicadangkan untuk sistem dan tidak dapat digunakan untuk operasi server laporan. Nilai defaultnya adalah 80.

Catatan

MemoryLimit pengaturan dan MaximumMemoryLimit usang di SQL Server 2008 (10.0.x) dan versi yang lebih baru. Jika Anda memutakhirkan penginstalan yang sudah ada atau menggunakan RSReportServer.config file yang menyertakan pengaturan tersebut, server laporan tidak lagi membaca nilai-nilai tersebut.

Contoh pengaturan konfigurasi memori

Contoh berikut menunjukkan pengaturan konfigurasi untuk komputer server laporan yang menggunakan nilai konfigurasi memori kustom. Jika Anda ingin menambahkan WorkingSetMaximum atau WorkingSetMinimum, Anda harus mengetik elemen dan nilai dalam RSReportServer.config file. Kedua nilai tersebut adalah bilangan bulat yang mengekspresikan kilobyte RAM yang Anda alokasikan ke aplikasi server. Contoh berikut menentukan bahwa total alokasi memori untuk aplikasi server laporan tidak boleh melebihi 4 gigabyte. Jika nilai default untuk WorkingSetMinimum (60% dari WorkingSetMaximum) dapat diterima, Anda dapat menghilangkannya dan menentukan hanya WorkingSetMaximum dalam RSReportServer.config file. Contoh ini termasuk WorkingSetMinimum untuk menunjukkan bagaimana tampilannya jika Anda ingin menambahkannya:

      Config files 
      <MemorySafetyMargin>80</MemorySafetyMargin>  
      <MemoryThreshold>90</MemoryThreshold>  
      <WorkingSetMaximum>4000000</WorkingSetMaximum>  
      <WorkingSetMinimum>2400000</WorkingSetMinimum>  

Tentang pengaturan konfigurasi memori ASP.NET

Meskipun layanan Web Server Laporan dan portal web 2016 dan yang lebih baru adalah aplikasi HTML5, versi sebelumnya adalah aplikasi ASP.NET, tidak ada aplikasi yang merespons pengaturan konfigurasi memori yang Anda tentukan di processModel bagian machine.config untuk aplikasi ASP.NET yang berjalan dalam IIS 5.0 dan mode kompatibilitas yang lebih tinggi. Reporting Services membaca pengaturan konfigurasi memori dari RSReportServer.config file saja.

File konfigurasi RsReportServer.config
Mengubah file konfigurasi Reporting Services (RSreportserver.config)
Domain aplikasi untuk aplikasi server laporan