Ukuran tabel cache telah meningkat menjadi 10+ GB bulan lalu, dan saya telah memperbaikinya sementara dengan memotongnya. Terakhir kali saya memeriksanya sekitar 1GB. Jadi dalam beberapa bulan akan mencapai 10GB lagi. Bagaimana ini harus ditangani?
Perhatikan bahwa saya telah menonaktifkan semua pekerjaan cron di situs ini. Jika ini alasannya, cron mana yang harus diaktifkan?
Anda menyebutkan dalam komentar Anda untuk MPD bahwa meskipun mengatur cron dan menjalankannya secara teratur tabel cache_form Anda tumbuh dengan cepat.
Salah satu solusi untuk itu adalah menjalankan cron Anda lebih sering. Katakan setiap enam jam atau kurang? Jika Anda tidak mampu melakukannya bacalah lebih lanjut.
Solusi Alternatif:
Instal Elysia Cron dan sekarang Anda dapat menjalankan fungsi cron modul Anda secara terpisah. Anda dapat menjaga frekuensi cron Elysia agar modul Anda berjalan setiap enam jam. Sehingga
cache_form
meja Anda dipangkas setiap enam jam.Selama proses pemangkasan ini, entri yang tidak lebih dari 6 jam tidak akan dihapus. Alasannya, jika semua entri dihapus maka segala bentuk yang diajukan pada saat menghapus entri dapat berperilaku aneh.
Lihatlah kode di https://api.drupal.org/api/drupal/includes!form.inc/function/form_set_cache/7
Ketika komentar itu berbunyi, mereka menganggap itu harus banyak dan dalam kasus Anda itu menjadi terlalu banyak untuk Anda. Jadi triknya adalah menghapus tabel cache_form lebih sering dan mengurangi nilai $ expire ke nilai yang lebih rendah, jika Anda ingin menghapus entri cache_form lebih sering daripada nilai default 6 enam jam maka Anda perlu mengubah TTL dari entri cache_form.
Anda dapat melakukannya dengan menginstal cacheboject dan kemudian mengimplementasikan
hook_cacheobject_presave
di dalamnya Anda dapat mengubah TTL menjadi 2 atau 3 jam.Satu kelemahan dari pendekatan ini adalah jika formulir tidak dikirimkan dalam waktu 2 jam (nilai RTL yang Anda tetapkan) data formulir dapat hilang dan Anda mungkin mendapatkan beberapa formulir yang kedaluwarsa.
sumber
Sebagai solusi untuk masalah ini, saya telah membuat modul https://www.drupal.org/project/session_cache_form
sumber
Ketika saya mengalami masalah kinerja di situs tempat saya bekerja, saya mengalami hal ini setelah memperbaiki caching. Anda dapat membaca artikel di sini: https://thinktandem.io/blog/2017/11/22/debugging-with-new-relic-blazemeter-strace-more/
Dari posting blog saya, Anda dapat menambahkan antrian dan pengaturan cron, kemudian gunakan sesuatu seperti Elysia Cron untuk membuat semuanya bekerja bersama dengan baik:
sumber
Gunakan modul Safe cache_form Clear .
Ini akan memungkinkan Anda memangkas tabel ke ukuran yang wajar terlebih dahulu, lalu pertahankan.
Ringkasan kutipan dari halaman proyek:
Setelah modul terinstal, prune pertama cache_form: jalankan
drush safe-cache-form-clear
hingga ukuran tabel tetap konsisten, menunjukkan Anda telah menghapus semua catatan yang lebih lama dari 6 jam.Kemudian akan terus berjalan di cron.
Ini adalah modul yang didokumentasikan untuk tujuan ini oleh Acquia untuk pelanggan mereka. Halaman dokumentasi Acquia menyediakan informasi tambahan yang bagus.
sumber