Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
You can modify the default configuration of ReliableDictionaryActorStateProvider by changing the settings.xml file generated in the Visual Studio package root under the Config folder for the specified actor.
Runtime Azure Service Fabric mencari nama bagian yang telah ditentukan sebelumnya dalam file settings.xml dan menggunakan nilai konfigurasi saat membuat komponen runtime yang mendasarinya.
Nota
Jangan hapus atau ubah nama bagian konfigurasi berikut dalam file settings.xml yang dihasilkan dalam solusi Visual Studio.
There are also global settings that affect the configuration of ReliableDictionaryActorStateProvider.
Konfigurasi Global
The global configuration is specified in the cluster manifest for the cluster under the KtlLogger section. Ini memungkinkan konfigurasi lokasi dan ukuran log bersama ditambah batas memori global yang digunakan oleh pencatat. Note that changes in the cluster manifest affect all services that use ReliableDictionaryActorStateProvider and reliable stateful services.
Manifes kluster adalah satu file XML yang menyimpan pengaturan dan konfigurasi yang berlaku untuk semua simpul dan layanan dalam kluster. File biasanya disebut ClusterManifest.xml. Anda dapat melihat manifes kluster untuk kluster Anda menggunakan perintah powershell Get-ServiceFabricClusterManifest.
Configuration names
| Nama | Satuan | Nilai standar | Komentar |
|---|---|---|---|
| WriteBufferMemoryPoolMinimumInKB | Kilobytes | 8388608 | Minimum number of KB to allocate in kernel mode for the logger write buffer memory pool. Kumpulan memori ini digunakan untuk penyimpanan sementara informasi status sebelum menulis ke cakram. |
| WriteBufferMemoryPoolMaximumInKB | Kilobytes | Tanpa batas | Maximum size to which the logger write buffer memory pool can grow. |
| SharedLogId | GUID | "" | Menentukan GUID unik untuk digunakan untuk mengidentifikasi file log bersama default yang digunakan oleh semua layanan andal pada semua simpul dalam kluster yang tidak menentukan SharedLogId dalam konfigurasi spesifik layanan mereka. Jika SharedLogId ditentukan, maka SharedLogPath juga harus ditentukan. |
| SharedLogPath | Fully qualified path name | "" | Menentukan lokasi jalur lengkap untuk file log bersama yang digunakan oleh semua layanan yang andal pada setiap node dalam kluster yang tidak menentukan SharedLogPath dalam konfigurasi khusus layanan mereka. Namun, jika SharedLogPath ditentukan, maka SharedLogId juga harus ditentukan. |
| SharedLogSizeInMB | Megabytes | 8192 | Menentukan jumlah MB ruang disk yang akan dialokasikan secara statis untuk log bersama. Nilainya harus 2048 atau lebih besar. |
Sample cluster manifest section
<Section Name="KtlLogger">
<Parameter Name="WriteBufferMemoryPoolMinimumInKB" Value="8192" />
<Parameter Name="WriteBufferMemoryPoolMaximumInKB" Value="8192" />
<Parameter Name="SharedLogId" Value="{7668BB54-FE9C-48ed-81AC-FF89E60ED2EF}"/>
<Parameter Name="SharedLogPath" Value="f:\SharedLog.Log"/>
<Parameter Name="SharedLogSizeInMB" Value="16383"/>
</Section>
Komentar
The logger has a global pool of memory allocated from non paged kernel memory that is available to all reliable services on a node for caching state data before being written to the dedicated log associated with the reliable service replica. Ukuran kumpulan dikontrol oleh pengaturan WriteBufferMemoryPoolMinimumInKB dan WriteBufferMemoryPoolMaximumInKB. WriteBufferMemoryPoolMinimumInKB menentukan ukuran awal kumpulan memori ini dan ukuran terendah yang dapat dicapai ketika kumpulan memori menyusut. WriteBufferMemoryPoolMaximumInKB adalah ukuran tertinggi di mana kumpulan memori dapat tumbuh. Each reliable service replica that is opened may increase the size of the memory pool by a system determined amount up to WriteBufferMemoryPoolMaximumInKB. Jika ada lebih banyak permintaan memori dari kumpulan memori daripada yang tersedia, permintaan memori akan tertunda hingga memori tersedia. Oleh karena itu, jika kumpulan memori buffer tulis terlalu kecil untuk konfigurasi tertentu, performa dapat mengalami penurunan.
Pengaturan SharedLogId dan SharedLogPath selalu digunakan bersama untuk menentukan GUID dan lokasi untuk log bersama default untuk semua simpul dalam kluster. The default shared log is used for all reliable services that do not specify the settings in the settings.xml for the specific service. Untuk performa terbaik, file log bersama harus ditempatkan pada disk yang hanya digunakan untuk file log bersama untuk mengurangi pertikaian.
SharedLogSizeInMB menentukan jumlah ruang disk yang akan dialokasikan sebelumnya untuk log bersama default pada semua simpul. SharedLogId and SharedLogPath do not need to be specified in order for SharedLogSizeInMB to be specified.
Konfigurasi keamanan replikator
Konfigurasi keamanan replikator digunakan untuk mengamankan saluran komunikasi yang digunakan selama replikasi. This means that services cannot see each other's replication traffic, ensuring the data that is made highly available is also secure. Secara bawaan, bagian konfigurasi keamanan yang kosong mencegah keamanan replikasi.
Penting
Pada simpul Linux, sertifikat harus diformat PEM. Untuk mempelajari selengkapnya tentang menemukan dan mengonfigurasi sertifikat untuk Linux, lihat Mengonfigurasi sertifikat di Linux.
Nama bagian
<ActorName>ServiceReplicatorSecurityConfig
Replicator configuration
Replicator configurations are used to configure the replicator that is responsible for making the Actor State Provider state highly reliable by replicating and persisting the state locally. Konfigurasi default dihasilkan oleh templat Visual Studio dan sudah cukup. Bagian ini berbicara tentang konfigurasi tambahan yang tersedia untuk menyetel replikator.
Nama bagian
<ActorName>ServiceReplicatorConfig
Configuration names
| Nama | Satuan | Nilai standar | Komentar |
|---|---|---|---|
| BatchAcknowledgementInterval | Detik | 0.015 | Periode waktu di mana replikator di sekunder menunggu setelah menerima operasi sebelum mengirim kembali pengakuan ke primer. Any other acknowledgements to be sent for operations processed within this interval are sent as one response. |
| ReplicatorEndpoint | Tidak tersedia | No default--required parameter | Alamat IP dan port yang akan digunakan replikator primer/sekunder untuk berkomunikasi dengan replikator lain dalam set replika. Ini harus mereferensikan titik akhir sumber daya TCP dalam manifes layanan. Refer to Service manifest resources to read more about defining endpoint resources in service manifest. |
| MaxReplicationMessageSize | Bytes | 50 MB | Ukuran maksimum data replikasi yang dapat dikirimkan dalam satu pesan. |
| MaxPrimaryReplicationQueueSize | Jumlah operasi | 8192 | Jumlah maksimum operasi dalam daftar tunggu utama. Operasi dibebaskan setelah replikator utama menerima pengakuan dari semua replikator sekunder. Nilai ini harus lebih besar dari 64 dan kekuatan 2. |
| MaxSecondaryReplicationQueueSize | Jumlah operasi | 16384 | Maximum number of operations in the secondary queue. An operation is freed up after making its state highly available through persistence. Nilai ini harus lebih besar dari 64 dan kekuatan 2. |
| CheckpointThresholdInMB | MB | 200 | Amount of log file space after which the state is checkpointed. |
| MaxRecordSizeInKB | KB | 1024 | Ukuran rekaman terbesar yang dapat ditulis replikator dalam log. Nilai ini harus kelipatan 4 dan lebih besar dari 16. |
| OptimizeLogForLowerDiskUsage | Boolean (tipe data yang hanya memiliki dua nilai: true atau false) | benar | When true, the log is configured so that the replica's dedicated log file is created by using an NTFS sparse file. This lowers the actual disk space usage for the file. When false, the file is created with fixed allocations, which provide the best write performance. |
| SharedLogId | guid | "" | Specifies a unique guid to use for identifying the shared log file used with this replica. Biasanya, layanan tidak boleh menggunakan pengaturan ini. Namun, jika SharedLogId ditentukan, maka SharedLogPath juga harus ditentukan. |
| SharedLogPath | Fully qualified path name | "" | Menentukan jalur lengkap di mana file log bersama untuk replika ini akan dibuat. Biasanya, layanan tidak boleh menggunakan pengaturan ini. Namun, jika SharedLogPath ditentukan, maka SharedLogId juga harus ditentukan. |
Contoh file konfigurasi
<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2011/01/fabric">
<Section Name="MyActorServiceReplicatorConfig">
<Parameter Name="ReplicatorEndpoint" Value="MyActorServiceReplicatorEndpoint" />
<Parameter Name="BatchAcknowledgementInterval" Value="0.05"/>
<Parameter Name="CheckpointThresholdInMB" Value="180" />
</Section>
<Section Name="MyActorServiceReplicatorSecurityConfig">
<Parameter Name="CredentialType" Value="X509" />
<Parameter Name="FindType" Value="FindByThumbprint" />
<Parameter Name="FindValue" Value="9d c9 06 b1 69 dc 4f af fd 16 97 ac 78 1e 80 67 90 74 9d 2f" />
<Parameter Name="StoreLocation" Value="LocalMachine" />
<Parameter Name="StoreName" Value="My" />
<Parameter Name="ProtectionLevel" Value="EncryptAndSign" />
<Parameter Name="AllowedCommonNames" Value="My-Test-SAN1-Alice,My-Test-SAN1-Bob" />
</Section>
</Settings>
Komentar
Parameter BatchAcknowledgementInterval mengontrol latensi replikasi. Nilai '0' menghasilkan latensi serendah mungkin, dengan mengorbankan throughput (karena lebih banyak pesan pengakuan harus dikirim dan diproses, yang masing-masing berisi lebih sedikit pesan pengakuan). The larger the value for BatchAcknowledgementInterval, the higher the overall replication throughput, at the cost of higher operation latency. This directly translates to the latency of transaction commits.
The CheckpointThresholdInMB parameter controls the amount of disk space that the replicator can use to store state information in the replica's dedicated log file. Meningkatkan ini ke nilai yang lebih tinggi daripada default dapat mengakibatkan waktu konfigurasi ulang yang lebih cepat ketika replika baru ditambahkan ke set. Hal ini disebabkan oleh transfer status parsial yang terjadi karena ketersediaan lebih banyak riwayat operasi dalam log. Ini berpotensi meningkatkan waktu pemulihan replika setelah crash.
If you set OptimizeForLowerDiskUsage to true, log file space will be over-provisioned so that active replicas can store more state information in their log files, while inactive replicas will use less disk space. This makes it possible to host more replicas on a node. If you set OptimizeForLowerDiskUsage to false, the state information is written to the log files more quickly.
Pengaturan MaxRecordSizeInKB menentukan ukuran maksimum rekaman yang dapat ditulis oleh replikator ke dalam file log. Dalam kebanyakan kasus, ukuran rekaman default 1024-KB optimal. Namun, jika layanan menyebabkan item data yang lebih besar menjadi bagian dari informasi status, maka nilai ini mungkin perlu ditingkatkan. Ada sedikit manfaat dalam membuat MaxRecordSizeInKB lebih kecil dari 1024, karena rekaman yang lebih kecil hanya menggunakan ruang yang diperlukan untuk rekaman yang lebih kecil. We expect that this value would need to be changed only in rare cases.
Pengaturan SharedLogId dan SharedLogPath selalu digunakan bersama untuk membuat layanan menggunakan log bersama yang berbeda dari log bersama default untuk simpul. Untuk efisiensi terbaik, sebanyak mungkin layanan harus menentukan log bersama yang sama. Shared log files should be placed on disks that are used solely for the shared log file, to reduce head movement contention. We expect that these values would need to be changed only in rare cases.