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.
sumber
Anda perlu mendapatkan ukuran rata-rata proses apache Anda. Dengan nomor ini dan ukuran total RAM Anda, Anda dapat menghitung arahan MaxClients. Ingat ini: "Server web tidak boleh pernah bertukar" ( Apache Performance Tuning )
Pemantauan dengan top atau htop tidak apa-apa, tetapi Anda memerlukan pandangan yang lebih baik dari semua statistik server Anda (cpu, ram, disk i / o, permintaan apache, permintaan lambat mysql, dll ...) dengan beberapa alat pemantauan seperti ganglia atau munin untuk temukan kemungkinan kemacetan.
sumber
Saya merekomendasikan bermain-main dengan alat benchmark (ab) apache. Anda dapat bermain-main dengan nilai-nilai untuk mencocokkannya dengan arus lalu lintas Anda dan melihat apa jenis respons yang Anda dapatkan sejauh waktu buka rata-rata & sejenisnya. Pada titik itu Anda dapat bermain-main dengan pengaturan yang sedang Anda bicarakan untuk mencoba dan mengoptimalkannya. Anda harus dapat dengan ab untuk menangani kinerja yang optimal untuk setiap tweak kinerja.
Ini tidak benar-benar bijaksana bagi saya untuk berbicara tentang pengaturan Anda, namun Anda juga perlu mempertimbangkan RAM Anda juga karena sepertinya Anda memakan banyak RAM dengan pengaturan itu. Meskipun itu hanya spekulasi tanpa data. htop memberi Anda pembacaan visual yang baik tentang sumber daya Anda.
Rata-rata beban Anda juga bisa dikatakan banyak. Saya ragu bahwa penggunaan Anda jauh lebih tinggi dari jumlah total inti Anda dari 20-30% CPU, tetapi ini merupakan indikator seberapa keras server Anda benar-benar berfungsi.
sumber