CentOS /proc/sys/fs/epoll/max_user_instances=128 Non ce n’était pas une bonne idée

Suite à la mise à jour de mon serveur CentOS 5.2 de plesk 8.6 à plesk 9 mon serveur apache 2.2.3 c’est subitement bloqué à 128 requêtes actives en cours. Et pourtant je n’avais fait aucune modifications dans mon httpd.conf que voici (uniquement le prefork) :

StartServers 30
MinSpareServers 40
MaxSpareServers 45
ServerLimit 1000
MaxClients 700
MaxRequestsPerChild 6000

Mon serveur-status était claire : « Je ne dépasse pas les 128 requêtes actives en cours, je m’en tape de ta config apache. »

Parent Server Generation: 0
Server uptime: 25 seconds
Total accesses: 754 – Total Traffic: 6.1 GB
CPU Usage: u9.07 s.12 cu0 cs0 – 36.8% CPU load
128 requests currently being processed, 0 idle workers

WKWWKWWKWWKWWWWKWWWWWWWWWKWWWWWKKWKWKWWWKWWKKKWKWK WKWWWWKKWWKWWW
WWWWWWWWWWKWKKWWWKWWWWWKWWWWWKWWWWCWWWKWKWWWWWWWKW WWWKWWWWKWKKKW
………………………………………….. …………..
………………………………………….. …………..
………………………………………….. …………..
………………………………………….. …………..
………………………………………….. …………..
………………………………………….. …………..
………………………………………….. …………..
………………………………………….. …………..
………………………………………….. …………..
………………………………………….. …………..
………………………………………….. …………..
………………………………………….. …………..
………………………………………….. …………..
………………………………….

Ce qui d’un point de vue imagé donne ceci (on voit bien le avant et aprés la MAJ):

localhost-apache_processes-day

localhost-apache_processes-month

Après avoir chercher longuement, le bon alrj me donne ce lien accablant : http://www.mail-archive.com/fedora-kernel-list@redhat.com/msg01618.htm.

Et oui, les petit gars de chez Fedora/Centos/redhat ont eu la mauvaise idée de spécifier le nombre d’instance maximum par utilisateur à 128. Ce qui signifie dans le cas d’apache qu’il ne pourra executer que 128 requête active… Mais le même problème va se pauser pour tous les autres applicatifs (postfix, DIG, etc). Je pense qu’ils ont voulut faire ça pour eviter les « fork bomb » même si il existe des solutions moins violente pour eviter ça.

LA SOLUTION :

En attendant qu’une mise à jour sorte la solution la plus simple est d’écrire dans le fichier de configuration une valeur plus élevé. Je vous conseil 1024.

# echo 1024 > /proc/sys/fs/epoll/max_user_instances

Puis de relancer apache.

# /etc/init.d/httpd restart

Et oui c’était pas plus compliqué que cela 🙂

Benchmark : Windows Vista – Windows 7 – Ubuntu

Actuellement nous pouvons constater l’apparition d’articles traitant des performances de Windows 7.
Si ces articles sont très positifs, qu’en est-il de la comparaison entre Windows 7 en version 32 bits et 64 bits? Windows 7 se voulant dédié au tout public, que vaut-il comparé à une distribution Linux grand public, telle qu’Ubuntu?

Pour répondre à ces questions, notre confrère de Tux Radar a réalisé toute une série de tests :
– Windows 7 est-il plus facile à installer?
– Windows 7 est-il plus rapide au démarrage et à l’arrêt?
– Windows 7 est-il plus rapide pour la copie de fichiers?

Je vous invite à lire le test complet (en anglais).

Site pour trouver un stage/emplois

Je me fais un petit mémo en liens avec celui que j’avais fait sur les société toulousaine dans le domaine des SI.

En voici un sur les différents site qui propose des stages et surtout des emplois pour quelqu’un ayant un BAC+5 :

Apec
http://www.apec.fr

Sudouestjob
http://www.sudouestjob.com/

Keljob :
http://www.keljob.com

Monster
http://www.monster.fr/

Les Jeudis
http://www.lesjeudis.com/

CV.com
http://www.cv.com

Cadres Online
www.cadresonline.com

Cadre emplois
http://www.cadremploi.fr/

Hobsons

http://www.hobsons.fr/

mdadm et monitoring du raid sous linux

Je viens découvrir le célèbre mdadm qui permet de gerer le RAID sous linux. Dans ce bloc note je vais m’attarder sur l’aspect monitoring. Pour le reste les liens sont en bas.

Ce bon mdadm va me donner le détail de la partition raid ainsi :

mdadm –detail /dev/md1

Et pour monitorer ses hdd et recevoir des gentils mail d’alerte voici la commande avec pour paramètre : mon mail, le délai et les partitions monitoré.

#mdadm –monitor –mail=moi@gmail.com –delay=1800 –daemonise –scan /dev/md1
#mdadm –monitor –mail=moi@gmail.com –delay=1800 –daemonise –scan /dev/md2

On peut aussi rajouter des options tel que –program ou –alert pour spécifié ce qui doit être fait en cas d’alerte 🙂

Source :
http://www.noisette.ch/wiki/index.php/Mdadm et surtout http://unthought.net/Software-RAID.HOWTO/Software-RAID.HOWTO-6.html

Centreon 2 stable sur Ubuntu 8.04

Alors une petite note sur l’installation de Centreon 2 stable sur Ubuntu.

Il est plus sur de partir sur une installation de Ubuntu neuve.

Faite une mise à jour avant de lancer le script.

# apt-get update
# apt-get upgrade

Script d’installation automatique réalisé par Rodolfo Matos que j’ai mis à jour :

  • MAJ vers Nagios 3.0.6
  • MAJ vers nagios-plugins-1.4.13
  • MAJ vers Centreon stable 2.0
  • Suppression de l’installation de webmin
  • Correction du bug de l’installation de centreon (./install.sh -i)

# wget http://www.artiflo.org/divers/centreon/centreon-installer-v0.2
# chmod +x centreon-installer-v0.2
# bash centreon-installer-v0.2

Il se peut que lors de connexion vers centreon il y ai l’erreur :

NDO Database connection error

Si c’est le cas editer le fichier /usr/local/nagios/etc/ndo2db.cfg et vérifiez qu’il contiens bien ces lignes :

db_name=ndo
db_prefix=nagios_
db_user=ndo
db_pass=votrepass

Ensuite aller sur votre bdd et vérifier que les champs de la table cfg_ndo2db de la base centreon correspondent aux information citer au dessus.

Relancer enfin nagios et ndo2db (après avoir tué son process) ainsi :

#/etc/init.d/nagios restart
#/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg

Vous pouvez verifier que la configuratin de nagios est bonne ainsi :

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Source :

La doc officielle :
http://en.doc.centreon.com/Installation_Scripts_for_Centreon_2/fr

Le super article de nicolargo http://blog.nicolargo.com/2009/01/le-serveur-de-supervision-libre-part-1.html

Un autre bon article : http://www.geekhelpme.fr/tutoriels/systemes/linux/27-installer-nagios-centreon-sous-ubuntu.html

Convertir une image virtuelle VMWARE (vmdk) Windows au format Virtual Box (vdi)

Convertir une image virtuelle VMWARE (vmdk) Windows au format Virtual Box (vdi).

Par défaut, une image VMWare (vmdk) ne peut pas être utilisée telle quelle par VirtualBox.
Il faut effectuer quelques modifications dessus, pour les rendre compatibles.

Continuer la lecture de Convertir une image virtuelle VMWARE (vmdk) Windows au format Virtual Box (vdi)

Debloquer l’opérateur pour certain nokia n95

Je possède 2 puces mais qu’un téléphone qui est malheureusement bloqué sur orange. J’ai donc pris le partie de débloquer mon nokia n95 et de mettre à jour son firmware. Cette technique ne fonctionne plus pour les nouveaux n95, mais elle permet toutefois de mettre à jour leur firmware d’une très ancienne version à la toute dernière qui corrige beaucoup de bug, débloque le SIP, améliore la vitesse de l’APN et améliore l’autonomie de l’appareil.

Avant toute chose faite une sauvegarde des données de votre téléphone avec Nokia PC Suite puis désinstaller Nokia PC Suite car ses pilotes sont incompatible avec NSU. Vous pourrai réinstaller Nokia PC suite après que votre téléphone soit flashé.

La procédure est en 2 étapes :

1 / Changer le code opérateur avec Némésis Service Suite (NSS).

2 / Mettre à jour le nokia avec un nouveau firmware officiel nu avec Nokia Software Updater (NSU).

Alors il faut télécharger NSS http://rapidshare.com/files/171629067/NSS103814.exe

ainsi que NSU en fonction de votre modèle de téléphone : http://europe.nokia.com/A4579163

Pour Nemesis Service Suite :

Installez le En mode Virtual USB Device.
Attendez avant de les exécuter.

Branchez votre téléphone et attendez qu’il termine d’installer les drivers.
Lancer Nemesis et cliquez sur la loupe en haut à droite
Cliquez sur l’icône « phone info »
Cliquez sur « scan » (Vous devez voir les infos : Phone version et Phone IMEI)
Et en bas de cette fenêtre, vous devez voir .… Scan for Product… Done

Dans la fenêtre de droite vous avez  » Production Data Edit »
Vous constaterez que vous pouvez écrire sur « Product code »

Vous marquez votre code produit qui correspond au produit « nu » soit pour un n95 : 0534842 ou 0536063 et cochez la case « enable ».
Appuyez sur « write » et le code produit de votre téléphone sera changé en moins de 2 secondes.
Vous devez voir en bas de la fenêtre …Write new values… Done

Voila le nouveau code produit est enregistré !

Fermer Nemesis et exécutez NOKIA SOFTWARE UPDATE (NSU) pour pouvoir procéder au flashage.

NSU devrait vous proposer de passer au nouveau firmware 30.0.x si ce n’est pas le cas c’est qu’il faut refaire l’opération précédente.

Quand NSU aura terminé le flashage, allumez votre téléphone et vous avez un téléphone avec le dernier firmware en version nu.

Vous pouvez a présent réinstaller Nokia Pc Suite et remettre votre sauvegarde sur votre téléphone.

Sources :

http://mobileweb.forumactif.com/debloquez-votre-mobile-changement-d-operateur-f20/flasher-un-nokia-bb5-t10797.htm

Ip_conntrack ou nf_conntrack: table full, dropping packet.

Un problème assez fréquent lors de petit DDOS, ou de monté en charge de serveur.

Le module ip_conntrack ou nf_conntrack permet le suivi de connections lorsque l’on utilise netfilter. Dans cette table est écrit toutes les connections ouvertes ces 5 derniers jours. Cela peut poser un problème lorsque cette table est pleine. Aucune connections n’est alors possible et la console renvoie le message suivant :

nf_conntrack: table full, dropping packet.

Ou

ip_conntrack: table full, dropping packet.

Il faut commencer par par regarder les valeurs par default :

#/sbin/sysctl -a | grep conntrack

Ce qui devrait donner quelques chose comme ça :

net.ipv4.netfilter.ip_conntrack_generic_timeout = 600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_loose = 1
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3
net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180
net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
net.ipv4.netfilter.ip_conntrack_max = 65536
net.ipv4.netfilter.ip_conntrack_count = 4983
net.ipv4.netfilter.ip_conntrack_buckets = 16384
net.ipv4.netfilter.ip_conntrack_checksum = 1
net.ipv4.netfilter.ip_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_generic_timeout = 600
net.netfilter.nf_conntrack_max = 65536
net.netfilter.nf_conntrack_count = 4983
net.netfilter.nf_conntrack_buckets = 16384
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_expect_max = 256
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_be_liberal = 0
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.netfilter.nf_conntrack_icmp_timeout = 30

Bon la première chose à faire est de limiter le délai maximum d’une connexion de 432000 secondes ( soit 120 heures ou 5 jours)  à seulement 1 jours (ou moins).

Pour nf_conntrack :

# /sbin/sysctl -w net.netfilter.nf_conntrack_tcp_timeout_established=86400

Pour ip_conntrack :

# /sbin/sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established =86400

Ensuite si ce n’est pas déjà le cas augmenter le conntrack_max. Dans cet exemple je la passe à 64536 mais cela peut être beaucoup plus, tout dépend de la quantité de RAM que vous avez. Plus cette valeur sera élevé plus cela consommera de RAM.

Pour nf_conntrack :

# /sbin/sysctl -w net.netfilter.nf_conntrack_max=65536

Pour ip_conntrack :

# /sbin/sysctl -w net.ipv4.netfilter.ip_conntrack_max =65536

A présent il faut que vos configuration perdurent au prochain reboot. Pour cela rajouter les lignes précédentes dans le sysctl.conf.

# nano /etc/sysctl.conf

net.netfilter.nf_conntrack_max=65536.
net.netfilter.nf_conntrack_tcp_timeout_established=60
net.ipv4.netfilter.ip_conntrack_max =65536
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established =60

Enfin redémarrer votre interface réseau.

# /etc/init.d/network restart

Correction bug munin

Alors une petite liste de bug avec munin :

cat: /proc/net/ip_conntrack: Permission denied

Il n’y a pas les bon droit dans /proc/net/ip_conntrack il faut faire le chmod.

#chmod +xr -R /proc/net

Ensuite on peut aussi avoir :

Plugin « if_eth0 » exited with status 512.

C’est toujours un probleme de droit. Mais cette fois si il faut les corriger dans le fichier :

#nano /etc/munin/plugin-conf.d/munin-node

et

#nano /etc/munin/plugins.conf

Et rajouter ces lignes :

[if_*]
user root

[if_err_*]
user root

Et enfin le plus facile : mysql

mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘nobody’@’localhost’ (using password: NO)’

Petit piège quand vous mettez le mot de passe contrairement au login il ne faut pas d’espace entre le -p et le mot de passe.

Editer donc :

#nano /etc/munin/plugin-conf.d/munin-node

et

#nano /etc/munin/plugins.conf

[mysql*]
env.mysqlopts -u login -ppass