Rendre Linux écologique (green-it)

book
date_range
comment0 commentaire
remove_red_eye2114 vues

 Linux eco green it 

J'ai toujours tout fait pour optimiser mes différents PC et les faire consommer le moins possible. Du point de vu des performances, il est claire que des dizaines de services qui tournent en arrière plan nous prennent des ressources et rendent le rendu moins fluide, mais également d'un point de vu écologique on a tout à gagner à faire consommer moins à son ordinateur.

Les gains à appliquer ces conseils écologiques

  • plus de performance ;
  • moins de consommation d'énergie ;
  • l'ordinateur chauffe moins ;
  • meilleure expérience utilisateur ;
  • moins de soufflage de ventilateur intempestivement ;
  • on sauve sa planète ?

Alors pour les moins écolos d'entre vous, ceux qui pensent qu'on peut laisser l'eau couler en se brossant les dents, cet article est aussi pour vous. Il donne beaucoup d'astuces pour améliorer Linux, on ne parle pas seulement de GreenIT. Même si j'aimerais vous sensibiliser au fait que tout prend toujours plus de resources et qu'on doit avoir au moins 1Go de RAM pour faire tourner deux onglets Google Chrome là où il y a 10 ans Mozilla Firefox consommait rarement plus de 100mo...

Conseil n°1 : Utiliser un environnement graphique / bureau light

C'est ce qui consomme le plus sur votre ordinateur, des dizaines de paquets et autant de resources CPU prises pour lancer l'explorateur de fichiers... Changer d'environnement de bureau pourrait diviser par 5 votre consommation de mémoire vive / processeur

Environnement de bureau lights

Ils sont très basique et sans fioriture. Visuellement les moins fini.

Environnement de bureau simple et moins gourmant

Un éguilibre entre fonctionnalités et légèreté.

Environnement de bureau riche en fonctionnalités

Ils sont lourds, prennent de la place et son plutôt gourmands.

Conseil n°2 : Arrêter d'installer les paquets dont vous n'avez pas besoin

Lorsque vous installez un paquet, Linux vous propose d'installer également :

  • les paquets recommandés : permettent une utilisation optimale de toutes les fonctionnalités sous-jacentes ;
  • les paquets suggérés : permettant d'améliorer l'expérience utilisateur en enrichissant le logiciel installé et en installant des fonctionnalités supplémentaires.

Elles ne sont ni obligatoires, ni recommandés. Ils peuvent poser des problèmes de cohérence de dépendances, c'est le prix pour ne pas installer les meta-paquets (un paquet englobant plein de sous-paquets).

Editez le fichier (ou créez-le au besoin) /etc/apt/apt.conf avec les lignes suivantes.

APT::Install-Recommends "false";
APT::Install-Suggests "false";
APT::Get::Install-Recommends "false";
APT::Get::Install-Suggests "false";

Rafraichissez les sources.

apt-get update

Conseils n° 3 : Désactiver le bluetooth

Pour désactiver le bluetooth au démarrage, on peut tuer le démon de cette manière, en root.

nano /etc/rc.local

Insérez-y (avant le exit 0;)

rfkill block bluetooth

Si vous n'utilisez pas ou très peu le bluetooth.

systemctl disable bluetooth.service

Et réactivez-le au besoin (en remplassant disable par enable). Sinon on le lance simplement :

service bluetooth start

Conseil n° 4 : Services au démarrage

Pour cette partie j'y ai consacré un article entier ici : Désactiver des services au démarrage de Linux 

Conseil n°5 : Supprimer les paquets inutilisés

La commande suivante permet de lister tous les paquets installés sur votre disque.

dpkg -l

Supprimez les paquets dont vous ne vous servez pas. Vous pouvez aussi utiliser Synaptic ou le centre d'applications Gnome. C'est plus agréable pour supprimer les paquets et leur dépendances (ça ressemble beaucoup au panneau de configuration sous Windows).

Deborphan pour supprimer les paquets orphelins

Deborpahn permet de repérer les paquets peu utilisés ou qui ne servent plus.

aptitude install deborphan

En root, on lancera simplement la commande suivante.

deborphan

Et pour pousser la recherche un peu plus loin.

deborphan --guess-all

fix-aptitude-dependancies pour gérer les corrections de dépendances

Permet de détecter et de corriger le status des dépendances : et du coup leur necessité sur le système.

Disponible sur Github 

fix-aptitude-dependancies

 fix-aptitude-dependencies 
Recherche des actions prévues et des dépendances cassées...

État    Depuis            Vers              Paquet
------------------------------------------------------------------------------
id      0.8.3-6ubuntu2    0.8.3-6ubuntu2    libgpod-common
id      1.40-0ubuntu1     1.40-0ubuntu1     libsgutils2-2

ATTENTION : fix-aptitude-dependencies ne peut pas continuer. Veuillez appliquer ou annuler les actions prévues, et résoudre les dépendances cassées avant de relancer fix-aptitude-dependencies.
    Pour annuler les actions prévues, utilisez « aptitude keep '!~v' ».

Conseil n°6 : Utiliser TLP

TLP permet de gérer automatiquement un bon nombre de paramètres d'économie d'énergie en arrière plan, la vitesse CPU, la vitesse d'écriture sur le disque, le statut des connections, l'alimentation des ports USB...

aptitude install tlp

Voici mon fichier de configuration : /etc/default/tlp 

Je l'ai adapté à mes besoins pour le rendre assez strict, mais si vous voulez jeter un oeil.


# ------------------------------------------------------------------------------
# tlp - Parameters for power save
# See full explanation: http://linrunner.de/en/tlp/docs/tlp-configuration.html

# Hint: some features are disabled by default, remove the leading # to enable
# them.

# Set to 0 to disable, 1 to enable TLP.
TLP_ENABLE=1

# Operation mode when no power supply can be detected: AC, BAT
# Concerns some desktop and embedded hardware only.
TLP_DEFAULT_MODE=AC

# Seconds laptop mode has to wait after the disk goes idle before doing a sync.
# Non-zero value enables, zero disables laptop mode.
DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=2

# Dirty page values (timeouts in secs).
MAX_LOST_WORK_SECS_ON_AC=15
MAX_LOST_WORK_SECS_ON_BAT=60

# Hint: CPU parameters below are disabled by default, remove the leading #
# to enable them, otherwise kernel default values are used.

# Select a CPU frequency scaling governor:
#   ondemand, powersave, performance, conservative
# Intel Core i processor with intel_pstate driver:
#   powersave, performance
# Important:
#   You *must* disable your distribution's governor settings or conflicts will
#   occur. ondemand is sufficient for *almost all* workloads, you should know
#   what you're doing!
CPU_SCALING_GOVERNOR_ON_AC=ondemand
CPU_SCALING_GOVERNOR_ON_BAT=powersave

# Set the min/max frequency available for the scaling governor.
# Possible values strongly depend on your CPU. For available frequencies see
# tlp-stat output, Section "+++ Processor".
#CPU_SCALING_MIN_FREQ_ON_AC=0
#CPU_SCALING_MAX_FREQ_ON_AC=0
#CPU_SCALING_MIN_FREQ_ON_BAT=0
#CPU_SCALING_MAX_FREQ_ON_BAT=0

# Set Intel P-state performance: 0..100 (%)
# Limit the max/min P-state to control the power dissipation of the CPU.
# Values are stated as a percentage of the available performance.
# Requires an Intel Core i processor with intel_pstate driver.
#CPU_MIN_PERF_ON_AC=0
#CPU_MAX_PERF_ON_AC=100
#CPU_MIN_PERF_ON_BAT=0
#CPU_MAX_PERF_ON_BAT=30

# Set the CPU "turbo boost" feature: 0=disable, 1=allow
# Requires an Intel Core i processor.
# Important:
# - This may conflict with your distribution's governor settings
# - A value of 1 does *not* activate boosting, it just allows it
CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=0

# Minimize number of used CPU cores/hyper-threads under light load conditions
SCHED_POWERSAVE_ON_AC=0
SCHED_POWERSAVE_ON_BAT=1

# ADDED / Minimize number of used CPU cores/hyper-threads under light load conditions (1 = enabled, 0 = disabled). Depends on processor model.

ENERGY_PERF_POLICY_ON_AC=performance
ENERGY_PERF_POLICY_ON_BAT=powersave

# Kernel NMI Watchdog:
#   0=disable (default, saves power), 1=enable (for kernel debugging only)
NMI_WATCHDOG=0

# Change CPU voltages aka "undervolting" - Kernel with PHC patch required
# Frequency voltage pairs are written to:
#   /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
# CAUTION: only use this, if you thoroughly understand what you are doing!
#PHC_CONTROLS="F:V F:V F:V F:V"

# Set CPU performance versus energy savings policy:
#   performance, normal, powersave
# Requires kernel module msr and x86_energy_perf_policy from linux-tools
ENERGY_PERF_POLICY_ON_AC=performance
ENERGY_PERF_POLICY_ON_BAT=powersave

# Hard disk devices; separate multiple devices with spaces (default: sda).
# Devices can be specified by disk ID also (lookup with: tlp diskid).
DISK_DEVICES="sda sdb"

# Hard disk advanced power management level: 1..254, 255 (max saving, min, off)
# Levels 1..127 may spin down the disk; 255 allowable on most drives.
# Separate values for multiple devices with spaces.
DISK_APM_LEVEL_ON_AC="254 254"
DISK_APM_LEVEL_ON_BAT="128 128"

# Hard disk spin down timeout:
#   0:        spin down disabled
#   1..240:   timeouts from 5s to 20min (in units of 5s)
#   241..251: timeouts from 30min to 5.5 hours (in units of 30min)
# See 'man hdparm' for details.
#DISK_SPINDOWN_TIMEOUT_ON_AC="0 0"
#DISK_SPINDOWN_TIMEOUT_ON_BAT="0 0"

# Select IO scheduler for the disk devices: noop, deadline, cfq (Default: cfq);
# Separate values for multiple devices with spaces.
DISK_IOSCHED="cfq cfq"

# SATA aggressive link power management (ALPM):
#   min_power, medium_power, max_performance
SATA_LINKPWR_ON_AC=max_performance
SATA_LINKPWR_ON_BAT=min_power

# PCI Express Active State Power Management (PCIe ASPM):
#   default, performance, powersave
PCIE_ASPM_ON_AC=performance
PCIE_ASPM_ON_BAT=powersave

# Radeon graphics clock speed (profile method): low, mid, high, auto, default;
# auto = mid on BAT, high on AC; default = use hardware defaults.
# (Kernel >= 2.6.35 only, open-source radeon driver explicitly)
RADEON_POWER_PROFILE_ON_AC=high
RADEON_POWER_PROFILE_ON_BAT=low

# Radeon dynamic power management method (DPM): battery, performance
# (Kernel >= 3.11 only, requires boot option radeon.dpm=1)
RADEON_DPM_STATE_ON_AC=performance
RADEON_DPM_STATE_ON_BAT=battery

# Radeon DPM performance level: auto, low, high; auto is recommended.
RADEON_DPM_PERF_LEVEL_ON_AC=auto
RADEON_DPM_PERF_LEVEL_ON_BAT=auto

# WiFi power saving mode: 1=disable, 5=enable; not supported by all adapters.
WIFI_PWR_ON_AC=1
WIFI_PWR_ON_BAT=5

# Disable wake on LAN: Y/N
WOL_DISABLE=Y

# Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
# A value of 0 disables, >=1 enables power save.
SOUND_POWER_SAVE_ON_AC=0
SOUND_POWER_SAVE_ON_BAT=1

# Disable controller too (HDA only): Y/N
SOUND_POWER_SAVE_CONTROLLER=Y

# Set to 1 to power off optical drive in UltraBay/MediaBay when running on
# battery. A value of 0 disables this feature (Default).
# Drive can be powered on again by releasing (and reinserting) the eject lever
# or by pressing the disc eject button on newer models.
# Note: an UltraBay/MediaBay hard disk is never powered off.
BAY_POWEROFF_ON_BAT=0
# Optical drive device to power off (default sr0).
BAY_DEVICE="sr0"

# Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable
RUNTIME_PM_ON_AC=on
RUNTIME_PM_ON_BAT=auto

# Runtime PM for *all* PCI(e) bus devices, except blacklisted ones:
#   0=disable, 1=enable
RUNTIME_PM_ALL=1

# Exclude PCI(e) device adresses the following list from Runtime PM
# (separate with spaces). Use lspci to get the adresses (1st column).
#RUNTIME_PM_BLACKLIST="bb:dd.f 11:22.3 44:55.6"

# Exclude PCI(e) devices assigned to the listed drivers from Runtime PM
# (should prevent accidential power on of hybrid graphics' discrete part).
# Default is "radeon nouveau"; use "" to disable the feature completely.
# Separate multiple drivers with spaces.
RUNTIME_PM_DRIVER_BLACKLIST="radeon nouveau"

# Set to 0 to disable, 1 to enable USB autosuspend feature.
USB_AUTOSUSPEND=1

# Exclude listed devices from USB autosuspend (separate with spaces).
# Use lsusb to get the ids.
# Note: input devices (usbhid) are excluded automatically (see below)
USB_BLACKLIST="1111:2222 3333:4444"

# WWAN devices are excluded from USB autosuspend:
# 0=do not exclude / 1=exclude
USB_BLACKLIST_WWAN=0

# Include listed devices into USB autosuspend even if already excluded
# by the driver or WWAN blacklists above (separate with spaces).
# Use lsusb to get the ids.
#USB_WHITELIST="1111:2222 3333:4444"

# Set to 1 to disable autosuspend before shutdown, 0 to do nothing
# (workaround for USB devices that cause shutdown problems).
#USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=1

# Restore radio device state (Bluetooth, WiFi, WWAN) from previous shutdown
# on system startup: 0=disable, 1=enable.
# Hint: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below
#   are ignored when this is enabled!
RESTORE_DEVICE_STATE_ON_STARTUP=0

# Radio devices to disable on startup: bluetooth, wifi, wwan.
# Separate multiple devices with spaces.
#DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan"
DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wwan"

# Radio devices to enable on startup: bluetooth, wifi, wwan.
# Separate multiple devices with spaces.
#DEVICES_TO_ENABLE_ON_STARTUP="wifi"

# Radio devices to disable on shutdown: bluetooth, wifi, wwan
# (workaround for devices that are blocking shutdown).
#DEVICES_TO_DISABLE_ON_SHUTDOWN="bluetooth wifi wwan"

# Radio devices to enable on shutdown: bluetooth, wifi, wwan
# (to prevent other operating systems from missing radios).
#DEVICES_TO_ENABLE_ON_SHUTDOWN="wwan"

# Radio devices to enable on AC: bluetooth, wifi, wwan
#DEVICES_TO_ENABLE_ON_AC="bluetooth wifi wwan"

# Radio devices to disable on battery: bluetooth, wifi, wwan
#DEVICES_TO_DISABLE_ON_BAT="bluetooth wifi wwan"

# Radio devices to disable on battery when not in use (not connected):
# bluetooth, wifi, wwan
#DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth wifi wwan"

# Battery charge thresholds (ThinkPad only, tp-smapi or acpi-call kernel module
# required). Charging starts when the remaining capacity falls below the
# START_CHARGE_TRESH value and stops when exceeding the STOP_CHARGE_TRESH value.
# Main / Internal battery (values in %)
#START_CHARGE_THRESH_BAT0=75
#STOP_CHARGE_THRESH_BAT0=80
# Ultrabay / Slice / Replaceable battery (values in %)
#START_CHARGE_THRESH_BAT1=75
#STOP_CHARGE_THRESH_BAT1=80

# ------------------------------------------------------------------------------
# tlp-rdw - Parameters for the radio device wizard
# Possible devices: bluetooth, wifi, wwan

# Hints:
# - Parameters are disabled by default, remove the leading # to enable them.
# - Separate multiple radio devices with spaces.

# Radio devices to disable on connect.
#DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan"
#DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan"
#DEVICES_TO_DISABLE_ON_WWAN_CONNECT="wifi"

# Radio devices to enable on disconnect.
#DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan"
#DEVICES_TO_ENABLE_ON_WIFI_DISCONNECT=""
#DEVICES_TO_ENABLE_ON_WWAN_DISCONNECT=""

# Radio devices to enable/disable when docked.
#DEVICES_TO_ENABLE_ON_DOCK=""
#DEVICES_TO_DISABLE_ON_DOCK=""

# Radio devices to enable/disable when undocked.
#DEVICES_TO_ENABLE_ON_UNDOCK="wifi"
#DEVICES_TO_DISABLE_ON_UNDOCK=""

Conseil n°7 : Hiberner son ordinateur avec le SWAP

Dans les options d'énergie, choisissez d'hiberner l'ordinateur lorsque le laptop est refermé. Mieux encore, réduisez le temps de mise en veille et d'éteinte de l'écran en cas d'inactivité.

Conseil n°8 : Disque secondaire et standby

HDParm sur un disque dur de backup est une bonne idée pour éviter les déperditions d'énergie lorsque vous ne vous servez pas du disque. Il revient online à un instant T et se met en veille tout seul au bout d'un certain temps de non-utilisation.

J'ai créé un fichier /etc/init.d/startup.conf. Utilisez chmod +x pour le rendre exécutable par le système.

update-rc.d startup defaults

Le contenu :

# met en standby en cas d'inactivité
hdparm -S 24 /dev/sdb

# met en standby immédiatemen
hdparm -y /dev/sdb

Conseil n°9 : Limiter l'écriture sur disque avec les options de montage FSTAB

Permettre de limiter les accès sur le disque avec les options de montage.

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# / was on /dev/sdc4 during installation
UUID=10c81108-4396-4841-8a5e-07c4cd2ea304 /               ext4    discard,noatime,nodiratime,errors=remount-ro 0       1
# /home was on /dev/sdc3 during installation
UUID=fd1a4693-3001-4317-b674-8ae24a9d7bbc /home           ext4    discard,noatime,nodiratime 0       2
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

# second hard drive

/dev/sdb1	/backup		ext4	discard,noatime,nodiratime,errors=remount-ro 0 1
/dev/sdb2	/share		ntfs	defaults,uid=1000,rw	0	1
/dev/sdb3	none	        swap    sw                   0       0

Conseil n°10 : Purge des fichiers de langues non utilisés

Purge des fichiers locaux que vous n'utilisez pas (notamment les différentes docs).

aptitude install localepurge

Ne choisir que EN et FR.

Conseil n°11 : Préchargez les programmes

aptitude install preload

Permet de créer des fichiers caches pour les applications les plus utilisés. Du coup moins d'utilisation de Ram et des programmes chargés plus rapidement. N'optimise pas en soit la durée de vie de la batterie mais permet d'optimiser les performances au démarrage.

Conseil n°12 : Compressez sa ram avec ZRam

Permet d'optimiser la RAM et sa consommation en vidant les entre-espaces non utilisés.

aptitude install zram-config

Conseil n°13 : Désactiver sa carte graphique avec Bumblebee

Permet de désactiver la carte graphique NVIDIA de son ordinateur. ça utilise ainsi le chipset et diminue fortement la consommation d'énergie.

Bonus

  • Désinscrivez-vous des listes de diffusion d'email, vous gagnerez en espace disque. N'oublions pas que les serveurs d'emails tournent 24/24 et consomme tout autant.

Articles similaires

Commentaires

Aucun commentaire

Ajouter un commentaire

Vous ne disposez pas les autorisations nécessaires pour poster un commentaire.