tu cites cron. Très bien, mais sur mes machines je n'utilise pas cron, je n'en ai pas l'utilité.
Il me semble que, sous Debian, cron (et son copain anacron) sont installés par défaut, et lancés lorsqu'on démarre dans le runlevel par défaut. Dans le répertoire /etc, pourrais-tu vérifier que les fichiers crontab et anacrontab ne sont pas vides ? De même, pourrais-tu vérifier que les répertoires cron.d, cron.hourly, cron.daily, cron.weekly et cron.monthly ne sont pas vides ?
Les logs de cron et d' anacron devraient être lisibles avec :
bibi@machine:$ grep -i cron /var/log/syslog*
Si je ne me trompe pas sur tous ces points, ça signifie que le fonctionnement d'une Debian nécessite le lancement de tâches selon des contraintes temporelles (que cette Debian soit utilisée comme serveur toujours allumé, ou comme machine de bureau). Ce lancement de tâches selon des contraintes temporelles, nécessaire au bon fonctionnement du système d'exploitation, peut être fait avec cron, ou avec systemd.
Nous parlons d'une surconsommation de RAM (de systemd par rapport à sysvinit) de 30 ou 40 Mo.
Sur la citation que tu as faite, je parlais d'une tendance générale dans l'industrie du logiciel, et pour être précis d'une tendance qui tends à m'exaspérer fortement, pas de systemd en particulier.
J'ai compris ton propos, et je disais juste que la surconsommation de RAM causée par systemd me semble raisonnable, vu le matériel moderne. Si un jour systemd consomme 400 Mo de RAM, je changerais d'opinion. 😄
quand j'utilisais GCC pour compiler autorealm, si je voulais utiliser mon CPU à fond (avec 4 thread donc) ma machine devenais complètement hors de contrôle pendant près de 15 minutes
Ce problème ne peut-il pas être réglé avec nice et son copain ionice ? Les deux sont cumulables, ça donne :
De cette façon, les autres processus ne seront pas gênés pour accéder aux ressources, et ta machine ne sera pas hors de contrôle.
Il est possible d'économiser de la RAM grâce à systemd, en utilisant l'activation des services par socket ! Le principe est le suivant : un service est lancé uniquement lorsqu'on fait appel à lui, pas avant. L'opération est transparente pour l'utilisateur.
Une autre illustration : les différents terminaux virtuels tty2 à tty6 sont lancés uniquement lorsque l'utilisateur appuie sur les touches Ctrl+Alt+F2 (ou Ctrl+Alt+F3, ou Ctrl+Alt+F4 …). Je l'ai vérifié sur ma machine, on peut voir les terminaux virtuels déjà lancés avec :
bibi@machine:$ ps -C agetty
Tant que je n'appuie pas sur Ctrl+Alt+F5, le tty5 n'est pas lancé. Pareil pour les autres.
Avec le traditionnel sysvinit, plusieurs services sont lancés au démarrage. Ces services ne seront peut-être pas utilisés aujourd'hui, mais ils sont lancés, et consomment des ressources, notamment de la RAM. Avec systemd et l'activation des services par socket, les services sont lancés uniquement s'ils sont appelés (par l'utilisateur, par un autre service, par un événement matériel …).
Attention : je doute que tous les services puissent être lancés en utilisant cette méthode, il existe certainement des cas où ce n'est pas possible ou souhaitable. Mais, dans les cas où c'est possible, cela permet d'économiser de la RAM. ;-)
[^] # Re: Re: Quelles distributions utilisent systemd par défaut ?
Posté par Sylvain Blandel . En réponse au journal SystemD et Arch autosuggestion. Évalué à 3.
Arf ! 😄
Il me semble que, sous Debian, cron (et son copain anacron) sont installés par défaut, et lancés lorsqu'on démarre dans le runlevel par défaut. Dans le répertoire
/etc, pourrais-tu vérifier que les fichierscrontabetanacrontabne sont pas vides ? De même, pourrais-tu vérifier que les répertoirescron.d,cron.hourly,cron.daily,cron.weeklyetcron.monthlyne sont pas vides ?Les logs de cron et d' anacron devraient être lisibles avec :
Si je ne me trompe pas sur tous ces points, ça signifie que le fonctionnement d'une Debian nécessite le lancement de tâches selon des contraintes temporelles (que cette Debian soit utilisée comme serveur toujours allumé, ou comme machine de bureau). Ce lancement de tâches selon des contraintes temporelles, nécessaire au bon fonctionnement du système d'exploitation, peut être fait avec cron, ou avec systemd.
J'ai compris ton propos, et je disais juste que la surconsommation de RAM causée par systemd me semble raisonnable, vu le matériel moderne. Si un jour systemd consomme 400 Mo de RAM, je changerais d'opinion. 😄
Ce problème ne peut-il pas être réglé avec nice et son copain ionice ? Les deux sont cumulables, ça donne :
De cette façon, les autres processus ne seront pas gênés pour accéder aux ressources, et ta machine ne sera pas hors de contrôle.
Il est possible d'économiser de la RAM grâce à systemd, en utilisant l'activation des services par socket ! Le principe est le suivant : un service est lancé uniquement lorsqu'on fait appel à lui, pas avant. L'opération est transparente pour l'utilisateur.
Une illustration : le service d'impression cups n'est lancé que lorsqu'une tâche d'impression est demandée (c'est un résumé, le lien donne plus d'explications).
Une autre illustration : les différents terminaux virtuels tty2 à tty6 sont lancés uniquement lorsque l'utilisateur appuie sur les touches Ctrl+Alt+F2 (ou Ctrl+Alt+F3, ou Ctrl+Alt+F4 …). Je l'ai vérifié sur ma machine, on peut voir les terminaux virtuels déjà lancés avec :
Tant que je n'appuie pas sur Ctrl+Alt+F5, le tty5 n'est pas lancé. Pareil pour les autres.
Avec le traditionnel sysvinit, plusieurs services sont lancés au démarrage. Ces services ne seront peut-être pas utilisés aujourd'hui, mais ils sont lancés, et consomment des ressources, notamment de la RAM. Avec systemd et l'activation des services par socket, les services sont lancés uniquement s'ils sont appelés (par l'utilisateur, par un autre service, par un événement matériel …).
Attention : je doute que tous les services puissent être lancés en utilisant cette méthode, il existe certainement des cas où ce n'est pas possible ou souhaitable. Mais, dans les cas où c'est possible, cela permet d'économiser de la RAM. ;-)