BOINC, systemd et priorité des processus sous Linux, la suite

Dans mon précédent billet j'avais pensé avoir réglé mon problème, le démon BOINC laissant toutes les ressources processeur libres en cas de besoin.

Pour cela j'avais configuré systemd pour allouer une priorité faible au cgroup contenant les processus de calculs BOINC:
sudo systemctl set-property boinc.service CPUWeight=1

Comme noté dans les commentaires, cet attribut n'est pas disponible dans les versions de systemd antérieures à 231, où il remplace l'attribut CPUShares.

L'équivalent pour ces versions est: systemctl set-property boinc.service CPUShares=2

Ce changement reflète une modification de l'interface cgroups du noyau, où l'attribut cpu.shares est remplacé par cpu.weight. Or cette modification n'a pas encore été intégrée dans la branche principale, ce qui conduit systemd à convertir la valeur de CPUWeight à son équivalent cpu.shares sur mon système.

Pourtant j'ai remarqué que la lecture de vidéos n'était pas fluide sur mon système. En renouvelant l'expérience précédemment décrite les résultats montraient que BOINC ne laissait pas libres toutes les ressources du processeur.

Après avoir lu quelque documentation comme la page de manuel de systemd sur la gestion des ressources et la documentation du noyau sur les cgroups, j'ai pu comprendre d'où venait le problème.

Les cgroups sont organisés …

plus ...

BOINC, systemd et priorité des processus sous Linux

Je me suis récemment remis à faire tourner BOINC sur ma machine. BOINC est un logiciel de calcul scentifique distributé. En utilisant BOINC je prête en quelque sorte la capacité de calcul de mon ordinateur à des projets de recherche scientifique.

Le principe de BOINC est de n'utiliser que les ressources libres de la machine. Il fait de la sorte en attribution une priorité minimale aux processus qui réalisent le calcul. Sous Linux c'est fait en attribuant la valeur nice maximale aux processus lancés par BOINC, qui est 19. Plus la valeur nice est élevée, moins le processus est prioritaire.

Cette valeur 19 correspond à une priorité idle, ce qui signifie qu'elle ne permet d'utiliser que le temps restant qui n'est réclamé par aucun processus plus prioritaire. Cela correspond en pratique à n'utiliser que les ressources laissées libres sur la machine.

Cette configuration a fonctionné pendant longtemps sous Linux. Or j'ai remarqué que sur mon système BOINC ne semblait pas laisser toutes les ressources libres, car certains de mes programmes étaient plus long à s’exécuter, et donc mon ordinateur avait l'air plus lent. J'ai donc voulu vérifier cela. Un moyen simple est d'essayer d'utiliser au maximum le processeur, et …

plus ...

Reconstruire le menu d'administration de Drupal

J'avais des soucis avec mes pages d'administration de Drupal, certaines m'affichaient l'erreur "Vous n'avez accès à aucune page d'administration." Cette erreur est survenue après la mise à jour de Drupal 6 vers la version 7.

J'ai pu corriger ce problème en reconstruisant les liens d'aministration en utilisant la requête SQL suivante sur la base de données de Drupal:

DELETE FROM menu_links WHERE module = 'system'

Ensuite il suffit de se rendre sur /admin/config/development/performance et de nettoyer le cache.

Pour finir je n'avais plus qu'à rajouter le bloc du menu dans la barre latérale pour obtenir un menu d'administration tout neuf.

plus ...

Fedora 21, Backlight et Samsung Ultra NP740U3E

Pour faire fonctionner le réglage du rétro-éclairage (backlight) du Samsung Series 7 Ultra NP740U3E sous Fedora 21, voici l'astuce.

Ajouter

video.use_native_backlight=0

à la ligne GRUB_CMDLINE_LINUX dans /etc/default/grub.

Régénerer le fichier de configuration Grub (dans le cas d'un démarrage EFI):

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Attention ! Ne pas utiliser Intel-backlight dans la configuration Xorg ! Cela ne fonctionne pas avec ce portable.

plus ...

Nokia N9 et CardDav

Je viens d'acquérir le Nokia N9, le dernier smartphone sorti par Nokia avant le pacte avec Microsoft. Il utilise le système Meego Harmattan.

Comme vous le savez déjà, j'utilise les protocoles CalDav et CardDav pour synchroniser mes contacts et mon agenda, le tout hébergé sur ezvan.fr. De base le système du N9 propose une synchronisation Caldav (pour le calendrier) mais par CardDav.

Voici donc comment j'ai mis en place une telle synchronisation, à l'aide de SyncEvolution.

Tout d'abord, j'ai récupéré un paquet .deb de SyncEvolution compilé avec le support de CardDav. Après l'avoir installé avec la commande dpkg, j'ai lancé les commandes suivantes pour configurer mon compte CardDav, remplacez <utilisateur> et <motdepasse> par le mot idoine.

# configure target config for CardDAVsyncevolution --configure \
             --template webdav \
             syncURL=https://cal.ezvan.fr/<utilisateur>/contacts/ \
             SSLVerifyServer=0 \
             username=<utilisateur> \
             password=<motdepasse> \
             target-config@carddav \
             addressbook

# configure sync config for CardDAV  
syncevolution --configure \\  
              --template SyncEvolution\_Client \\  
              syncURL=local://@carddav \\  
              username= \\  
              password= \\  
              carddav \\  
              addressbook

# initial slow sync for CardDAV  
syncevolution --sync slow carddav

# incremental sync for CardDAV  
syncevolution carddav

Et ça marche ! Il ne me reste plus qu'à trouver comment lancer la commande de synchronisation à intervalle de temps régulier.

plus ...