Saya menjalankan situs padat lalu lintas banyak konten dinamis, sebagian besar dihasilkan oleh pengguna.
Server ini berdedikasi dan memiliki total 4 prosesor Intel (R) Xeon (R) CPU X3210 @ 2.13GHz. Saya perlu tahu nilai-nilai optimal untuk arahan ServerLimit dan MaxClients, mengingat server memiliki RAM 4GB dan basis data MySQL berjalan pada server terpisah. Panel adalah DirectAdmin dengan CentOS.
Di bawah ini adalah arahan saya saat ini, tetapi selama jam sibuk dengan lebih dari 5k pengguna, ada kelambatan penting - dan ini bukan kesalahan MySQL secara keseluruhan, karena halaman tampaknya dihasilkan dengan cepat (saya menerapkan penghitung waktu pembuatan halaman), tetapi ada panjang penundaan koneksi hingga halaman mulai merespons dan dikirim ke browser.
<IfModule prefork.c>
StartServers 800
MinSpareServers 20
MaxSpareServers 60
ServerLimit 900
MaxClients 900
MaxRequestsPerChild 2000
</IfModule>
Timeout 90
KeepAlive On
KeepAliveTimeout 5
Saya harus menyebutkan bahwa pemantauan server menggunakan perintah teratas, penggunaan CPU tidak pernah melampaui 20% ~ 30% pada jam sibuk. Server MySQL juga memiliki penggunaan 30 ~ 50% pada waktu itu, dan saya terus berupaya memperbaiki kueri lambat, tapi itu masalah yang berbeda. Saya tahu ini bukan hambatan DB karena halaman statis juga butuh waktu lama untuk memuat pada jam sibuk.
Setiap tips untuk mengoptimalkan nilai-nilai ini akan sangat dihargai, terima kasih.