Tulis mana yang benar? Lihat Metode Caching I / O

Pengarang: Laura McKinney
Tanggal Pembuatan: 1 April 2021
Tanggal Pembaruan: 25 Juni 2024
Anonim
Cebas presents thinkingParticles 6, Subscription Drop 3: Caching
Video: Cebas presents thinkingParticles 6, Subscription Drop 3: Caching

Isi


Sumber: Kgtoh / Dreamstime.com

Bawa pulang:

Kecepatan aplikasi sebagian besar tergantung pada kecepatan I / O cache. Di sini kita membandingkan metode I / O cache yang berbeda.

Kinerja aplikasi berakar pada kecepatan - kecepatan dalam menyelesaikan permintaan baca dan tulis yang diminta aplikasi Anda dari infrastruktur Anda. Penyimpanan bertanggung jawab atas kecepatan pengembalian permintaan I / O (input / output), dan metode yang dipilih untuk melakukan penulisan dan menyampaikan bacaan memiliki dampak mendalam pada kinerja aplikasi. Metode umum dalam industri saat ini adalah menggunakan SSD untuk melakukan caching pada penyimpanan disk pemintalan tradisional, array hybrid, atau array semua-flash. Sebagian besar solusi caching mempercepat pembacaan untuk aplikasi, tetapi pertanyaan sebenarnya tetap ada, "Tulisan mana yang benar?"

Mari kita lihat mengapa pengoptimalan penulisan memengaruhi kinerja aplikasi Anda secara drastis. Tulis I / O menyiratkan bahwa ini adalah data baru yang tidak ditulis pada penyimpanan yang mendasarinya. Dalam penyimpanan SAN tradisional, misalnya, tulis ditulis langsung pada penyimpanan yang mendasarinya dan kemudian dikembalikan ke aplikasi. Dengan aplikasi yang terus-menerus menulis data baru, terutama aplikasi basis data besar (SQL, dll.), Disk pemintalan tradisional tidak dapat mengikutinya. Caching pada SSD menjadi solusi yang memungkinkan penulisan ditulis secara lokal dan di-cache berdasarkan frekuensi permintaan aplikasi; namun, ada beberapa metode untuk hubungan tulis-cache dengan penyimpanan yang mendasarinya yang menyebabkan perbedaan besar dalam kinerja.


Ini adalah 3 bentuk penulisan I / O:

  1. Write-Around (sekitar cache)
  2. Write-Through (melalui cache)
  3. Write-Back (dari cache)

Ketiga bentuk memiliki manfaat berbeda yang didasarkan terutama pada jenis data yang sedang ditulis: berurutan vs acak. I / O berurutan adalah yang paling dioptimalkan oleh disk yang mendasarinya (file atau video stream misalnya), sedangkan I / O acak dioptimalkan oleh cache. Sebagian besar peralatan caching tidak memiliki kecerdasan dinamis untuk mengubah bentuk teknologi penulisan berdasarkan jenis data. Mari kita memahami perbedaan antara tiga bentuk penulisan I / O.

Tulis-Sekitar

Write-around, juga dikenal sebagai mode cache read-only, bermanfaat murni untuk membebaskan ruang untuk membaca cache. I / O yang masuk tidak pernah mengenai cache. I / O ditulis langsung ke penyimpanan permanen tanpa menyimpan data apa pun.

Apa yang mungkin menjadi manfaat cache jika tidak digunakan? Ini membantu mengurangi cache yang dibanjiri dengan penulisan I / O yang tidak akan dibaca kembali, tetapi memiliki kelemahan bahwa permintaan baca untuk data tertulis baru-baru ini akan membuat "cache miss" dan harus dibaca dari penyimpanan massal yang lebih lambat dan mengalami latensi yang lebih tinggi. Jika aplikasi Anda bersifat transaksional, seperti kebanyakan aplikasi penting misi, maka kecepatan aplikasi akan melambat dan antrian I / O akan bertambah. Pada dasarnya nilai mode ini akan untuk kasus penggunaan yang jarang karena itu memakan waktu, lambat, dan tidak berkinerja.


Menulis melalui

Metode ini biasa digunakan dalam solusi penyimpanan caching dan hybrid saat ini. Write-through dikenal sebagai mode caching baca, yang berarti bahwa semua data ditulis ke cache dan penyimpanan yang mendasarinya pada saat yang sama. Tulisan HANYA dianggap selesai setelah ditulis ke penyimpanan Anda. Kedengarannya cukup aman sebenarnya ... tapi ada kekurangan kecepatan.

Inilah masalahnya: Setiap operasi penulisan dilakukan dua kali, di cache dan kemudian di penyimpanan permanen. Sebelum aplikasi dapat dilanjutkan, penyimpanan permanen harus mengembalikan komit I / O kembali ke cache, lalu kembali ke aplikasi. Metode ini umumnya diterapkan untuk ketahanan kegagalan dan untuk menghindari penerapan strategi failover atau HA dengan cache karena data tinggal di kedua lokasi. Namun, Write-Through menimbulkan latensi karena I / O commit ditentukan oleh kecepatan penyimpanan permanen, yang tidak cocok dengan kecepatan CPU dan jaringan. Anda hanya secepat komponen yang paling lambat, dan Write-Through dapat melumpuhkan kecepatan aplikasi secara kritis.

Tanpa Bug, Tanpa Stres - Panduan Langkah Demi Langkah Anda untuk Membuat Perangkat Lunak yang Mengubah Hidup Tanpa Menghancurkan Kehidupan Anda

Anda tidak dapat meningkatkan keterampilan pemrograman Anda ketika tidak ada yang peduli dengan kualitas perangkat lunak.

Menulis kembali

Write-Back meningkatkan hasil sistem dalam hal kecepatan - karena sistem tidak harus menunggu penulisan untuk masuk ke penyimpanan yang mendasarinya.

Ketika data masuk untuk ditulis, Write-Back akan memasukkan data ke dalam cache, sebuah "semua selesai", dan menyimpan data untuk menulis ke disk penyimpanan nanti.

Ini memecahkan banyak masalah latensi, karena sistem tidak harus menunggu tulisan yang mendalam itu.

Dengan dukungan yang tepat, Write-Back dapat menjadi metode terbaik untuk caching multi-tahap. Ini membantu ketika cache memiliki sejumlah besar memori (mis. Memori yang diukur dalam terabyte, bukan gigabytes) untuk menangani aktivitas dalam volume besar. Sistem yang canggih juga akan membutuhkan lebih dari satu solid state drive, yang dapat menambah biaya. Sangat penting untuk mempertimbangkan skenario seperti kegagalan daya atau situasi lain di mana data penting dapat hilang. Tetapi dengan "perlindungan cache" yang tepat, Write-Back benar-benar dapat mempercepat arsitektur dengan beberapa sisi-bawah. Misalnya, sistem Write-Back dapat menggunakan desain RAID atau redundan untuk menjaga data tetap aman.

Bahkan sistem yang lebih rumit akan membantu cache dan SAN atau disk penyimpanan yang mendasarinya untuk bekerja satu sama lain sebagai "sesuai kebutuhan," mendelegasikan penulisan ke penyimpanan yang dalam atau cache tergantung pada beban kerja disk.

Filosofi desain Write-Back adalah yang mencerminkan penyelesaian masalah yang dibawa sistem penanganan data canggih saat ini ke tugas-tugas besar. Dengan membuat arsitektur yang lebih kompleks, dan menggunakan cache dengan cara yang kompleks, Write-Back menghancurkan masalah latensi, dan meskipun mungkin memerlukan lebih banyak overhead, itu memungkinkan untuk pertumbuhan sistem yang lebih baik, dan mengurangi rasa sakit yang tumbuh.