Quelle est la meilleure configuration sysctl.conf pour un serveur de streaming de contenu très chargé et extrêmement occupé? Le serveur récupère le contenu des serveurs distants comme amazon, s3, etc., puis utilise php pour diffuser dynamiquement le contenu à l'utilisateur sans l'enregistrer sur le disque dur. php utilise CURL pour récupérer le fichier, puis utilise flush () pour le diffuser simultanément, donc peu de travail sur le disque dur ... uniquement le réseau et la bande passante.
Le serveur est un quad core xeon, avec une carte réseau full duplex 1 Gbit, 8 Go de RAM et 500 Go x 2 en RAID. L'utilisation de la mémoire du serveur et la charge du processeur sont assez faibles.
Nous utilisons debian lenny et lighttpd2 dessus (oui je sais que ce n'est pas encore sorti :-)) avec php 5.3.6 et php fastcgi avec spawn-fcgi bind sur 4 sockets unix différents avec 20 enfants chacun. Le nombre maximal de requêtes fcgi est de 20, avec le module mod_balancer en configuration lighttpd2 pour équilibrer les requêtes fastcgi entre ces 4 sockets en configuration SQF (file d'attente courte en premier).
Nos serveurs utilisent beaucoup de bande passante, c'est-à-dire que la connexion réseau est occupée tout le temps. Juste après 100 à 200 connexions parallèles, le serveur commence à ralentir et finit par ne plus répondre, commence à donner des erreurs de délai d'attente de connexion. Quand nous avions cpanel, nous n'avons jamais eu d'erreurs de timeout, donc ça ne peut pas être un problème de script. Il doit s'agir d'un problème de configuration réseau.
configuration de lighttpd2: processus de travail = 8, les requêtes de maintien en vie sont de 32, le délai d'inactivité de maintien en vie est de 10 secondes et les connexions maximales sont de 8192.
Notre contenu actuel de sysctl.conf est:
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
. Vérifiez s'il y a des processus qui s'étouffent, manque de mémoire, etc. strace
et voyez pourquoi / où ils se bloquent.