Seberapa sering Apache dan MySQL harus di-restart (khususnya yang memiliki 150 ribu hit / minggu), dan apa manfaat sebenarnya dari memulai kembali setiap waktu tertentu?
Seberapa sering Apache dan MySQL harus di-restart (khususnya yang memiliki 150 ribu hit / minggu), dan apa manfaat sebenarnya dari memulai kembali setiap waktu tertentu?
Jawaban:
Apache dan MySQL sendiri harus bebas dari kebocoran memori. Sebagian besar server basis data berjalan lebih baik semakin lama. Namun, modul yang dikompilasi ke dalam Apache seperti PHP sering mengalami kebocoran memori.
The Apache modul mpm otomatis mendaur ulang proses setelah 10.000 permintaan. Anda dapat mengubah MaxRequestsPerChild
ke sesuatu yang berbeda, tetapi 10.000 adalah standar yang masuk akal.
Apache tidak perlu memulai ulang secara teratur; MySQL juga tidak.
Apache yang berjalan dalam mode prefork dapat mendaur ulang proses anaknya menggunakan MaxRequestsPerChild; ini adalah hal yang baik karena bertahan terhadap kebocoran memori yang lambat, dll.
MySQL seharusnya tidak direstart secara teratur, karena me-restart itu akan menyebabkan pemadaman layanan. Restart MySQL perlu menunggu mesin menyala dan juga akan menghapus cache yang menyebabkan kinerja menyedot sampai memanas. Kami sepertinya menemukan bahwa itu perlu direstart dari waktu ke waktu [1] karena fragmentasi ruang alamat, tetapi ini seharusnya tidak terlalu banyak terjadi pada sistem 64-bit, yang harus selalu dilanjutkan dengan pemasangan baru.
[1] misalnya setiap 9 bulan di server yang sibuk dengan rata-rata> 100 pertanyaan per detik
Anda harus menghindari me-restart MySQL sedapat mungkin karena alasan kinerja. MySQL menggunakan banyak memori untuk menyimpan cache halaman data dan indeks. Ketika Anda me-restart MySQL, semua halaman dalam cache dibebaskan dan Anda perlu waktu untuk melakukan pemanasan cache. Di situs yang sangat dimuat, restart database dapat menyebabkan masalah kinerja.
Situs Anda tidak dimuat dengan saksama (150 ribu hit / minggu hanya memberikan 1req / 4s), jadi restart MySQL seharusnya tidak menyebabkan masalah besar.
Untuk memahami kapan suatu sistem atau layanan perlu di-boot ulang, Anda harus terlebih dahulu memahami alasannya. Kebocoran memori adalah alasan paling umum tetapi mungkin ada yang lain, seperti perangkat lunak yang ditulis dengan buruk (terlalu umum!) Yang tidak melakukan perawatan internal yang baik, seperti menutup pegangan file ketika mereka tidak lagi diperlukan. Meskipun tidak sama dengan memori yang bocor, gejalanya sama. Baik Apache dan MySQL diketahui sangat stabil (kecuali Anda menjalankan versi alfa atau beta) dan dapat berjalan selama bertahun-tahun tanpa masalah. Biasanya sistem operasi perlu reboot untuk menerapkan tambalan jauh sebelum salah satu aplikasi akan membutuhkannya.