Bagikan melalui


Gambaran Azure App Service Local Cache

Catatan

Cache lokal tidak didukung di aplikasi fungsi atau aplikasi App Service dalam kontainer, seperti di Windows Containers atau di App Service on Linux. Versi cache lokal yang tersedia untuk jenis aplikasi ini adalah App Cache.

Konten Azure App Service disimpan di Azure Storage dan ditampilkan dengan cara yang tahan lama sebagai konten berbagi. Desain ini dimaksudkan untuk bekerja dengan berbagai aplikasi dan memiliki atribut berikut:

  • Konten dibagikan di beberapa instance virtual machine (VM) pada aplikasi.
  • Kontennya tahan lama dan dapat dimodifikasi dengan menjalankan aplikasi.
  • File log dan file data diagnostik tersedia di bawah folder konten bersama yang sama.
  • Menerbitkan konten baru secara langsung akan memperbarui folder konten. Anda dapat segera melihat konten yang sama melalui situs web SCM dan aplikasi yang sedang berjalan (biasanya beberapa teknologi seperti ASP.NET memulai ulang aplikasi pada beberapa perubahan file untuk mendapatkan konten terbaru).

Meskipun banyak aplikasi menggunakan satu atau semua fitur ini, beberapa aplikasi hanya memerlukan penyimpanan konten berperforma tinggi dan konten baca-saja yang dapat dijalankan dengan ketersediaan tinggi. Aplikasi ini dapat memanfaatkan instance VM dari cache lokal tertentu.

Fitur Cache Lokal Azure App Service menyediakan tampilan peran web dari konten Anda. Konten ini adalah cache write-but-discard dari konten penyimpanan Anda yang dibuat secara asinkron saat memulai di situs. Ketika cache sudah siap, situs dialihkan untuk menjalankan konten yang di-cache. Aplikasi yang berjalan di Cache Lokal memiliki manfaat sebagai berikut:

  • Mereka kebal terhadap latensi yang terjadi saat mengakses konten di Azure Storage.
  • Mereka tidak terpengaruh oleh masalah koneksi ke penyimpanan, karena salinan baca-saja di-cache pada pekerja.
  • Mereka lebih sedikit memulai ulang aplikasi karena perubahan berbagi penyimpanan.

Catatan

Jika Anda menggunakan Java (Java SE, Tomcat, atau JBoss EAP), maka secara default artefak Java--.jar, .war, dan file .ear--disalin secara lokal ke pekerja. Jika aplikasi Java Anda bergantung pada akses baca-saja ke file lain juga, atur JAVA_COPY_ALL ke true agar file tersebut juga disalin. Jika Cache Lokal diaktifkan, perlu diutamakan daripada peningkatan khusus Java ini.

Bagaimana cache lokal mengubah perilaku App Service

  • D:\home menunjuk ke cache lokal, yang dibuat pada instance VM saat aplikasi dimulai. D:\local melanjutkan menunjuk ke penyimpanan khusus VM sementara.
  • Cache lokal berisi salinan sekali pakai folder /site dan /siteextensions dari penyimpanan konten yang dibagikan, di D:\home\site dan D:\home\siteextensions, secara berturut-turut. File disalin ke cache lokal saat aplikasi dimulai. Ukuran dua folder untuk setiap aplikasi dibatasi hingga 1 GB secara default, tetapi dapat ditingkatkan hingga 2 GB. Perhatikan bahwa dengan bertambahnya ukuran cache, akan memakan waktu lebih lama untuk memuat cache. Jika Anda meningkatkan batas cache lokal menjadi 2 GB dan file yang disalin melebihi ukuran maksimum 2 GB, App Service secara diam-diam mengabaikan cache lokal dan membaca dari file berbagi jarak jauh.

Penting

Ketika file yang disalin melebihi batas ukuran Cache Lokal yang ditentukan atau ketika tidak ada batas yang ditentukan, operasi penyebaran dan penukaran mungkin gagal dengan kesalahan. Lihat FAQ untuk informasi selengkapnya.

  • Cache lokal read-write. Namun, modifikasi apa pun dibuang saat aplikasi memindahkan komputer virtual atau dimulai ulang. Jangan gunakan cache lokal untuk aplikasi yang menyimpan data penting misi di penyimpanan konten.
  • D:\home\LogFiles dan D:\home\Data berisi file log dan app data. Kedua subfolder disimpan secara lokal di instans VM, dan disalin ke penyimpanan konten bersama secara berkala. Aplikasi dapat menyimpan file dan data log dengan menuliskannya ke folder ini. Namun, penyalinan ke penyimpanan konten bersama adalah upaya terbaik, sehingga file log dan data mungkin hilang karena crash instans VM secara tiba-tiba.
  • Streaming log dipengaruhi oleh salinan upaya terbaik. Anda dapat mengamati penundaan hingga satu menit dalam log yang dialirkan.
  • Di penyimpanan konten bersama, ada perubahan dalam struktur folder LogFiles dan Data untuk aplikasi yang menggunakan cache lokal. Sekarang ada subfolder di dalamnya yang mengikuti pola penamaan "pengidentifikasi unik" + cap waktu. Setiap subfolder sesuai dengan instans VM tempat aplikasi sedang berjalan atau telah berjalan.
  • Folder lain di D:\home tetap berada di cache lokal dan tidak disalin ke penyimpanan konten bersama.
  • Penerapan aplikasi melalui metode apa pun yang didukung akan dipublikasikan langsung ke penyimpanan konten bersama yang tahan lama. Untuk menyegarkan folder D:\home\site dan D:\home\siteextensions di lokal cache, aplikasi perlu dimulai ulang. Untuk membuat siklus hidup berjalan lancar, lihat informasinya di artikel ini.
  • Tampilan konten default situs SCM tetap seperti penyimpanan konten bersama.

Aktifkan Cache Lokal di App Service

Catatan

Lokal Cache tidak didukung di tingkat F1 atau D1.

Anda mengonfigurasi Cache Lokal dengan menggunakan kombinasi pengaturan aplikasi yang dipesan. Anda dapat mengonfigurasi pengaturan aplikasi ini dengan menggunakan metode berikut:

Konfigurasikan Cache Lokal dengan menggunakan portal Azure

Anda mengaktifkan Cache Lokal berdasarkan aplikasi web dengan menggunakan pengaturan aplikasi ini: WEBSITE_LOCAL_CACHE_OPTION = Always

Azure portal app settings: Local Cache

Konfigurasikan Cache Lokal dengan menggunakan Azure Resource Manager

...

{
    "apiVersion": "2015-08-01",
    "type": "config",
    "name": "appsettings",
    "dependsOn": [
        "[resourceId('Microsoft.Web/sites/', variables('siteName'))]"
    ],

    "properties": {
        "WEBSITE_LOCAL_CACHE_OPTION": "Always",
        "WEBSITE_LOCAL_CACHE_SIZEINMB": "1000"
    }
}

...

Ubah pengaturan ukuran di Cache Lokal

Secara default, ukuran Lokal Cache adalah 1 GB. Ini termasuk folder /site dan /siteextensions yang disalin dari penyimpanan konten, serta folder log dan data yang dibuat secara lokal. Untuk meningkatkan batas ini, gunakan pengaturan aplikasi WEBSITE_LOCAL_CACHE_SIZEINMB. Anda dapat meningkatkan ukuran hingga 2 GB (2000 MB) per app. Perhatikan bahwa akan memakan waktu lebih lama untuk memuat cache lokal seiring dengan bertambahnya ukuran.

Praktik terbaik untuk menggunakan Cache Lokal App Service

Sebaiknya Anda menggunakan Cache Lokal bersama dengan fitur Lingkungan Pementasan.

  • Tambahkan pengaturan aplikasi sticky WEBSITE_LOCAL_CACHE_OPTION dengan nilai Always ke slot Produksi Anda. Jika Anda menggunakan WEBSITE_LOCAL_CACHE_SIZEINMB, tambahkan juga sebagai pengaturan sticky ke slot Produksi Anda.
  • Buat slot Staging dan publikasikan ke slot Staging Anda. Anda biasanya tidak menyetel slot staging untuk menggunakan Cache Lokal guna mengaktifkan siklus hidup uji build-deploy yang lancar untuk staging jika Anda mendapatkan manfaat Cache Lokal slot produksi.
  • Uji situs Anda terhadap slot Staging Anda.
  • Saat Anda siap, keluarkan operasi pertukaran antara slot Staging dan Produksi Anda.
  • Pengaturan sticky termasuk nama dan sticky ke slot. Jadi ketika slot Staging ditukar ke Produksi, itu akan mewarisi pengaturan aplikasi Cache Lokal. Slot Produksi yang baru ditukar akan berjalan melawan cache lokal setelah beberapa menit dan akan dipanaskan sebagai bagian dari pemanasan slot setelah swap. Jadi ketika slot swap selesai, slot Produksi Anda berjalan melawan cache lokal.

Pertanyaan yang sering diajukan (FAQ)

Bagaimana jika batas ukuran Cache Lokal terlampaui?

Ketika file yang disalin melebihi batas ukuran Cache Lokal, aplikasi akan membaca dari berbagi jarak jauh. Namun, operasi penyebaran dan pertukaran mungkin gagal dengan kesalahan. Lihat tabel di bawah ini untuk batas ukuran dan hasil.

 Ukuran Cache Lokal File yang disalin Hasil
≤ 2 GB ukuran Cache Lokal ≤ Membaca dari cache lokal.
≤ 2 GB > Ukuran Cache Lokal Membaca dari berbagi jarak jauh.
Catatan: Operasi penyebaran dan pertukaran mungkin gagal dengan kesalahan.

Bagaimana cara mengetahui apakah Cache Lokal berlaku untuk aplikasi saya?

Jika aplikasi Anda membutuhkan penyimpanan konten yang andal dan berkinerja tinggi, tidak menggunakan penyimpanan konten untuk menulis data penting saat waktu proses, dan berukuran total kurang dari 2 GB, maka jawabannya adalah "ya"! Untuk mendapatkan ukuran total folder /site dan /siteextensions Anda, Anda dapat menggunakan ekstensi situs "Azure Web Apps Disk Usage."

Bagaimana cara mengetahui apakah situs saya telah beralih menggunakan Cache Lokal?

Jika Anda menggunakan fitur Cache Lokal dengan Staging Environments, operasi swap tidak selesai sampai Cache Lokal dipanaskan. Untuk memeriksa apakah situs Anda menjalankan Cache Lokal, Anda dapat memeriksa variabel lingkungan proses pekerja WEBSITE_LOCALCACHE_READY. Gunakan petunjuk pada laman variabel lingkungan proses pekerja untuk mengakses variabel lingkungan proses pekerja pada beberapa instans.

Saya baru saja memublikasikan perubahan baru, tetapi aplikasi saya sepertinya tidak memilikinya. Mengapa?

Jika aplikasi Anda menggunakan Cache Lokal, maka Anda perlu memulai ulang situs Anda untuk mendapatkan perubahan terbaru. Tidak ingin memublikasikan perubahan ke situs produksi? Lihat opsi slot di bagian praktik terbaik sebelumnya.

Catatan

Opsi penerapan jalankan dari paket tidak kompatibel dengan cache lokal.

Di mana log saya?

Dengan Cache Lokal, log Anda dan folder data terlihat sedikit berbeda. Namun, struktur subfolder Anda tetap sama, kecuali bahwa subfolder terletak di bawah subfolder dengan format "pengidentifikasi VM unik" + cap waktu.

Saya telah mengaktifkan Cache Lokal, tetapi aplikasi saya masih dimulai ulang. Mengapa begitu? Saya rasa Cache Lokal membantu dengan seringnya mulai ulang aplikasi.

Cache Lokal memang membantu mencegah mulai ulang aplikasi terkait penyimpanan. Namun, aplikasi Anda masih dapat memulai ulang selama upgrade infrastruktur VM yang direncanakan. Mulai ulang aplikasi secara keseluruhan yang Anda alami dengan Cache Lokal diaktifkan seharusnya lebih sedikit.

Apakah Cache Lokal mengecualikan direktori apa pun agar tidak disalin ke drive lokal yang lebih cepat?

Sebagai bagian dari langkah yang menyalin konten penyimpanan, folder apa pun yang bernama repositori dikecualikan. Hal ini membantu skenario di mana konten situs Anda mungkin berisi repositori kontrol sumber yang mungkin tidak diperlukan dalam pengoperasian aplikasi sehari-hari.

Bagaimana cara menghapus log cache lokal setelah operasi manajemen situs?

Untuk menghapus log cache lokal, hentikan dan mulai ulang aplikasi. Tindakan ini membersihkan cache lama.

Mengapa App Service mulai menampilkan file yang disebarkan sebelumnya setelah penghidupan ulang saat Cache Lokal diaktifkan?

Jika App Service mulai menampilkan file yang disebarkan sebelumnya saat menghidupkan ulang, periksa keberadaan Pengaturan Aplikasi - 'WEBSITE_DISABLE_SCM_SEPARATION=true'. Setelah menambahkan pengaturan ini, penyebaran apa pun melalui KUDU mulai menulis ke mesin virtual lokal alih-alih penyimpanan persisten. Praktik terbaik yang disebutkan di atas dalam artikel ini harus dimanfaatkan, di mana penyebaran harus selalu dilakukan ke slot penahapan yang tidak mengaktifkan Cache Lokal.

Sumber daya lainnya

Variabel lingkungan dan referensi pengaturan aplikasi