Cache Miss dan Cache Hit: Kapan Terjadi (& Cara Meningkatkan Rasio Cache Hit)
Diterbitkan: 2022-05-04Mengoptimalkan kinerja situs web Anda tanpa kebijakan caching yang solid seperti mencoba membangun rumah di atas pasir hisap.
Anda dapat menggunakan bahan dan alat terbaik, tetapi ketika fondasi Anda tidak kokoh, Anda akan selalu merasa ada sesuatu yang menghambat kemajuan Anda.
Kebijakan caching Anda adalah tulang punggung kinerja web situs web Anda yang luar biasa. Jika Anda memiliki sistem caching yang tepat, Anda dapat meningkatkan kecepatan situs Anda secara drastis.
Sebaliknya, tanpa pengaturan cache yang berfungsi dengan baik, permintaan pengunjung Anda akan menyebabkan hilangnya cache, yang pada gilirannya akan memperlambat waktu buka halaman Anda.
Dan cache miss hanyalah salah satu topik yang akan dibahas di baris berikut bersama dengan:
- Pengantar singkat tentang caching;
- Apa itu Nona Cache?;
- Apa itu Cache Hit?;
- Apa itu Cache Hit Ratio dan bagaimana cara menghitungnya?;
- Berapa Rasio Hit Cache yang bagus?;
- Bagaimana cara meningkatkan Rasio Hit Cache?;
- NitroPack - cara termudah untuk mencapai Rasio Hit Cache yang luar biasa.
Mari kita mulai!
Pengantar Singkat tentang Caching
Sebelum mempelajari dunia cache hit dan misses, penting untuk memahami cara kerja caching, apa tujuannya, dan mengapa ini dianggap sebagai strategi pengoptimalan kecepatan terbaik.
Untuk memahami caching, kita perlu mengambil langkah mundur dan mengikuti seluruh proses yang terjadi di balik layar ketika pengunjung meminta situs Anda.
Situs web Anda terbuat dari dokumen HTML, file JavaScript dan CSS, gambar, dll. Semuanya disimpan di server asal Anda. Ketika seseorang ingin mengunjungi situs web Anda, browser mereka mengirimkan permintaan ke server asal Anda, yang pada gilirannya mengirimkan kembali tanggapan dengan semua file yang diperlukan.

Ketika Anda memiliki 10 pengunjung yang secara bersamaan meminta file situs Anda, seharusnya tidak ada masalah, dan server Anda dapat menanganinya dengan cukup mudah.
Namun, model ini tidak berfungsi ketika 100.000 pengunjung ingin mengunjungi situs web Anda.
Server memiliki batasan berapa banyak permintaan yang dapat mereka tangani secara bersamaan, dan setiap permintaan setelah batas tersebut masuk ke antrian, sehingga waktu pemuatan pengunjung Anda menjadi lebih lama.

Di situlah caching masuk.
Singkatnya, caching adalah proses menyimpan salinan data situs Anda (HTML, CSS, JS, gambar, dll.) ke lokasi berbeda yang disebut cache web.
Cache web memainkan peran sebagai perantara antara pengguna dan asal Anda. Dengan begitu, permintaan mereka dilayani dari cache dan tidak diambil dari server Anda.

Akibatnya, halaman Anda memuat jauh lebih cepat.
Anda dapat menemukan berbagai jenis klasifikasi caching. Tetapi untuk tujuan artikel ini, dan untuk memahami kapan cache hit dan misses terjadi, kita akan melihat sekilas dua jenis yang paling populer - browser dan cache proxy.
Cache Peramban
Setiap browser memiliki kebijakan caching sendiri, dan dapat menyimpan data secara lokal di komputer pengguna.
Itu berguna karena membuat pemuatan halaman yang dikunjungi sebelumnya sangat cepat. Faktanya, cache browser adalah alasan utama mengapa tombol back dan forward dapat berfungsi dengan baik.

Sayangnya, cache browser terbatas untuk beroperasi per perangkat. Tetapi keuntungan terbesarnya adalah dapat menyimpan seluruh permintaan jaringan, yang membuatnya harus dimiliki.
Caching Server Proksi
Caching proxy membantu meringankan beban di server dan mengirimkan konten yang relatif lebih cepat ke pengguna akhir. Skenario kasus terbaik adalah ketika caching proxy bekerja bersama-sama dengan caching browser.
Server proxy didistribusikan di seluruh dunia. Mereka biasanya dikelola oleh penyedia CDN (Content Delivery Network).
Proxy adalah perantara antara pengguna dan server asal Anda. Anda dapat menggunakannya untuk menyimpan konten di lokasi yang berbeda, dan dengan begitu, konten Anda akan lebih dekat dengan pengguna, mengurangi latensi dan lalu lintas jaringan:

Tidak seperti cache browser, cache server proxy tidak dibatasi per perangkat, dan dapat secara bersamaan menyajikan konten ke banyak pengguna.
Itulah inti dari caching. Ini adalah topik yang bernuansa, dan masih banyak lagi yang harus dibuka - keuntungan dan kerugian dari berbagai jenis caching, cara mengatur aturan caching, dan banyak lagi.
Tapi bukan itu fokus artikel ini.
Jika Anda ingin menyelami topik lebih dalam, Anda dapat memeriksa artikel kami - Web Caching 101: Panduan Pemula Untuk HTTP Caching (Contoh, Tip dan Strategi)
Atau tonton video YouTube kami:
Untuk saat ini, penting untuk diingat bahwa Jika data yang diminta tidak ditemukan di cache web Anda, saat itulah penundaan dan masalah mulai terjadi. Ini membawa kita ke cache miss.
Apa itu Nona Cache?
Kehilangan cache terjadi ketika sistem, aplikasi, atau browser meminta untuk mengambil data dari cache, tetapi data spesifik tersebut saat ini tidak dapat ditemukan di memori cache.
Ketika cache miss terjadi, permintaan akan diteruskan ke server asal.
Setelah data diambil dari asalnya, data tersebut kemudian disalin dan disimpan ke dalam memori cache untuk mengantisipasi permintaan serupa di masa mendatang untuk data yang sama.
Ada beberapa alasan terjadinya cache miss.
Misalnya, data spesifik tidak pernah di-cache sejak awal.
Katakanlah Anda memiliki situs eCommerce dan Anda baru saja menambahkan halaman produk baru. Semua file gambar, HTML, CSS, dan JavaScript tidak pernah ditambahkan ke memori cache karena tidak ada yang pernah memintanya. Itu berarti pengunjung pertama Anda harus mengirim permintaan ke asal Anda untuk memuat halaman. Setelah permintaan pertama, data akan ditransfer ke cache dan disajikan darinya.
Kemungkinan lain untuk cache miss adalah bahwa data cache telah dihapus di beberapa titik.
Sekali lagi, ada beberapa hal yang mungkin menyebabkan skenario itu - lebih banyak ruang diperlukan, aplikasi meminta penghapusan, atau kebijakan Time to Live pada data kedaluwarsa.
Kami akan menyentuh lebih lanjut tentang Time to Live nanti di artikel.
Apa pun alasannya, kenyataannya adalah bahwa setiap kehilangan cache menyebabkan latensi yang lebih lama, waktu muat yang lambat, pengalaman pengguna yang buruk, dan pengunjung yang tidak puas.
Namun, saya tidak ingin meninggalkan kesan bahwa Anda perlu mencapai cache hit 100% setiap saat. Itu tidak realistis.
Terlebih lagi, ada beberapa kasus di mana cache miss diperlukan, karena Anda mungkin perlu memastikan bahwa konten yang Anda sajikan selalu up-to-date.

Misalnya, situs web berita seperti bbc.com dapat mengubah konten beranda beberapa kali sepanjang hari karena berita terkini perlu dilaporkan. Dalam hal ini, cache hit berarti pembaca mereka tidak melihat versi terbaru situs web mereka, dan masing-masing - mereka melewatkan berita terbaru.
Jadi ada sisi positif dari terjadinya cache miss.
Namun, jika Anda tidak memiliki situs web berita dan tidak mengubah konten Anda secara teratur, Anda harus berusaha menjaga cache miss serendah mungkin, dan cache hit setinggi mungkin.
Apa itu Cache Hit?
Sebuah cache hit terjadi ketika data yang diminta berhasil disajikan dari cache.
Misalnya, jika pengguna mengunjungi salah satu halaman produk Anda yang seharusnya menampilkan gambar produk yang Anda jual, browser mereka akan mengirimkan permintaan gambar ini ke cache (browser atau CDN). Jika CDN memiliki salinan gambar dalam penyimpanannya, permintaan akan menghasilkan cache hit, dan gambar dikirim kembali ke browser.
Apa itu Cache Hit Ratio dan Bagaimana Cara Menghitungnya?
Rasio hit cache mengukur berapa banyak permintaan yang berhasil dikirim oleh cache dari penyimpanannya, dibandingkan dengan jumlah total permintaan yang diterimanya.
Rasio hit cache yang tinggi berarti bahwa sebagian besar permintaan pengguna Anda telah dipenuhi oleh cache, yang pada gilirannya berarti mereka mengalami waktu pemuatan yang lebih cepat.
Anda dapat menghitung rasio hit cache Anda menggunakan rumus ini:

Namun, itu mungkin tidak diperlukan karena sebagian besar penyedia CDN menghitung ini untuk Anda.
Dasbor NitroPack juga menampilkan informasi ini:

Apa itu Rasio Hit Cache yang Baik?
Sebagai aturan umum - rasio hit cache 80% dan lebih tinggi adalah hasil yang baik karena itu berarti bahwa sebagian besar permintaan dilayani dari cache.
Apa pun di bawah 80% di situs web statis menunjukkan kebijakan caching yang tidak efisien.
Menurut Cloudflare, salah satu penyedia CDN terbesar di dunia:
Rasio Hit Cache global untuk NitroPack adalah 90%. Dan sekitar 70% dari semua pengguna NitroPack mengalami Cache Hit Ratio 80% atau lebih tinggi.
Bagaimana Meningkatkan Rasio Cache Hit?
Anda dapat mengambil langkah-langkah spesifik untuk mengurangi jumlah cache yang hilang dan karenanya meningkatkan rasio hit cache Anda.
1. Siapkan aturan caching berdasarkan kebutuhan situs web Anda
Header cache-control memungkinkan Anda menyetel banyak sekali aturan caching yang berbeda untuk mengoptimalkan penayangan konten Anda.
Beberapa aturan tersebut antara lain:
- no-store memberi tahu cache web untuk tidak menyimpan versi sumber daya apa pun dalam keadaan apa pun;
- no-cache memberi tahu cache web bahwa ia harus memvalidasi konten yang di-cache dengan server asal sebelum menyajikannya kepada pengguna;
- max-age menetapkan jumlah waktu maksimum (dalam detik) agar cache dapat menyimpan sumber daya yang disimpan sebelum mengunduh ulang atau memvalidasi ulang dengan server asal. Setelah itu, konten ditandai sebagai basi;
- s-maxage melakukan hal yang sama persis dengan max-age tetapi hanya untuk cache proxy;
- private memberi tahu cache web bahwa hanya cache pribadi yang dapat menyimpan respons;
- publik menandai respon sebagai publik. Setiap cache perantara dapat menyimpan respons yang ditandai dengan instruksi ini;

Anda harus mengatur Time to Live (berapa lama cache akan menyimpan data Anda sebelum mengambil informasi terbaru dari asal) yang paling sesuai dengan konten Anda.
Misalnya, jika aset berubah kira-kira setiap dua bulan, header usia maksimum 50 hari mungkin sesuai. Namun, jika aset diubah setiap hari, Anda mungkin ingin menggunakan header tanpa cache .
Anda dapat menemukan informasi lebih lanjut tentang header kontrol cache, kesegaran cache, dan validasi di video YouTube kami:
2. Abaikan parameter UTM
Menjalankan beberapa kampanye iklan (misalnya, iklan Facebook, iklan Google, dll.) menghasilkan URL yang berbeda dengan parameter UTM tertentu.
Akibatnya, Anda memiliki satu halaman dengan beberapa variasi (parameter UTM berbeda) yang perlu dioptimalkan.

Itu adalah masalah karena setiap variasi URL dianggap sebagai objek unik, dan setiap permintaan akan diarahkan ke server asal.
Dengan demikian, setiap permintaan akan diklasifikasikan sebagai cache miss, meskipun konten yang diminta tersedia di cache web.
Ini mengarah pada rasio hit cache yang lebih rendah yang tidak perlu.
NitroPack - Cara Termudah untuk Mencapai Rasio Hit Cache yang Luar Biasa
Setelah semua yang telah kita bahas, seluruh proses untuk mencapai rasio hit cache yang tinggi mungkin terdengar agak berlebihan.
Kabar baiknya adalah jika Anda bekerja dengan penyedia CDN, sebagian besar hal yang saya sebutkan, seperti header kontrol-cach, mungkin sudah diurus untuk Anda.
Untuk yang lainnya, Anda dapat menggunakan plugin caching.
Misalnya, NitroPack hadir dengan fitur out-of-the-box yang menjamin rasio hit cache tinggi pengguna kami. Ini termasuk:
- Pemanasan Cache akan mensimulasikan kunjungan organik ke situs web Anda, yang secara otomatis mengarah ke NitroPack yang menyiapkan versi situs web Anda yang dioptimalkan (di-cache) untuk desktop dan perangkat seluler.
- Cache Invalidation menandai konten yang di-cache sebagai "basi" tetapi tetap menyajikannya hingga konten yang baru dioptimalkan tersedia. Akibatnya, pengunjung Anda selalu melihat konten yang dioptimalkan, meskipun mungkin sudah usang untuk sementara waktu.
- CDN bawaan, yang menghilangkan kebutuhan Anda untuk menyinkronkan CDN Anda dengan plugin caching pilihan Anda. Seringkali itu memakan waktu, merepotkan, dan dapat menyebabkan masalah yang tidak terduga.
- Opsi Parameter Diabaikan yang memungkinkan NitroPack mengabaikan beberapa parameter UTM (dan lainnya) yang umum digunakan secara default sehingga Anda tidak perlu khawatir saat menjalankan kampanye pemasaran Anda.

Tapi Anda tidak perlu mengambil kata-kata saya untuk itu. Uji NitroPack secara gratis dan lihat sendiri dampaknya.
