IT/IT

IT/iotop

Une petite commande bien pratique pour savoir quels process utilisent des I/O : iotop ! Avec l’option -o, il n’affiche que ceux utilisant effectivement des I/O. Et l’option -a permet d’avoir un cumul depuis le lancement de la commande, ce qui évite que les process disparaissent et réapparaissent super rapidement s’ils font des I/O par intermittence.

# iotop -a -o

Total DISK READ : 0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE:       7.75 K/s
TID    PRIO  USER    DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND          
1436   be/3  root        0.00 B   160.00 K        0.00 %     0.46 %   [jbd2/dm-9-8]
2903   be/4  root        0.00 B       8.00 K        0.00 %     0.00 %   nmbd -D
2219   be/4  root        0.00 B       4.00 K        0.00 %     0.00 %   rsyslogd ~ain Q:Reg]
4376   be/4  aline       0.00 B       8.00 K        0.00 %     0.00 %   psi-plus
8865   be/4  aline       0.00 B       4.00 K        0.00 %     0.00 %   iceweasel~ache2 I/O]
8884   be/4  aline       0.00 B   504.00 K        0.00 %     0.00 %   iceweasel~torage #1]
8890   be/4  aline       0.00 B   120.00 K        0.00 %     0.00 %   iceweasel~OM Worker]
1295   be/4  aline       0.00 B       8.00 K        0.00 %     0.00 %   iceweasel~ache2 I/O]
05 février 2020 Aucun commentaire

IT/Smem

Pour avoir une idée de la conso mémoire d’un programme, sous Linux, j’utilise smem. Sa particularité, outre de présenter les résultats sous forme bien sympa si on utilise les bons arguments, est de proposer plusieurs indicateurs : la consommation mémoire standard, RSS ou resident set size, mais aussi une mesure tenant compte des zones mémoires partagées par plusieurs applications, et donc moins surestimée : la proportional set size (PSS).

Une fois installé via yum ou apt, on peut le lancer directement sans argument, pour avoir la liste des process consommant de la mémoire pour l’utilisateur. Si on rajoute l’option -t, on a une ligne avec le total. L’option -k permet d’ajouter l’unité (Mb ou Gb). On peut aussi lui demander la conso mémoire d’un process en particulier, avec -P (on met un crochet sur la 1ere lettre pour éviter de voir apparaitre la commande smem dans la liste :

$ smem -t -k -P [i]ceweasel
PID User     Command                         Swap      USS      PSS      RSS 
24263 aline    /usr/lib/iceweasel/plugin-c        0   102.4M   106.2M   116.9M 
21283 aline    iceweasel -P -no-remote            0   435.1M   439.2M   455.0M 
28465 aline    iceweasel -P -no-remote            0   812.6M   815.3M   831.3M 
-------------------------------------------------------------------------------
  154 1                                           0     1.3G     1.3G     1.4G

J’aime bien cet affichage, car il est lisible et permet d’avoir d’un coup d’œil la somme de la mémoire consommée par tous les process liés à une application… et en unités compréhensibles, en plus ! Si on est fan de graphiques, smem permet aussi de représenter la consommation mémoire sous forme de pie chart, ou de barres. Par exemple, le consommation de tous les processus de l’utilisateur, par nom :

$ smem --pie=name

Donnera l’image suivante :

Un graphique en barre de la consommation mémoire sur les processus de Chrome donnera :

$ smem -P [c]hrome --bar=name

Et pour finir, un petit camenbert sur la consommation de Iceweasel :

$ smem -P [i]ceweasel --pie=name

Ce n’est pas super sexy, mais c’est tout de même très lisible, je trouve, et bien plus parlant qu’un tableau avec des unités en octets ! :p

30 janvier 2020 Aucun commentaire

IT/Install PHP 5.6 on CentOS 7

Par défaut, CentOS est fourni avec une version PHP 5.4, un peu trop vieille pour la plupart des applications type LAMP (la 5.4 date tout de même de 2013).

Après avoir tenté et raté l'installation via le repo webtatic, j'ai découvert que CentOS déconseille officiellement ce repo, et conseille plutôt les repos de Rémi Collet. J'ai donc utilisé son tutoriel, sur son site http://rpms.remirepo.net/wizard/.

Command to install the EPEL repository configuration package:
 # yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Command to install the Remi repository configuration package:
# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Command to install the yum-utils package (for the yum-config-manager command):

# yum install yum-utils

You want a single version which means replacing base packages from the distribution
Packages have the same name than the base repository, ie php-*
PHP version 5.6 packages are available for CentOS 7 in remi-php56 repository

Command to enable the repository:

# yum-config-manager --enable remi-php56

Command to upgrade (the repository only provides PHP):
# yum update

Command to install additional packages:
# yum install php-xxx

Command to check the installed version and available extensions:
 # php --version
 # php --modules
29 janvier 2020 Aucun commentaire

IT/Ajouter un service à chkconfig

Si en tentant de configurer le démarrage automatique d'un de nos scripts d'init avec chkconfig, on se prend le message suivant :

# chkconfig murmur on
Le service murmur ne prend pas en charge chkconfig

Pas de panique ! Cela veut juste dire que dans le script d'init, on a oublié de mettre une ligne de commentaire au début du fichier, contenant :

# chkconfig:   

Par exemple, pour murmur, si on ajoute la ligne :

# chkconfig: 2345 55 25

Et qu'on relance le chkconfig on, plus d'erreur. Et on peut vérifier que le service sera bien lancé au démarrage des différents runlevel avec la commande chkconfig --list :

# chkconfig --list
murmur          0:arrêt 1:arrêt 2:marche    3:marche    4:marche    5:marche    6:arrêt
netconsole      0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt
network 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt
29 janvier 2020 Aucun commentaire

IT/Logs textuels avec systemd

Ayant récemment tenté la migration de Centos 6.5 vers 7.2 via le script d'upgrade redhat-upgrade-tool (celui qu'il est déconseillé d'utiliser en production sur leur wiki, oui, oui), je me suis retrouvée confrontée au problème des logs binaires de systemd. Ce qui n'est pas super pratique quand on doit booter son systeme en mode rescue et qu'on ne dispose pas de tous les outils qu'on voudrait... (Car oui, l'upgrade s'est globalement bien passée, mais il y a eu plusieurs démarrage en mode rescue tout de même).

Mais en farfouillant sur le net, j'ai découvert l'existence d'un package magnifigique, syslog-ng ! Que fait-il ? Tout simplement, il permet de revenir à des logs sous forme de texte là ou systemd les transforme en binaire. Fini les journalctl, re bonjour les grep et tail !

En plus, l'installation est hyper simple. On installe le paquet :

# yum install syslog-ng

Puis un petit edit de /etc/systemd/journald.conf pour y désactiver le storage de logs sous forme binaire :

[Journal]
Storage=none

On démarre et active le service, et enjoy !

# systemctl enable syslog-ng.service
# systemctl start syslog-ng.service

Source

29 janvier 2020 Aucun commentaire