Table des matières
3 billet(s) pour janvier 2026
| Notes rsh rcp | 2026/01/21 18:08 | Jean-Baptiste |
| Git - Duplication d'un dépôt | 2026/01/19 10:22 | Jean-Baptiste |
| Exemple simple de conf Nagios | 2026/01/14 10:07 | Jean-Baptiste |
Pb Plantage connexion OpenWRT 100% sirq Soft IRQ
J'ai toujours le Pb, ce qui est ci-dessous n'est pas La Solution
Voir
Depuis que je suis passé à la fibre (FTTH), mon WRT54GT équipé d'OpenWRT ne semble plus suivre. Il redémarre assez souvent, quand je télécharge ou regarde un vidéo sur youTub en HD. Et donc perte de connexion
En me connectant en SSH sur le routeur et grâce à top je constate que lors de gros téléchargement(s) le CPU est occupé à presque 100% par des Soft IRQ.
Voir :
- /proc/interrupts
- /proc/softirqs
- /proc/stat
/proc/interrupts
CPU0
3: 16 MIPS serial, gpio
4: 228251 MIPS eth0
7: 423222 MIPS timer
ERR: 0
J'en profite pour faire un peu de ménage dans /etc/firewall.user pour alléger la table filter d'iptables. Ce qui ne change absolument rien au Pb.
Étape 1
Pour nos teste, on désactive le chien de garde. (remplacé sur les version plus récente par procd !?)
On jette un œil
ps -ef |grep watchdog watchdog -t 5 /dev/watchdog
Ne pas tuer le processus watchdog, sinon risque de reboot 60 secondes après ! Voir http://www.guiguishow.info/2011/08/23/openwrt-watchdog-en-voila-un-bon-toutou/
Pour tester quand même. Attention, redémarrage dans 60s
/etc/init.d/watchdog stop reboot
ou
killall watchdog
Voir wdctl
Optimisation
Ne corrige pas le pb de fond, permet juste de regarder une vidéo en HD sur USATupe
Désactiver le max de module dans /etc/modules.d/
Attention ici je désactive le wiki
20-cfg80211:#cfg80211 21-mac80211:#mac80211 30-ppp:#slhc 30-ppp:#ppp_generic 30-ppp:#ppp_async 40-pppoe:#pppox 40-pppoe:#pppoe 41-ipt-conntrack:#iptable_raw 45-ipt-nathelper:#nf_conntrack_ftp 45-ipt-nathelper:#nf_nat_ftp 45-ipt-nathelper:#nf_conntrack_irc 45-ipt-nathelper:#nf_nat_irc 45-ipt-nathelper:#nf_conntrack_tftp 45-ipt-nathelper:#nf_nat_tftp
/etc/init.d/sysntpd disable /etc/init.d/dnsmasq disable
reboot
Reproduire le Pb / faire planter le routeur
iperf et bwm-ng sont deux outils sympa pour mesurer la bande passante réseau
Sur une machine sur internet
iperf -s
Dans le réseaux local
iperf -c <IP MACHINE_SUR_INTERNET> -i 1 -P 32
-P 32 : ouvre 32 connexions simultanées C'est le nombre de connexion ouverte simultanées qui fait crasher le routeur/pare-feu.
NB : le pb se présente dans les deux sens (en inversant le client et le serveur iperf -s et iperf -c)
Solution
Désactiver nf_conntrack_acct (ce qui est peut-être le cas par défaut) J'ai quand même une fois réussi à faire planter le routeur en faisant un test iperf
/etc/sysctl.conf
#net.netfilter.nf_conntrack_acct=1 net.netfilter.nf_conntrack_acct=0
Brouillons
sudo ping -f -s 1472 192.168.1.2 hping3 --flood 192.168.1.2 -1 -d 1472
J'en profite pour tester ce petit script, sans succès
nomaxconnect.sh
# http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.base.doc/info/aes/ae/tprf_tunelinux.html # Lorsqu'un débit important de demandes de connexion entrante entraîne des échecs de connexion echo 3000 > /proc/sys/net/core/netdev_max_backlog echo 3000 > /proc/sys/net/core/somaxconn echo 1 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout echo 1 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_time_wait echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout echo 200 > /proc/sys/kernel/threads-max echo 50 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
Conf par défaut
cat /proc/sys/net/core/netdev_max_backlog 1000 cat /proc/sys/net/core/somaxconn 128 cat /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout 60 cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_time_wait 120 cat /proc/sys/net/ipv4/tcp_fin_timeout 30 cat /proc/sys/kernel/threads-max 207 cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max 16384
PHP-FPM RedHat7 CentOS7 Apache 2.4
Avant de passer en PHP-FPM nous avions ✈ :
/etc/httpd/conf.d/php.conf
# # Cause the PHP interpreter to handle files with a .php extension. # <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> # # Allow php to handle Multiviews # AddType text/html .php # # Add index.php to the list of files that will be served as directory # indexes. # DirectoryIndex index.php # # Uncomment the following lines to allow PHP to pretty-print .phps # files as PHP source code: # #<FilesMatch \.phps$> # SetHandler application/x-httpd-php-source #</FilesMatch> # # Apache specific PHP configuration options # those can be override in each configured vhost # php_value session.save_handler "files" php_value session.save_path "/var/lib/php/session"
yum remove php rm /etc/httpd/conf.d/php.conf yum install php-fpm
Avec FPM
/etc/httpd/conf.d/php-fpm.conf
# # PHP-FPM avec le compte php-monsiteweb (car 127.0.0.1:9001) # <FilesMatch \.php$> #SetHandler application/x-httpd-php # 2.4.10+ can proxy to unix socket # SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost/" # Else we can just use a tcp socket: SetHandler "proxy:fcgi://127.0.0.1:9001" </FilesMatch> # # Allow php to handle Multiviews # AddType text/html .php # # Add index.php to the list of files that will be served as directory # indexes. # DirectoryIndex index.php
/etc/php-fpm.d/monsiteweb.conf
[monsiteweb] #listen = /var/run/php5-fpm.sock listen = 127.0.0.1:9001 listen.allowed_clients = 127.0.0.1 user = php-monsiteweb group = php-monsiteweb #pm = dynamic pm = ondemand pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 # Pour debug #catch_workers_output = yes #php_flag[display_errors] = on #php_admin_flag[log_errors] = on #request_slowlog_timeout = 10s #slowlog = /var/log/php-fpm/www-slow.log php_admin_value[error_log] = /var/log/php-fpm/www-error.log php_value[session.save_handler] = files # Doit être accessible en écriture par l'utilisateur PHP-FPM (définie dans ce fichier "user = ") php_value[session.save_path] = /var/lib/php/session/php-monsiteweb php_value[date.timezone] = "Europe/Paris" # A ajuster php_value[memory_limit] = 64M php_value[post_max_size] = 10M php_value[max_execution_time] = 60 php_value[max_input_time] = 60
adduser --system --home /var/www/monsiteweb/ php-monsiteweb mkdir /var/lib/php/session/php-monsiteweb chown -R php-monsiteweb:php-monsiteweb /var/lib/php/session/php-monsiteweb systemctl enable php-fpm.service systemctl restart php-fpm.service systemctl status php-fpm.service
PHP MySQL snippet
<?php $serveur = "127.0.0.1"; $login = "my_user"; $pass = "my_password"; $base = "my_db"; //$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db"); $link = mysqli_connect($serveur, $login, $pass, $base); if (!$link) { echo "Error: Unable to connect to MySQL." . PHP_EOL; echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; exit; } echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL; echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL; $resultat = $link->query ("SELECT id, titre, image_s FROM ARTICLES WHERE statut > 0 ORDER BY date DESC, id DESC LIMIT 0, 1"); $ligne = $resultat->fetch_assoc(); echo 'ID :'.$ligne["id"].'Titre : '.$ligne["titre"]; mysqli_close($link); ?>
Photos
Logiciels de traitement de l'images
Logiciels éditeur :
- Gimp
- Darktable
- G'MIC
Logiciel lecteur :
- ristretto
Autres logiciels :
Perl one-liners
Supprimer tous les caractères non-imprimables (sauf les \n)
perl -lpe 's/[[:^print:]]+//g' fichier.txt
Enlever toutes les lignes en double (doublon)
perl -ne 'print unless $a{$_}++' fichier.txt
Afficher les lignes en double préfixés par leur numéro de ligne
perl -ne 'print "$. $_" if $a{$_}++' fichier.txt
