Optimisation de configuration MariaDB / MySQL

Voici une configuration qui fonctionne sur un site à fort trafic.

Note

À adapter à la taille de la base et au trafic utilisateurs.

  • On désactive le cache de requêtes.

    L'invalidation de ce cache est coûteuse et vérrouille tout le cache pendant sa mise à jours.

set global query_cache_type=0 …
plus ...


Redirection de 2 millions d'url avec nginx et redis

On a essayé de rediriger 2 millions d'url avec la fonction remaps de nginx.
Les redirections occupaient beaucoup de temps CPU et chargaient la mémoire du serveur (1Go).
Les temps de réponses étaient très moyens. Une autre solution est possible sans ces inconvénients.


On récupère la lib lua sur OpenResty …

plus ...


Mysqldumpslow

Afin d'analyser rapidement un problème de reqûetes sur une base de données en temps et en nombre.

Sur une instance Mysql ou MariaDB :

  • activation des slowquery
  • mysqldumpslow du fichiers de log
plus ...


httpstat

Simple à installer :

pip3 install httpstat

Puis : httpstat www.eckmul.net et maintenant on sait ce qui cloche sur les temps de réponses d'un site web.

HTTP/1.1 200 OK
Date: Thu, 23 Mar 2017 14:26:21 GMT
Server: Apache
Last-Modified: Thu, 23 Mar 2017 14:24:59 …
plus ...


Apache2 et http2

On peut mettre dans :

  • /etc/apache2/conf.d/http2.conf
H2ModernTLSOnly on
Protocols h2 h2c http/1.1
  • /etc/apache2/sites-enable/default-ssl.conf
<VirtualHost *:443>
        ServerName www.example.net
        ServerAdmin webmaster@localhost

        H2EarlyHints on

        DocumentRoot /var/www/
        Header always set Strict-Transport-Security "max-age=15552001; includeSubdomains;"

        LogLevel warn
        ErrorLog ${APACHE_LOG_DIR}/error_.log …
plus ...

linkchecker

Pour vérifier les url d'un site et les liens morts. linkchecker est présent dans les dépôts de Debian.

Note

Il peut être agressif. Attention à la charge.

Dans les logs on a

X.X.X.X - - [10/Dec/2018:10:10:10 +0100] "GET /fr/tout-pour-les-cadeaux-.html HTTP/1.1 …
plus ...

Générer un certificat TLS wildcard avec Certbot

  • On ajoute le dépôt pour certbot :
add-apt-repository -y ppa:certbot/certbot
apt update
apt install certbot
  • On créé un token sur l'api OVH : https://api.ovh.com/createToken/

    • GET /domain/zone/*
    • PUT /domain/zone/*
    • POST /domain/zone/*
    • DELETE /domain/zone/*
  • On renseigne les variables dans un fichier (ex: ovh.ini …

plus ...

Copier une table de partition

  • Avec MBR
sfdisk -d /dev/sda | sfdisk /dev/sdb
  • Avec GPT
sgdisk -R /dev/sdb /dev/sda

En ayant marqué le label avec parted en GPT pour pour le disque /dev/sdb

ps : apt install gdisk

plus ...

Mutt

Remplacer son client de messagerie par Mutt.

La gestion des mails redevient simple et efficace ! :-)

plus ...

Réduction d'un tablespace MySQL

Au cour de la vie d'une base de données, les tablespaces évoluent en taille. Si on a un seul tablespace pour l'ensemble des bases et des tables celui-ci ne se réduit jamais après des suppressions.

Pour remettre Mysql au propre, on peut faire l'opération suivante et ainsi gagner de l'espace …

plus ...


Benchmark avec curl

curl -s -w @stats.curl -o /dev/null https://www.google.fr 

Avec le fichier stats.curl contenant :

url_effective     :  %{url_effective}\n
content_type      :  %{content_type}\n
filename_effective:  %{filename_effective}\n
ftp_entry_path    :  %{ftp_entry_path}\n
http_code     :  %{http_code}\n
http_connect      :  %{http_connect}\n
http_version      :  %{http_version}\n
local_ip      :  %{local_ip}\n
local_port    :  %{local_port}\n
remote_ip     :  %{remote_ip}\n
remote_port   :  %{remote_port …
plus ...

Debian Stretch - desktop from heaven

Rien de telle qu'une mise à jour majeure de Debian pour te donner la pêche !

  • Apache2 httpd avec HTTP/2
  • Nginx avec HTTP/2
  • PHP 7.0 et du fpm
  • Gnome 3.22
  • MariaDB à la place de MySQL
  • PostgreSQL 9.6
  • burp 2.0.54

... etc, que du bon …

plus ...

upnpc

En ligne de commande, il existe miniupnpc. Pour ouvrir rediriger le port 22 extérieur de la box vers le port 22 de l’ordinateur sur lequel est lancé la commande :

upnpc -r 22 TCP

Pour lister les redirections de ports:

upnpc -l

Pour supprimer la redirection du port 22:

upnpc …
plus ...

Charset tout pourri

convmv -f cp1252 -t utf-8 --notest *

Téléversement sur un compte FTP avec un mauvais charset - Serveur en utf-8.

plus ...

Ansible or Not Ansible

Je ne sais toujours pas quel notes utiliser pour automatiser les installations et mises à jours des OS et applications.

Aujourd'hui une simple commande inline en ssh suffit pour le faire. Ansible l'organise avec des playbooks mais est-il vraiment utile ?

A étudier ... encore une fois !

plus ...