Envie de tester boinc à fond ? Avec les paramètres par défaut apparemment il y a une sorte de throttling à 60% ! Donc les process tournent à fond un moment, puis sont suspendus, etc. en permanence. Ça se remarque bien dans boinctui par exemple.
En cherchant, sur la page ci-liée on tombe sur une option "Use at most N % CPU time", qui, dans la liste d'options ici (http://boinc.berkeley.edu/wiki/Global_prefs_override.xml) pourrait correspondre à cpu_usage_limit.
On tente donc de mettre
<cpu_usage_limit>100.0</cpu_usage_limit>
dans /etc/boinc-client/global_prefs_override.xml puis de voir si ça change quelque chose : boinccmd --read_global_prefs_override
Et pouf, plus jamais de pause saugrenue.
Je me demande un peu pourquoi ils font ça par défaut, si on veut calculer, on y va… le seul intérêt que je vois serait pour pas qu'un laptop chauffe trop.
Des sources.list plus clairs, plus faciles à lire/écrire programmaticalement et permettant de factoriser mieux, pourquoi pas. Surtout quand on commence à avoir les backports, les symboles de débugage, différentes suites, …
Attention j'ai lié un mail préliminaire, dans le thread il y a des considérations intéressantes et des changements au format, c'est juste pour dire que c'est en cours.
Ça a l'air pas mal : des paquets Debian de symboles de débugage, automatiquement construits sans intervention du mainteneur et disponibles en-dehors du dépôt officiel (c'est quand même des paquets rarement utilisés). Au moins on sera sûr qu'il y a le paquet correspondant (actuellement c'est à la discrétion du mainteneur) et ce en-dehors du chemin (mirrorer ça partout et les avoir tous toujours dans les listes de paquets c'est un peu overkill).
Pour désactiver un périphérique bloc (clef / disque USB, …), au lieu d'eject on peut utiliser la méthode moderne (avec du polkit dedans !) :
udisksctl power-off -b /dev/sda
Ceci demandera le mot de passe même en SSH à distance, avec un version texte de l'écran "polkit" qu'on connait.
Ci-lié un post où j'explique comment j'ai mis en place des certificats Let's Encrypt sur mon serveur.
En passant j'ajouterai que dans le cas d'un site mod_proxy d'apache, on peut sortir le dossier de vérification du proxy comme cela :
ProxyPass /.well-known/acme-challenge/ !
J'ai dû désactiver IPv6 sur les machines du labo que je gère car un RA involontaire avait filtré et configuré du SLAAC de partout… et là un chercheur se plaignait que ssh -X marchait plus. Side-effect marrant :P
rpcdebug : pratique pour debug du NFS (j'ai testé côté serveur seulement).
rpcdebug -m nfsd -s /flag/
où flag est dans "all auth export fh fileop lockd proc repcache sock svc xdr"
Après les infos sont dans les logs, ou tout simplement avec dmesg.
Petit outil livré avec apache pour benchmark un serveur web, avec stats assez lisibles à la fin.
Perso je l'ai attaqué comme ça (pour avoir une page avec accès BDD) :
ab -k -c 100 -n 1000 https://strasweb.fr/actualite/
Et puis à la fin pour nettoyer un peu les kilomètres de log, à coup de 1000 requêtes ça va vite :
sed -i -E '/(ApacheBench|server-status)/d' /var/log/apache2/access.log
EDIT: /!\ attention cela change le fichier (numéro d'inode en tous cas) et après apache a plus l'air de loguer… il faut le relancer a priori…
Création d'un réseau guest sur mon Netgear WNR3500L v2 flashé avec TomatoUSB, tout fonctionne (coupe deux fois les connexions, au VLAN car reboot comme prévu mais aussi au moment de créer le br1).
Je n'ai pas eu à jouer avec iptables comme demandé : ça fonctionne comme je veux de base (sortir vers l'extérieur autorisé, passer entre les réseaux internes bloqué). Ça se vérifie, les compteurs iptables augmentent bien un par seconde avec des ping de test (guest => principal, principal => guest, guest => dehors) :
355 29820 DROP all -- br1 br0 anywhere anywhere
=> le 355 augmente
46 3864 DROP all -- br0 br1 anywhere anywhere
=> le 46 augmente
40 3360 ACCEPT all -- br1 any anywhere anywhere
=> le 40 augmente
Voila voila, je suis prêt pour quand des gens viendront avec un win10 et que j'oserai pas dire que non mais je donne pas mon mot de passe à 'crosoft :P
Là j'en donnerai un autre…
Les expressions (if etc.) dans apache 2.4 ont changé (depuis 2.3.xx apparemment). Voici la nouvelle doc :)
Setup de php-fpm avec apache 2.4 : faisable mais pas immédiat.
En fait selon les sources on n'a pas les mêmes infos, en particulier concernant le lien entre apache et fpm : socket unix ou TCP ?
Ici (http://www.vincentliefooghe.net/content/configuration-apache-24-php-fpm) on lit que les socket unix sont pas dispo, dans la doc shaarliée que si. D'autres (https://bz.apache.org/bugzilla/show_bug.cgi?id=54101 en bas) disent qu'il faut donner le chemin du document_root à chaque vhost (donc chiant).
Au final en compilant avec encore une autre source (http://z-issue.com/wp/apache-2-4-the-event-mpm-php-via-mod_proxy_fcgi-and-php-fpm-with-vhosts/) on obtient quelque chose de satisfaisant :
La seule chose à faire donc, à part activer les modules apache, serait de créer une fichier /etc/apache2/conf-available/php5-fpm.conf en mettant :
<FilesMatch ".php$">
SetHandler "proxy:unix:///var/run/php5-fpm.sock|fcgi://www/"
</FilesMatch>
<Proxy fcgi://www/>
</Proxy>
et de l'activer : a2enconf php5-fpm
Ici, "www" est le nom du pool fpm, défini par défaut à l'installation du paquet.
En tous cas chez moi ça marche comme ça, avec le MPM event.
Apache 2.4 est supposé permettre d'utiliser le MPM event en prod' car stable. Ici une explication de ce que ce MPM a de mieux que worker.
En gros il y a un thread spécial qui réagit aux événements sur les socket en attente (connexions en mode keepalive etc. avec epoll ou kqueue), au lieu de laisser ça à chaque thread. Les thread ayant effectué les traitements sont donc libres de travailler à autre chose pendant les temps morts.
A priori ça se remarque avec un apache2ctl status, même avec des sessions en keepalive on ne voit plus de thread marqué 'K' : c'est le thread dédié qui attend, les autres sont dispos.
Tableau de comparaison de libc Linux écrit par l'auteur d'une d'elles, musl (donc pas forcément impartial). J'ai trouvé intéressant quand même, rien que pour la liste des points de comparaison choisis et les notes sur les tests effectués.
… or donc on apprend lors de sa première upgrade d'un postgres (install des paquets, wheezy ⇒ jessie) que c'est pas si simple, qu'il peut y avoir plusieurs versions qui tournent en même temps etc.
Entre la page liée ici, le readme du paquet (zless /usr/share/doc/postgresql-common/README.Debian.gz) et le message à l'upgrade, pour moi ça a donné ça :
apt-get install postgresql-9.4
pg_dropcluster 9.4 main --stop
service postgresql stop
pg_upgradecluster 9.1 main
(vérif que tout est ok)
aptitude purge postgresql-9.1 postgresql-client-9.1
On peut faire des "pg_lsclusters" à tout va pour savoir qu'est-ce qui est dispo et qui tourne, et sur quel port.
apt-cacher-ng (cache APT, pratique quand on est en ADSL et qu'on a plusieurs PC et/ou conteneurs/VM ou qu'on veut être gentil avec les dépôts) : il y a même un petit script interactif pour virer des release qu'on veut plus avoir dans le cache :)
Dans NGINX, les blocs "location" c'est un peu compliqué… pour savoir dans quel ordre est pris quoi, il faut s'accrocher un peu.
"To find location matching a given request, nginx first checks locations defined using the prefix strings (prefix locations). Among them, the location with the longest matching prefix is selected and remembered. Then regular expressions are checked, in the order of their appearance in the configuration file. The search of regular expressions terminates on the first match, and the corresponding configuration is used. If no match with a regular expression is found then the configuration of the prefix location remembered earlier is used."
Ce que je traduis par « le plus grand match sans regex (prefix location) est retenu puis on cherche dans les regex, on prend la première ; si pas de regex on prend le bloc retenu avant ».
J'ai pas tout essayé mais ça semble coïncider avec la réalité :P
En passant à nginx, ne pas oublier de réincorporer les blocages par htaccess à la config… ici un exemple pour dokuwiki.
Pour galette j'ai mis ça :
location ~ /(data|config|lib)/ {
deny all;
}
Besoin d'un dump partiel d'une base (pour réinjecter certaines modifications ailleurs par exemple) ? On peut donner une table et un where à mysqldump. On voudra aussi probablement -n et -t qui évitent d'avoir les CREATE de database et de table… sinon on perd tout le reste :)
Exemple pour sortir l'user 101 de galette :
mysqldump -n -t -u root -p galette galette_adherents --where="id_adh=101" > galette-adh.sql
J'ai enfin mis à jour ce shaarli pour utiliser le "community fork", devenu développement principal. Quand on utilise déjà une install via git, il suffit de :
git remote set-url origin https://github.com/shaarli/Shaarli.git
et bien sûr
git pull
J'ai dû supprimer les .htaccess des dossiers cache et data, créés par le setup je suppose, et maintenant intégrés au dépôt.
Petit script python de déduplication de messages par IMAP. Marque juste les messages comme "deleted". Il y a relativement pas mal d'options, et un no-op (-n) assez explicite, avec lequel on peut tout contrôler avant de lancer définitivement (option -v pour tout avoir).
Perso j'ai utilisé :
./imapdedup.py -s 192.168.1.13 -u john -x -c -m ARN INBOX
Attention à l'ordre, il lit les dossier dans l'ordre, donc d'abord ARN puis INBOX. Donc les messages dupliqués/supprimés seront ceux d'INBOX.
Exemples de sorties :
Message INBOX_1905 is a duplicate of ARN_2642 and would be marked as deleted
If you had not selected the 'dry-run' option,
85 messages would now be marked as 'deleted'.
There are now 4679 messages marked as deleted and 1633 others in INBOX.