Apa konfigurasi sysctl.conf terbaik untuk server streaming konten yang sangat sibuk dan sangat sibuk? Server mengambil konten dari server jarak jauh seperti amazon, s3, dll. Kemudian menggunakan php untuk secara dinamis mengalirkan konten ke pengguna tanpa menyimpannya ke hard drive. php menggunakan CURL untuk mengambil file, kemudian menggunakan flush () untuk mengalirkannya secara bersamaan, jadi tidak banyak hard drive yang berfungsi ... hanya jaringan dan bandwidth.
Servernya adalah quad core xeon, dengan NIC dupleks penuh 1Gbit, RAM 8gb, dan 500GBx2 dalam RAID. Penggunaan memori server dan beban cpu cukup rendah.
Kami menjalankan debian lenny dan lighttpd2 di atasnya (ya saya tahu belum dirilis :-)) dengan php 5.3.6 dan php fastcgi dengan spawn-fcgi mengikat 4 soket unix berbeda dengan masing-masing 20 anak. Permintaan fcgi maksimum adalah 20, dengan modul mod_balancer dalam konfigurasi lighttpd2 untuk menyeimbangkan permintaan fastcgi di antara 4 soket ini dalam konfigurasi SQF (antrian pendek dulu).
Server kami menggunakan banyak bandwidth, mis. Koneksi jaringan sibuk setiap saat. Hanya setelah 100 hingga 200 koneksi paralel, server mulai melambat dan akhirnya menjadi tidak responsif, mulai memberikan kesalahan batas waktu koneksi. Ketika kami memiliki cpanel, kami tidak pernah mendapatkan kesalahan batas waktu, jadi itu bukan masalah skrip. Itu harus menjadi masalah konfigurasi jaringan.
konfigurasi lighttpd2: proses pekerja = 8, permintaan tetap hidup adalah 32, biarkan batas waktu siaga idle adalah 10 detik, dan koneksi maks adalah 8192.
Konten sysctl.conf kami saat ini adalah:
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_tw_recycle = 1
# Increase maximum amount of memory allocated to shm
kernel.shmmax = 1073741824
# This will increase the amount of memory available for socket input/output queues
net.ipv4.tcp_rmem = 4096 25165824 25165824
net.core.rmem_max = 25165824
net.core.rmem_default = 25165824
net.ipv4.tcp_wmem = 4096 65536 25165824
net.core.wmem_max = 25165824
net.core.wmem_default = 65536
net.core.optmem_max = 25165824
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
# you shouldn't be using conntrack on a heavily loaded server anyway, but these are
# suitably high for our uses, insuring that if conntrack gets turned on, the box doesn't die
# net.ipv4.netfilter.ip_conntrack_max = 1048576
# net.nf_conntrack_max = 1048576
# For Large File Hosting Servers
net.core.wmem_max = 1048576
net.ipv4.tcp_wmem = 4096 87380 524288
sysctls
. Periksa apakah ada proses tersedak, kurang memori, dll. strace
Proses dan lihat mengapa / di mana mereka menggantung.