Sebagian besar aplikasi Next.js di App Hosting dapat mempertahankan setelan default Next.js normal.
Namun, jika instance Anda mengalami error Memory limit exceeded, Anda mungkin perlu menetapkan experimental.isrFlushToDisk: false untuk menyimpan cache dalam memori dan mencegah instance dimulai ulang.
Secara default, Next.js meng-cache halaman dan data yang dirender saat runtime, seperti
halaman yang dibuat dengan Incremental Static Regeneration
(ISR),
respons pengendali rute, dan hasil pengambilan. Library ini menyimpannya dalam memori dan juga
menuliskannya ke file di direktori .next aplikasi Anda. Next.js tidak menghapus
file ini.
Di App Hosting, aplikasi Anda berjalan di Cloud Run, tempat sistem file berada dalam memori. File yang ditulis ke dalamnya akan mengurangi memori yang dialokasikan untuk setiap instance penyaluran (memoryMiB) hingga instance tersebut dinonaktifkan. Jika aplikasi Anda merender banyak halaman berbeda saat runtime, misalnya rute dinamis dengan parameter yang tidak dibuat pada waktu build, instance dapat melebihi batas memorinya dan dimulai ulang. Cloud Run kemudian mencatat error seperti
Memory limit of 512 MiB exceeded with 515 MiB used. Lihat
dokumentasi Cloud Run tentang akses sistem
file untuk
mengetahui detailnya.
Menyimpan cache dalam memori
Untuk menghentikan Next.js menulis cache-nya ke sistem file, tetapkan
experimental.isrFlushToDisk ke false dalam file
next.config.js:
// @ts-check
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
isrFlushToDisk: false,
},
};
module.exports = nextConfig;
Selanjutnya, Next.js hanya menyimpan konten yang di-cache dalam memori, hingga cacheMaxMemorySize
(default 50 MB), dan menghapus entri yang paling jarang digunakan saat cache
penuh. Setiap instance penyaluran memiliki cache-nya sendiri, yang akan hilang saat instance dimulai ulang.
Buat commit yang menyertakan perubahan ini dan kirim ke cabang aktif Anda. Kemudian, tunggu hingga peluncuran App Hosting selesai.