Topik ini menjelaskan parameter tuning untuk backend status tingkat enterprise, GeminiStateBackend.
Informasi latar belakang
Pada sebagian besar skenario, GeminiStateBackend menggunakan fitur tuning adaptifnya untuk menyesuaikan parameter secara otomatis sehingga Anda tidak perlu mengonfigurasinya secara manual. Cukup sesuaikan beberapa konfigurasi dasar sesuai dengan skenario bisnis Anda. Untuk informasi selengkapnya, lihat Konfigurasi dasar. Pada skenario tertentu, Anda dapat mengaktifkan konfigurasi khusus untuk tuning yang ditargetkan, seperti berikut:
-
Untuk menyeimbangkan penggunaan memori dan performa, gunakan konfigurasi memori. Untuk informasi selengkapnya, lihat Konfigurasi memori.
-
Jika ruang disk lokal habis, gunakan konfigurasi pemisahan komputasi-penyimpanan (compute-storage separation). Untuk informasi selengkapnya, lihat Konfigurasi pemisahan komputasi-penyimpanan.
-
Jika terjadi bottleneck performa pada operator Join, gunakan konfigurasi pemisahan key-value. Untuk informasi selengkapnya, lihat Konfigurasi pemisahan key-value.
Untuk ikhtisar backend status tingkat enterprise dan metode konfigurasinya, lihat Pengenalan backend status tingkat enterprise dan Setel parameter terkait State.
Konfigurasi dasar
|
Parameter |
Deskripsi |
Tipe data |
Nilai default |
Catatan |
|
table.exec.state.ttl |
Waktu hidup (TTL) untuk status pekerjaan SQL. |
Long |
|
Unitnya adalah milidetik. Misalnya, nilai 129600000 berarti TTL-nya adalah 1,5 hari. Parameter ini tidak dapat digunakan bersamaan dengan state.backend.gemini.ttl.ms. Catatan
Atur nilai yang pendek sesuai kebutuhan. |
|
state.backend.gemini.ttl.ms |
TTL untuk status pekerjaan DataStream atau Python. |
Long |
(tidak ada) |
Unitnya adalah milidetik. Misalnya, nilai 129600000 berarti TTL-nya adalah 1,5 hari. Parameter ini tidak dapat digunakan bersamaan dengan table.exec.state.ttl. Catatan
Atur nilai yang pendek sesuai kebutuhan. |
|
state.backend.gemini.savepoint.external-sort.local-storage.enabled |
Menentukan apakah data temporary yang dihasilkan selama snapshot pekerjaan standar disimpan di disk lokal. |
Boolean |
false |
Nilai yang valid:
Catatan
|
Konfigurasi memori
Parameter konfigurasi memori berikut didukung di VVR 4.0 dan versi lebih baru.
|
Parameter |
Deskripsi |
Tipe data |
Nilai default |
Catatan |
|
state.backend.gemini.memory.managed |
Menentukan apakah GeminiStateBackend secara otomatis mengalokasikan memori berdasarkan managed memory. |
Boolean |
true |
Nilai yang valid:
Catatan
|
|
state.backend.gemini.total.writebuffer.size |
Total ukuran memori yang digunakan oleh WriteBuffer. |
String |
128 MB |
Parameter ini hanya berlaku jika state.backend.gemini.memory.managed diatur ke false. Jika tidak, total ukuran memori untuk WriteBuffer dihitung secara otomatis berdasarkan managed memory. Saat mengonfigurasi parameter ini, Anda harus menambahkan akhiran unit. Unit yang valid adalah B, KB, MB, dan GB. Catatan
|
|
state.backend.gemini.offheap.size |
Ukuran memori off-heap yang digunakan oleh GeminiStateBackend. Catatan
Memori off-heap yang digunakan oleh Gemini ini tidak termasuk bagian yang digunakan oleh WriteBuffer. |
String |
(tidak ada) |
Parameter ini hanya berlaku jika state.backend.gemini.memory.managed diatur ke false. Jika tidak, ukuran memori off-heap yang digunakan oleh GeminiStateBackend dihitung secara otomatis berdasarkan managed memory. Saat mengonfigurasi parameter ini, Anda harus menambahkan akhiran unit. Unit yang valid adalah B, KB, MB, dan GB. Catatan
|
Konfigurasi dasar untuk Checkpoint dan StateBackend di Apache Flink juga berlaku untuk GeminiStateBackend. Untuk informasi selengkapnya, lihat Checkpoints and State Backends.
Konfigurasi pemisahan komputasi-penyimpanan
Parameter konfigurasi pemisahan komputasi-penyimpanan berikut didukung di VVR 4.0.11 dan versi lebih baru.
|
Parameter |
Deskripsi |
Tipe data |
Nilai default |
Catatan |
|
state.backend.gemini.file.cache.type |
Mode pemisahan komputasi-penyimpanan. |
String |
|
Nilai yang valid:
|
|
state.backend.gemini.file.cache.preserved-space |
Ruang disk tersisa yang tersedia untuk data status pada satu TaskManager. |
String |
2 GB |
Ketika ruang bebas aktual kurang dari nilai ini, GeminiStateBackend menyimpan data status pada DFS untuk mengatasi keterbatasan penyimpanan lokal. Saat mengonfigurasi parameter ini, Anda harus menambahkan akhiran unit. Unit yang valid adalah B, KB, MB, dan GB. Catatan
|
Saat Anda menggunakan Object Storage Service (OSS) sebagai sistem file terdistribusi, kit pengembangan perangkat lunak (SDK) OSS Client menulis seluruh file ke disk lokal sebelum mengunggahnya. Hal ini dapat menyebabkan penggunaan ruang disk yang tidak terduga. Misalnya, saat Flink membuat savepoint, satu StateBackend menghasilkan satu file besar yang tidak terkompresi secara lokal. Dalam skenario ini, pemisahan komputasi-penyimpanan tidak efektif. Sebagai alternatif, Anda dapat meningkatkan konkurensi untuk mengurangi ukuran status pada satu node.
Konfigurasi pemisahan key-value
Parameter konfigurasi pemisahan key-value berikut didukung di VVR 4.0.12 dan versi lebih baru.
|
Parameter |
Deskripsi |
Tipe data |
Nilai default |
Catatan |
|
state.backend.gemini.kv.separate.mode |
Mode pemisahan key-value. |
String |
|
Nilai yang valid:
Catatan
|
|
state.backend.gemini.kv.separate.value.size.threshold |
Saat pemisahan key-value diaktifkan, ini adalah ambang batas ukuran value yang memicu pemisahan key-value. |
Integer |
200 |
Sebuah record yang mencapai ambang batas ini akan menyimpan key dan valuenya secara terpisah. Rentang nilai yang direkomendasikan adalah 150 hingga 1000. Sesuaikan parameter ini berdasarkan tingkat keberhasilan join. Tingkat keberhasilan join yang lebih tinggi memungkinkan nilai parameter yang lebih besar. Unitnya adalah byte. Catatan
Pada VVR 6.0.1 dan versi lebih baru, jika Anda telah mengaktifkan mode tuning adaptif, mesin secara dinamis menyesuaikan parameter ini berdasarkan karakteristik data. Anda tidak perlu mengonfigurasinya secara eksplisit. |
Konfigurasi tuning adaptif
Parameter konfigurasi tuning adaptif berikut didukung di VVR 4.0.12 dan versi lebih baru.
|
Parameter |
Deskripsi |
Tipe data |
Nilai default |
Catatan |
|
state.backend.gemini.auto-tune.mode |
Mode tuning adaptif. |
String |
ACTIVE |
Nilai yang valid:
Catatan
|
|
state.backend.gemini.auto-tune.burst.start.x |
Periode waktu untuk menggunakan mode performa-utama dalam tuning adaptif. |
String |
(tidak ada) |
Huruf `x` dalam nama parameter adalah angka apa pun. `start.x` berkorespondensi dengan `end.x`. Anda dapat menggunakannya untuk mengatur beberapa periode waktu. Format nilai parameter adalah yyyy-MM-dd HH:mm:ss. Jika Anda memerlukan Transaction Per Second (TPS) yang lebih tinggi daripada efisiensi keseluruhan, konfigurasikan kedua parameter ini. Selama periode waktu yang ditentukan, GeminiStateBackend menggunakan kebijakan TPS-utama. Kebijakan ini mengonsumsi lebih banyak resource, seperti CPU atau memori, untuk mencapai TPS yang lebih tinggi. Catatan
|
|
state.backend.gemini.auto-tune.burst.end.x |