Pour ce tuto, nous allons installer une VM Debian 12.6.1 sur Kamatera et recompiler son noyau afin de le dépoussiérer de tout ce qui n'est pas strictement nécessaire à l'installation d'un serveur SFTP (par exemple) et à la mise en place d'NFTABLES pour nous protéger un peu.
Nous allons passer d'un noyau avec modules de 440 Mo (c'est la taille par défaut sur une image debian standard) à un noyau + modules de seulement 20 Mo !
Nous réaliserons également des benchmark AVANT et APRES optimisation pour bien comprendre la différence.
(Allez voir tout en bas pour les résultats si vous êtes pressés).
Il est possible d'aller encore plus loin bien sûr, mais l'optimisation obtenue ici est déjà très importante.
Pour pouvoir se connecter à root sans mot de passe :
ssh-copy-id -i /emplacement/local/clef_publique.pub root@IP-OPTIM-DEB
ssh root@IP-OPTIM-DEB
sed -i 's/PermitRootLogin yes/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
systemctl restart sshd
PRENEZ A PRESENT UN SNAPSHOT DEPUIS LA CONSOLE KAMATERA !!
NOMMEZ-LE "INSTALLATION" (par exemple)
Lorsqu'on fait des optimisations, on a souvent besoin de revenir rapidement en arrière en cas de pépin.
Vous pouvez exécuter mon script ou tout autre outil :
http://tssr.eklablog.fr/effectuer-un-benchmark-avec-sysbench-a216366267
-----------------------------------------------------
| Résultats du benchmark système |
-----------------------------------------------------
| CPU : 2040.27 events/sec
| Mémoire : 102400.00 MiB/sec
| I/O Random R/W : 6440.12 reads/sec
| I/O Sequential Read : 100.63 MiB/sec
| I/O Sequential Write : 67.08 MiB/sec
|-----------------------------------------------------
| Note globale : 72.004260 %
-----------------------------------------------------
-----------------------------------------------------
| Résultats du benchmark système |
-----------------------------------------------------
| CPU : 2026.39 events/sec
| Mémoire : 102400.00 MiB/sec
| I/O Random R/W : 6414.20 reads/sec
| I/O Sequential Read : 100.22 MiB/sec
| I/O Sequential Write : 66.81 MiB/sec
|-----------------------------------------------------
| Note globale : 71.920400 %
-----------------------------------------------------
-----------------------------------------------------
| Résultats du benchmark système |
-----------------------------------------------------
| CPU : 2029.63 events/sec
| Mémoire : 101055.36 MiB/sec
| I/O Random R/W : 6547.27 reads/sec
| I/O Sequential Read : 102.30 MiB/sec
| I/O Sequential Write : 68.20 MiB/sec
|-----------------------------------------------------
| Note globale : 71.677940 %
-----------------------------------------------------
-----------------------------------------------------
| Résultats du benchmark système |
-----------------------------------------------------
| CPU : 2034.81 events/sec
| Mémoire : 102400.00 MiB/sec
| I/O Random R/W : 6661.92 reads/sec
| I/O Sequential Read : 104.09 MiB/sec
| I/O Sequential Write : 69.40 MiB/sec
|-----------------------------------------------------
| Note globale : 72.720720 %
-----------------------------------------------------
CPU : 2032.78 events/sec
Mémoire : 102063.84 MiB/sec
I/O Random R/W : 6515.88 reads/sec
I/O Sequential Read : 101.81 MiB/sec
I/O Sequential Write : 67.87 MiB/sec
Note globale : 72.08 %
mkdir system_info ; cd system_info
for cmd in "uname -a" "lscpu" "free -h" "lsblk" "lspci -v" "ip a" "lsmod" "dmidecode"
do
$cmd >> "resultats.txt" 2>&1
done
Voici ce que vous pourrez en extraire :
Une VM classique en somme, dont les caractéristiques répondent bien à ce que nous avons loué.
Mais a priori, il y a des choses qui n'ont rien à faire sur notre serveur (contrôleurs USB, CD-ROM) !!
apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev git -y
cd /usr/src
apt-get source linux-image-$(uname -r) -y
apt-get install linux-source -y
cd /usr/src
tar xf linux-source-6.1.tar.xz
cd linux-source-6.1
cp /boot/config-$(uname -r) .config
apt install build-essential bc kmod cpio flex libncurses5-dev libelf-dev libssl-dev dwarves bison -y
make localmodconfig
make localyesconfig
Voici toutes les optimisations qui peuvent être faîtes d'un coup (on peut certainement aller encore plus loin !) :
# Désactiver les fonctionnalités audio/vidéo inutiles
sed -i 's/CONFIG_SOUND=.*/CONFIG_SOUND=n/' .config
sed -i 's/CONFIG_AGP=.*/CONFIG_AGP=n/' .config
sed -i 's/CONFIG_DRM=.*/CONFIG_DRM=n/' .config
# Désactiver les périphériques d'entrée inutiles
sed -i 's/CONFIG_INPUT_JOYSTICK=.*/CONFIG_INPUT_JOYSTICK=n/' .config
sed -i 's/CONFIG_INPUT_TABLET=.*/CONFIG_INPUT_TABLET=n/' .config
sed -i 's/CONFIG_INPUT_TOUCHSCREEN=.*/CONFIG_INPUT_TOUCHSCREEN=n/' .config
# Désactiver le support wireless inutile pour un serveur
sed -i 's/CONFIG_WLAN=.*/CONFIG_WLAN=n/' .config
# Optimiser pour la performance
sed -i 's/CONFIG_PREEMPT_VOLUNTARY=.*/CONFIG_PREEMPT_VOLUNTARY=n/' .config
sed -i 's/CONFIG_PREEMPT=y/CONFIG_PREEMPT=n/' .config
# Désactiver le debug superflu
sed -i 's/CONFIG_DEBUG_KERNEL=.*/CONFIG_DEBUG_KERNEL=n/' .config
sed -i 's/CONFIG_DEBUG_INFO=.*/CONFIG_DEBUG_INFO=n/' .config
sed -i 's/CONFIG_DYNAMIC_DEBUG=.*/CONFIG_DYNAMIC_DEBUG=n/' .config
# Optimiser la mémoire
sed -i 's/CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=.*/CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y/' .config
sed -i 's/CONFIG_COMPACTION=.*/CONFIG_COMPACTION=y/' .config
# Activer les fonctionnalités de cryptographie nécessaires pour SFTP
sed -i 's/CONFIG_CRYPTO_AES=.*/CONFIG_CRYPTO_AES=y/' .config
sed -i 's/CONFIG_CRYPTO_SHA256=.*/CONFIG_CRYPTO_SHA256=y/' .config
sed -i 's/CONFIG_CRYPTO_SHA512=.*/CONFIG_CRYPTO_SHA512=y/' .config
# Désactiver les fonctionnalités multimédia inutiles
sed -i 's/CONFIG_MEDIA_SUPPORT=.*/CONFIG_MEDIA_SUPPORT=n/' .config
sed -i 's/CONFIG_MEDIA_CONTROLLER=.*/CONFIG_MEDIA_CONTROLLER=n/' .config
# Désactiver les fonctionnalités de test et debug restantes
sed -i 's/CONFIG_RUNTIME_TESTING_MENU=.*/CONFIG_RUNTIME_TESTING_MENU=n/' .config
sed -i 's/CONFIG_MEMTEST=.*/CONFIG_MEMTEST=n/' .config
sed -i 's/CONFIG_BOOT_PRINTK_DELAY=.*/CONFIG_BOOT_PRINTK_DELAY=n/' .config
# Désactiver les fonctionnalités d'entrée inutiles
sed -i 's/CONFIG_INPUT_MOUSEDEV=.*/CONFIG_INPUT_MOUSEDEV=n/' .config
sed -i 's/CONFIG_INPUT_JOYDEV=.*/CONFIG_INPUT_JOYDEV=n/' .config
sed -i 's/CONFIG_INPUT_EVDEV=.*/CONFIG_INPUT_EVDEV=n/' .config
sed -i 's/CONFIG_INPUT_KEYBOARD=.*/CONFIG_INPUT_KEYBOARD=n/' .config
sed -i 's/CONFIG_INPUT_MOUSE=.*/CONFIG_INPUT_MOUSE=n/' .config
# Désactiver les fonctionnalités réseau non nécessaires
sed -i 's/CONFIG_HAMRADIO=.*/CONFIG_HAMRADIO=n/' .config
sed -i 's/CONFIG_FDDI=.*/CONFIG_FDDI=n/' .config
sed -i 's/CONFIG_HIPPI=.*/CONFIG_HIPPI=n/' .config
sed -i 's/CONFIG_ISDN=.*/CONFIG_ISDN=n/' .config
# Désactiver les systèmes de fichiers non utilisés
sed -i 's/CONFIG_AUTOFS_FS=.*/CONFIG_AUTOFS_FS=n/' .config
# Désactiver les fonctionnalités de traçage non nécessaires
sed -i 's/CONFIG_FTRACE=.*/CONFIG_FTRACE=n/' .config
sed -i 's/CONFIG_FUNCTION_TRACER=.*/CONFIG_FUNCTION_TRACER=n/' .config
sed -i 's/CONFIG_FUNCTION_GRAPH_TRACER=.*/CONFIG_FUNCTION_GRAPH_TRACER=n/' .config
sed -i 's/CONFIG_STACK_TRACER=.*/CONFIG_STACK_TRACER=n/' .config
sed -i 's/CONFIG_MMIOTRACE=.*/CONFIG_MMIOTRACE=n/' .config
# Désactiver les fonctionnalités de virtualisation non utilisées
sed -i 's/CONFIG_XEN_BALLOON=.*/CONFIG_XEN_BALLOON=n/' .config
sed -i 's/CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=.*/CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=n/' .config
# Désactiver les fonctionnalités d'accessibilité non nécessaires
sed -i 's/CONFIG_ACCESSIBILITY=.*/CONFIG_ACCESSIBILITY=n/' .config
sed -i 's/CONFIG_A11Y_BRAILLE_CONSOLE=.*/CONFIG_A11Y_BRAILLE_CONSOLE=n/' .config
# Désactiver les fonctionnalités de surveillance matérielle non essentielles
sed -i 's/CONFIG_WATCHDOG=.*/CONFIG_WATCHDOG=n/' .config
# Désactiver les drivers réseau non utilisés (seul virtio_net est nécessaire)
sed -i 's/CONFIG_NET_VENDOR_3COM=.*/CONFIG_NET_VENDOR_3COM=n/' .config
sed -i 's/CONFIG_NET_VENDOR_ADAPTEC=.*/CONFIG_NET_VENDOR_ADAPTEC=n/' .config
sed -i 's/CONFIG_NET_VENDOR_AGERE=.*/CONFIG_NET_VENDOR_AGERE=n/' .config
sed -i 's/CONFIG_NET_VENDOR_ALACRITECH=.*/CONFIG_NET_VENDOR_ALACRITECH=n/' .config
sed -i 's/CONFIG_NET_VENDOR_ALTEON=.*/CONFIG_NET_VENDOR_ALTEON=n/' .config
sed -i 's/CONFIG_NET_VENDOR_AMAZON=.*/CONFIG_NET_VENDOR_AMAZON=n/' .config
sed -i 's/CONFIG_NET_VENDOR_AMD=.*/CONFIG_NET_VENDOR_AMD=n/' .config
sed -i 's/CONFIG_NET_VENDOR_AQUANTIA=.*/CONFIG_NET_VENDOR_AQUANTIA=n/' .config
sed -i 's/CONFIG_NET_VENDOR_ARC=.*/CONFIG_NET_VENDOR_ARC=n/' .config
sed -i 's/CONFIG_NET_VENDOR_ATHEROS=.*/CONFIG_NET_VENDOR_ATHEROS=n/' .config
sed -i 's/CONFIG_NET_VENDOR_BROADCOM=.*/CONFIG_NET_VENDOR_BROADCOM=n/' .config
sed -i 's/CONFIG_NET_VENDOR_INTEL=.*/CONFIG_NET_VENDOR_INTEL=n/' .config
sed -i 's/CONFIG_NET_VENDOR_MARVELL=.*/CONFIG_NET_VENDOR_MARVELL=n/' .config
sed -i 's/CONFIG_NET_VENDOR_MICREL=.*/CONFIG_NET_VENDOR_MICREL=n/' .config
sed -i 's/CONFIG_NET_VENDOR_MICROCHIP=.*/CONFIG_NET_VENDOR_MICROCHIP=n/' .config
sed -i 's/CONFIG_NET_VENDOR_MYRI=.*/CONFIG_NET_VENDOR_MYRI=n/' .config
sed -i 's/CONFIG_NET_VENDOR_NATSEMI=.*/CONFIG_NET_VENDOR_NATSEMI=n/' .config
sed -i 's/CONFIG_NET_VENDOR_NVIDIA=.*/CONFIG_NET_VENDOR_NVIDIA=n/' .config
sed -i 's/CONFIG_NET_VENDOR_OKI=.*/CONFIG_NET_VENDOR_OKI=n/' .config
sed -i 's/CONFIG_NET_VENDOR_QUALCOMM=.*/CONFIG_NET_VENDOR_QUALCOMM=n/' .config
sed -i 's/CONFIG_NET_VENDOR_REALTEK=.*/CONFIG_NET_VENDOR_REALTEK=n/' .config
sed -i 's/CONFIG_NET_VENDOR_RENESAS=.*/CONFIG_NET_VENDOR_RENESAS=n/' .config
sed -i 's/CONFIG_NET_VENDOR_RDC=.*/CONFIG_NET_VENDOR_RDC=n/' .config
sed -i 's/CONFIG_NET_VENDOR_ROCKER=.*/CONFIG_NET_VENDOR_ROCKER=n/' .config
sed -i 's/CONFIG_NET_VENDOR_SAMSUNG=.*/CONFIG_NET_VENDOR_SAMSUNG=n/' .config
# Désactiver les contrôleurs non présents
sed -i 's/CONFIG_MEGARAID_NEWGEN=.*/CONFIG_MEGARAID_NEWGEN=n/' .config
sed -i 's/CONFIG_FUSION=.*/CONFIG_FUSION=n/' .config
# Désactiver les contrôleurs USB non utilisés
sed -i 's/CONFIG_USB_EHCI_HCD=.*/CONFIG_USB_EHCI_HCD=n/' .config
sed -i 's/CONFIG_USB_OHCI_HCD=.*/CONFIG_USB_OHCI_HCD=n/' .config
# Désactiver les contrôleurs I2C non utilisés
sed -i 's/CONFIG_I2C_DESIGNWARE_CORE=.*/CONFIG_I2C_DESIGNWARE_CORE=n/' .config
sed -i 's/CONFIG_I2C_DESIGNWARE_PLATFORM=.*/CONFIG_I2C_DESIGNWARE_PLATFORM=n/' .config
sed -i 's/CONFIG_I2C_DESIGNWARE_BAYTRAIL=.*/CONFIG_I2C_DESIGNWARE_BAYTRAIL=n/' .config
# Désactiver les contrôleurs PINCTRL non utilisés
sed -i 's/CONFIG_PINCTRL_AMD=.*/CONFIG_PINCTRL_AMD=n/' .config
sed -i 's/CONFIG_PINCTRL_BAYTRAIL=.*/CONFIG_PINCTRL_BAYTRAIL=n/' .config
sed -i 's/CONFIG_PINCTRL_CHERRYVIEW=.*/CONFIG_PINCTRL_CHERRYVIEW=n/' .config
sed -i 's/CONFIG_PINCTRL_BROXTON=.*/CONFIG_PINCTRL_BROXTON=n/' .config
sed -i 's/CONFIG_PINCTRL_CANNONLAKE=.*/CONFIG_PINCTRL_CANNONLAKE=n/' .config
sed -i 's/CONFIG_PINCTRL_DENVERTON=.*/CONFIG_PINCTRL_DENVERTON=n/' .config
sed -i 's/CONFIG_PINCTRL_GEMINILAKE=.*/CONFIG_PINCTRL_GEMINILAKE=n/' .config
sed -i 's/CONFIG_PINCTRL_ICELAKE=.*/CONFIG_PINCTRL_ICELAKE=n/' .config
# Désactiver les fonctionnalités ACPI non nécessaires
sed -i 's/CONFIG_ACPI_DOCK=.*/CONFIG_ACPI_DOCK=n/' .config
sed -i 's/CONFIG_ACPI_PROCESSOR_AGGREGATOR=.*/CONFIG_ACPI_PROCESSOR_AGGREGATOR=n/' .config
sed -i 's/CONFIG_ACPI_HOTPLUG_MEMORY=.*/CONFIG_ACPI_HOTPLUG_MEMORY=n/' .config
sed -i 's/CONFIG_ACPI_BGRT=.*/CONFIG_ACPI_BGRT=n/' .config
# Désactiver les fonctionnalités de platform devices non utilisées
sed -i 's/CONFIG_X86_PLATFORM_DEVICES=.*/CONFIG_X86_PLATFORM_DEVICES=n/' .config
sed -i 's/CONFIG_X86_PLATFORM_DRIVERS_DELL=.*/CONFIG_X86_PLATFORM_DRIVERS_DELL=n/' .config
sed -i 's/CONFIG_X86_PLATFORM_DRIVERS_HP=.*/CONFIG_X86_PLATFORM_DRIVERS_HP=n/' .config
# Désactiver les systèmes de fichiers non utilisés
sed -i 's/CONFIG_ACORN_PARTITION=.*/CONFIG_ACORN_PARTITION=n/' .config
sed -i 's/CONFIG_OSF_PARTITION=.*/CONFIG_OSF_PARTITION=n/' .config
sed -i 's/CONFIG_AMIGA_PARTITION=.*/CONFIG_AMIGA_PARTITION=n/' .config
sed -i 's/CONFIG_ATARI_PARTITION=.*/CONFIG_ATARI_PARTITION=n/' .config
sed -i 's/CONFIG_MAC_PARTITION=.*/CONFIG_MAC_PARTITION=n/' .config
sed -i 's/CONFIG_BSD_DISKLABEL=.*/CONFIG_BSD_DISKLABEL=n/' .config
sed -i 's/CONFIG_MINIX_SUBPARTITION=.*/CONFIG_MINIX_SUBPARTITION=n/' .config
sed -i 's/CONFIG_SOLARIS_X86_PARTITION=.*/CONFIG_SOLARIS_X86_PARTITION=n/' .config
sed -i 's/CONFIG_UNIXWARE_DISKLABEL=.*/CONFIG_UNIXWARE_DISKLABEL=n/' .config
sed -i 's/CONFIG_LDM_PARTITION=.*/CONFIG_LDM_PARTITION=n/' .config
sed -i 's/CONFIG_SGI_PARTITION=.*/CONFIG_SGI_PARTITION=n/' .config
sed -i 's/CONFIG_ULTRIX_PARTITION=.*/CONFIG_ULTRIX_PARTITION=n/' .config
sed -i 's/CONFIG_SUN_PARTITION=.*/CONFIG_SUN_PARTITION=n/' .config
sed -i 's/CONFIG_KARMA_PARTITION=.*/CONFIG_KARMA_PARTITION=n/' .config
# Désactiver les protocoles réseau non utilisés
sed -i 's/CONFIG_IPV6_MIP6=.*/CONFIG_IPV6_MIP6=n/' .config
sed -i 's/CONFIG_IPV6_SIT=.*/CONFIG_IPV6_SIT=n/' .config
sed -i 's/CONFIG_IPV6_TUNNEL=.*/CONFIG_IPV6_TUNNEL=n/' .config
sed -i 's/CONFIG_INET_TUNNEL=.*/CONFIG_INET_TUNNEL=n/' .config
sed -i 's/CONFIG_INET6_TUNNEL=.*/CONFIG_INET6_TUNNEL=n/' .config
sed -i 's/CONFIG_INET_DIAG=.*/CONFIG_INET_DIAG=n/' .config
sed -i 's/CONFIG_INET_TCP_DIAG=.*/CONFIG_INET_TCP_DIAG=n/' .config
sed -i 's/CONFIG_TCP_CONG_BIC=.*/CONFIG_TCP_CONG_BIC=n/' .config
sed -i 's/CONFIG_TCP_CONG_WESTWOOD=.*/CONFIG_TCP_CONG_WESTWOOD=n/' .config
sed -i 's/CONFIG_TCP_CONG_HTCP=.*/CONFIG_TCP_CONG_HTCP=n/' .config
# Désactiver les fonctionnalités de débogage supplémentaires
sed -i 's/CONFIG_DEBUG_BUGVERBOSE=.*/CONFIG_DEBUG_BUGVERBOSE=n/' .config
sed -i 's/CONFIG_DEBUG_MISC=.*/CONFIG_DEBUG_MISC=n/' .config
sed -i 's/CONFIG_DEBUG_MEMORY_INIT=.*/CONFIG_DEBUG_MEMORY_INIT=n/' .config
sed -i 's/CONFIG_SCHED_DEBUG=.*/CONFIG_SCHED_DEBUG=n/' .config
sed -i 's/CONFIG_SCHEDSTATS=.*/CONFIG_SCHEDSTATS=n/' .config
sed -i 's/CONFIG_DEBUG_LIST=.*/CONFIG_DEBUG_LIST=n/' .config
sed -i 's/CONFIG_RCU_TRACE=.*/CONFIG_RCU_TRACE=n/' .config
# Désactiver les fonctionnalités de virtualisation non utilisées
sed -i 's/CONFIG_XEN_PCIDEV_BACKEND=.*/CONFIG_XEN_PCIDEV_BACKEND=n/' .config
sed -i 's/CONFIG_XEN_BLKDEV_BACKEND=.*/CONFIG_XEN_BLKDEV_BACKEND=n/' .config
sed -i 's/CONFIG_XEN_NETDEV_BACKEND=.*/CONFIG_XEN_NETDEV_BACKEND=n/' .config
sed -i 's/CONFIG_XEN_SCSI_BACKEND=.*/CONFIG_XEN_SCSI_BACKEND=n/' .config
sed -i 's/CONFIG_XEN_ACPI_PROCESSOR=.*/CONFIG_XEN_ACPI_PROCESSOR=n/' .config
# Désactiver les fonctionnalités ACPI non nécessaires
sed -i 's/CONFIG_ACPI_AC=.*/CONFIG_ACPI_AC=n/' .config
sed -i 's/CONFIG_ACPI_BATTERY=.*/CONFIG_ACPI_BATTERY=n/' .config
sed -i 's/CONFIG_ACPI_FAN=.*/CONFIG_ACPI_FAN=n/' .config
sed -i 's/CONFIG_ACPI_DOCK=.*/CONFIG_ACPI_DOCK=n/' .config
sed -i 's/CONFIG_ACPI_PROCESSOR_AGGREGATOR=.*/CONFIG_ACPI_PROCESSOR_AGGREGATOR=n/' .config
# Désactiver les fonctionnalités USB non utilisées
sed -i 's/CONFIG_USB_PRINTER=.*/CONFIG_USB_PRINTER=n/' .config
sed -i 's/CONFIG_USB_STORAGE=.*/CONFIG_USB_STORAGE=n/' .config
sed -i 's/CONFIG_USB_SERIAL=.*/CONFIG_USB_SERIAL=n/' .config
# Désactiver les pilotes de périphériques série inutiles
sed -i 's/CONFIG_SERIAL_8250_EXTENDED=.*/CONFIG_SERIAL_8250_EXTENDED=n/' .config
sed -i 's/CONFIG_SERIAL_8250_MANY_PORTS=.*/CONFIG_SERIAL_8250_MANY_PORTS=n/' .config
sed -i 's/CONFIG_SERIAL_8250_SHARE_IRQ=.*/CONFIG_SERIAL_8250_SHARE_IRQ=n/' .config
sed -i 's/CONFIG_SERIAL_8250_DETECT_IRQ=.*/CONFIG_SERIAL_8250_DETECT_IRQ=n/' .config
sed -i 's/CONFIG_SERIAL_8250_RSA=.*/CONFIG_SERIAL_8250_RSA=n/' .config
sed -i 's/CONFIG_SERIAL_8250_DW=.*/CONFIG_SERIAL_8250_DW=n/' .config
sed -i 's/CONFIG_SERIAL_8250_FINTEK=.*/CONFIG_SERIAL_8250_FINTEK=n/' .config
# Désactiver les fonctionnalités crypto non utilisées
sed -i 's/CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=.*/CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y/' .config
sed -i 's/CONFIG_CRYPTO_NULL=.*/CONFIG_CRYPTO_NULL=n/' .config
sed -i 's/CONFIG_CRYPTO_GF128MUL=.*/CONFIG_CRYPTO_GF128MUL=n/' .config
sed -i 's/CONFIG_CRYPTO_CTR=.*/CONFIG_CRYPTO_CTR=n/' .config
sed -i 's/CONFIG_CRYPTO_CTS=.*/CONFIG_CRYPTO_CTS=n/' .config
sed -i 's/CONFIG_CRYPTO_GCM=.*/CONFIG_CRYPTO_GCM=n/' .config
sed -i 's/CONFIG_CRYPTO_GHASH=.*/CONFIG_CRYPTO_GHASH=n/' .config
# Désactiver les fonctionnalités DMA inutiles
sed -i 's/CONFIG_DW_DMAC_CORE=.*/CONFIG_DW_DMAC_CORE=n/' .config
sed -i 's/CONFIG_DW_DMAC_PCI=.*/CONFIG_DW_DMAC_PCI=n/' .config
sed -i 's/CONFIG_HSU_DMA=.*/CONFIG_HSU_DMA=n/' .config
# Désactiver les fonctionnalités CXL non utilisées
sed -i 's/CONFIG_CXL_BUS=.*/CONFIG_CXL_BUS=n/' .config
sed -i 's/CONFIG_CXL_PCI=.*/CONFIG_CXL_PCI=n/' .config
sed -i 's/CONFIG_CXL_ACPI=.*/CONFIG_CXL_ACPI=n/' .config
sed -i 's/CONFIG_CXL_PMEM=.*/CONFIG_CXL_PMEM=n/' .config
sed -i 's/CONFIG_CXL_MEM=.*/CONFIG_CXL_MEM=n/' .config
sed -i 's/CONFIG_CXL_PORT=.*/CONFIG_CXL_PORT=n/' .config
sed -i 's/CONFIG_CXL_SUSPEND=.*/CONFIG_CXL_SUSPEND=n/' .config
# Désactiver les fonctionnalités de compatibilité legacy
sed -i 's/CONFIG_LEGACY_PTYS=.*/CONFIG_LEGACY_PTYS=n/' .config
sed -i 's/CONFIG_LEGACY_PTY_COUNT=.*/CONFIG_LEGACY_PTY_COUNT=0/' .config
sed -i 's/CONFIG_COMPAT_BRK=.*/CONFIG_COMPAT_BRK=n/' .config
# Désactiver les fonctionnalités RTC supplémentaires
sed -i 's/CONFIG_RTC_INTF_SYSFS=.*/CONFIG_RTC_INTF_SYSFS=n/' .config
sed -i 's/CONFIG_RTC_INTF_PROC=.*/CONFIG_RTC_INTF_PROC=n/' .config
sed -i 's/CONFIG_RTC_I2C_AND_SPI=.*/CONFIG_RTC_I2C_AND_SPI=n/' .config
# Désactiver les fonctionnalités de décompression non utilisées
sed -i 's/CONFIG_XZ_DEC_POWERPC=.*/CONFIG_XZ_DEC_POWERPC=n/' .config
sed -i 's/CONFIG_XZ_DEC_IA64=.*/CONFIG_XZ_DEC_IA64=n/' .config
sed -i 's/CONFIG_XZ_DEC_ARM=.*/CONFIG_XZ_DEC_ARM=n/' .config
sed -i 's/CONFIG_XZ_DEC_ARMTHUMB=.*/CONFIG_XZ_DEC_ARMTHUMB=n/' .config
sed -i 's/CONFIG_XZ_DEC_SPARC=.*/CONFIG_XZ_DEC_SPARC=n/' .config
# Désactiver les fonctionnalités de surveillance système non essentielles
sed -i 's/CONFIG_DETECT_HUNG_TASK=.*/CONFIG_DETECT_HUNG_TASK=n/' .config
sed -i 's/CONFIG_BOOTPARAM_HUNG_TASK_PANIC=.*/CONFIG_BOOTPARAM_HUNG_TASK_PANIC=n/' .config
sed -i 's/CONFIG_WQ_WATCHDOG=.*/CONFIG_WQ_WATCHDOG=n/' .config
# Désactiver les fonctionnalités PNP non utilisées
sed -i 's/CONFIG_PNP_DEBUG_MESSAGES=.*/CONFIG_PNP_DEBUG_MESSAGES=n/' .config
# Désactiver les fonctionnalités EDAC non nécessaires
sed -i 's/CONFIG_EDAC_DECODE_MCE=.*/CONFIG_EDAC_DECODE_MCE=n/' .config
sed -i 's/CONFIG_EDAC_LEGACY_SYSFS=.*/CONFIG_EDAC_LEGACY_SYSFS=n/' .config
sed -i 's/CONFIG_EDAC_DEBUG=.*/CONFIG_EDAC_DEBUG=n/' .config
# Désactiver les fonctionnalités de boot verbose
sed -i 's/CONFIG_X86_VERBOSE_BOOTUP=.*/CONFIG_X86_VERBOSE_BOOTUP=n/' .config
# Désactiver les fonctionnalités de débogage FPU
sed -i 's/CONFIG_X86_DEBUG_FPU=.*/CONFIG_X86_DEBUG_FPU=n/' .config
# Désactiver les drivers réseau inutiles (suite)
sed -i 's/CONFIG_NET_VENDOR_GOOGLE=.*/CONFIG_NET_VENDOR_GOOGLE=n/' .config
sed -i 's/CONFIG_NET_VENDOR_HUAWEI=.*/CONFIG_NET_VENDOR_HUAWEI=n/' .config
sed -i 's/CONFIG_NET_VENDOR_ADI=.*/CONFIG_NET_VENDOR_ADI=n/' .config
sed -i 's/CONFIG_NET_VENDOR_LITEX=.*/CONFIG_NET_VENDOR_LITEX=n/' .config
sed -i 's/CONFIG_NET_VENDOR_MELLANOX=.*/CONFIG_NET_VENDOR_MELLANOX=n/' .config
sed -i 's/CONFIG_NET_VENDOR_MICROSEMI=.*/CONFIG_NET_VENDOR_MICROSEMI=n/' .config
sed -i 's/CONFIG_NET_VENDOR_MICROSOFT=.*/CONFIG_NET_VENDOR_MICROSOFT=n/' .config
sed -i 's/CONFIG_NET_VENDOR_NI=.*/CONFIG_NET_VENDOR_NI=n/' .config
sed -i 's/CONFIG_NET_VENDOR_NETERION=.*/CONFIG_NET_VENDOR_NETERION=n/' .config
sed -i 's/CONFIG_NET_VENDOR_NETRONOME=.*/CONFIG_NET_VENDOR_NETRONOME=n/' .config
sed -i 's/CONFIG_NET_VENDOR_SEEQ=.*/CONFIG_NET_VENDOR_SEEQ=n/' .config
sed -i 's/CONFIG_NET_VENDOR_SILAN=.*/CONFIG_NET_VENDOR_SILAN=n/' .config
sed -i 's/CONFIG_NET_VENDOR_SIS=.*/CONFIG_NET_VENDOR_SIS=n/' .config
sed -i 's/CONFIG_NET_VENDOR_SOLARFLARE=.*/CONFIG_NET_VENDOR_SOLARFLARE=n/' .config
sed -i 's/CONFIG_NET_VENDOR_SMSC=.*/CONFIG_NET_VENDOR_SMSC=n/' .config
sed -i 's/CONFIG_NET_VENDOR_SOCIONEXT=.*/CONFIG_NET_VENDOR_SOCIONEXT=n/' .config
sed -i 's/CONFIG_NET_VENDOR_STMICRO=.*/CONFIG_NET_VENDOR_STMICRO=n/' .config
sed -i 's/CONFIG_NET_VENDOR_SUN=.*/CONFIG_NET_VENDOR_SUN=n/' .config
sed -i 's/CONFIG_NET_VENDOR_SYNOPSYS=.*/CONFIG_NET_VENDOR_SYNOPSYS=n/' .config
sed -i 's/CONFIG_NET_VENDOR_TEHUTI=.*/CONFIG_NET_VENDOR_TEHUTI=n/' .config
sed -i 's/CONFIG_NET_VENDOR_TI=.*/CONFIG_NET_VENDOR_TI=n/' .config
sed -i 's/CONFIG_NET_VENDOR_VERTEXCOM=.*/CONFIG_NET_VENDOR_VERTEXCOM=n/' .config
sed -i 's/CONFIG_NET_VENDOR_VIA=.*/CONFIG_NET_VENDOR_VIA=n/' .config
sed -i 's/CONFIG_NET_VENDOR_WANGXUN=.*/CONFIG_NET_VENDOR_WANGXUN=n/' .config
sed -i 's/CONFIG_NET_VENDOR_WIZNET=.*/CONFIG_NET_VENDOR_WIZNET=n/' .config
sed -i 's/CONFIG_NET_VENDOR_XILINX=.*/CONFIG_NET_VENDOR_XILINX=n/' .config
sed -i 's/CONFIG_USB_NET_DRIVERS=.*/CONFIG_USB_NET_DRIVERS=n/' .config
# Désactiver les fonctionnalités de sécurité redondantes
sed -i 's/CONFIG_SECURITY_SELINUX=.*/CONFIG_SECURITY_SELINUX=n/' .config
sed -i 's/CONFIG_SECURITY_SMACK=.*/CONFIG_SECURITY_SMACK=n/' .config
sed -i 's/CONFIG_SECURITY_TOMOYO=.*/CONFIG_SECURITY_TOMOYO=n/' .config
# Désactiver les fonctionnalités de monitoring système non essentielles
sed -i 's/CONFIG_PROC_PAGE_MONITOR=.*/CONFIG_PROC_PAGE_MONITOR=n/' .config
sed -i 's/CONFIG_PROC_CHILDREN=.*/CONFIG_PROC_CHILDREN=n/' .config
sed -i 's/CONFIG_PROC_PID_ARCH_STATUS=.*/CONFIG_PROC_PID_ARCH_STATUS=n/' .config
sed -i 's/CONFIG_PROC_CPU_RESCTRL=.*/CONFIG_PROC_CPU_RESCTRL=n/' .config
# Désactiver les fonctionnalités d'émulation inutiles
sed -i 's/CONFIG_X86_X32=.*/CONFIG_X86_X32=n/' .config
sed -i 's/CONFIG_IA32_EMULATION=.*/CONFIG_IA32_EMULATION=n/' .config
sed -i 's/CONFIG_X86_X32_ABI=.*/CONFIG_X86_X32_ABI=n/' .config
# Désactiver les fonctionnalités de performance debugging
sed -i 's/CONFIG_PERF_EVENTS_INTEL_UNCORE=.*/CONFIG_PERF_EVENTS_INTEL_UNCORE=n/' .config
sed -i 's/CONFIG_PERF_EVENTS_INTEL_RAPL=.*/CONFIG_PERF_EVENTS_INTEL_RAPL=n/' .config
sed -i 's/CONFIG_PERF_EVENTS_INTEL_CSTATE=.*/CONFIG_PERF_EVENTS_INTEL_CSTATE=n/' .config
sed -i 's/CONFIG_PERF_EVENTS_AMD_UNCORE=.*/CONFIG_PERF_EVENTS_AMD_UNCORE=n/' .config
# Désactiver les fonctionnalités de debug supplémentaires
sed -i 's/CONFIG_DEBUG_MEMORY_INIT=.*/CONFIG_DEBUG_MEMORY_INIT=n/' .config
sed -i 's/CONFIG_HAVE_DEBUG_KMEMLEAK=.*/CONFIG_HAVE_DEBUG_KMEMLEAK=n/' .config
sed -i 's/CONFIG_DEBUG_VIRTUAL=.*/CONFIG_DEBUG_VIRTUAL=n/' .config
sed -i 's/CONFIG_DEBUG_VM_PGTABLE=.*/CONFIG_DEBUG_VM_PGTABLE=n/' .config
# Désactiver les fonctionnalités de traçage non nécessaires
sed -i 's/CONFIG_FTRACE=.*/CONFIG_FTRACE=n/' .config
sed -i 's/CONFIG_FUNCTION_TRACER=.*/CONFIG_FUNCTION_TRACER=n/' .config
sed -i 's/CONFIG_FUNCTION_GRAPH_TRACER=.*/CONFIG_FUNCTION_GRAPH_TRACER=n/' .config
sed -i 's/CONFIG_STACK_TRACER=.*/CONFIG_STACK_TRACER=n/' .config
sed -i 's/CONFIG_TRACE_CLOCK=.*/CONFIG_TRACE_CLOCK=n/' .config
# Désactiver les fonctionnalités de débogage mémoire
sed -i 's/CONFIG_PAGE_POISONING=.*/CONFIG_PAGE_POISONING=n/' .config
sed -i 's/CONFIG_PAGE_EXTENSION=.*/CONFIG_PAGE_EXTENSION=n/' .config
sed -i 's/CONFIG_DEBUG_PAGE_REF=.*/CONFIG_DEBUG_PAGE_REF=n/' .config
# Désactiver les fonctionnalités de power management non essentielles
sed -i 's/CONFIG_PM_DEBUG=.*/CONFIG_PM_DEBUG=n/' .config
sed -i 's/CONFIG_PM_ADVANCED_DEBUG=.*/CONFIG_PM_ADVANCED_DEBUG=n/' .config
sed -i 's/CONFIG_PM_SLEEP_DEBUG=.*/CONFIG_PM_SLEEP_DEBUG=n/' .config
sed -i 's/CONFIG_PM_TRACE=.*/CONFIG_PM_TRACE=n/' .config
sed -i 's/CONFIG_PM_TRACE_RTC=.*/CONFIG_PM_TRACE_RTC=n/' .config
sed -i 's/CONFIG_ACPI_DEBUGGER=.*/CONFIG_ACPI_DEBUGGER=n/' .config
sed -i 's/CONFIG_ACPI_CONTAINER=.*/CONFIG_ACPI_CONTAINER=n/' .config
sed -i 's/CONFIG_ACPI_HOTPLUG_MEMORY=.*/CONFIG_ACPI_HOTPLUG_MEMORY=n/' .config
sed -i 's/CONFIG_ACPI_SBS=.*/CONFIG_ACPI_SBS=n/' .config
# Désactiver les fonctionnalités hotplug non essentielles
sed -i 's/CONFIG_HOTPLUG_PCI_PCIE=.*/CONFIG_HOTPLUG_PCI_PCIE=n/' .config
sed -i 's/CONFIG_HOTPLUG_PCI_CPCI=.*/CONFIG_HOTPLUG_PCI_CPCI=n/' .config
sed -i 's/CONFIG_HOTPLUG_PCI_SHPC=.*/CONFIG_HOTPLUG_PCI_SHPC=n/' .config
sed -i 's/CONFIG_MEMORY_HOTPLUG=.*/CONFIG_MEMORY_HOTPLUG=n/' .config
sed -i 's/CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=.*/CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=n/' .config
sed -i 's/CONFIG_MEMORY_HOTREMOVE=.*/CONFIG_MEMORY_HOTREMOVE=n/' .config
# Désactiver les fonctionnalités de monitoring hardware supplémentaires
sed -i 's/CONFIG_SENSORS_ACPI_POWER=.*/CONFIG_SENSORS_ACPI_POWER=n/' .config
sed -i 's/CONFIG_SENSORS_LM75=.*/CONFIG_SENSORS_LM75=n/' .config
sed -i 's/CONFIG_SENSORS_LM77=.*/CONFIG_SENSORS_LM77=n/' .config
sed -i 's/CONFIG_SENSORS_LM78=.*/CONFIG_SENSORS_LM78=n/' .config
sed -i 's/CONFIG_SENSORS_LM80=.*/CONFIG_SENSORS_LM80=n/' .config
sed -i 's/CONFIG_SENSORS_LM83=.*/CONFIG_SENSORS_LM83=n/' .config
sed -i 's/CONFIG_SENSORS_LM85=.*/CONFIG_SENSORS_LM85=n/' .config
sed -i 's/CONFIG_SENSORS_LM87=.*/CONFIG_SENSORS_LM87=n/' .config
# Désactiver les fonctionnalités NUMA non utilisées
sed -i 's/CONFIG_NUMA_BALANCING=.*/CONFIG_NUMA_BALANCING=n/' .config
sed -i 's/CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=.*/CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=n/' .config
sed -i 's/CONFIG_NUMA_EMU=.*/CONFIG_NUMA_EMU=n/' .config
# Désactiver les fonctionnalités de compatibilité supplémentaires
sed -i 's/CONFIG_COMPAT_32BIT_TIME=.*/CONFIG_COMPAT_32BIT_TIME=n/' .config
sed -i 's/CONFIG_COMPAT_FOR_U64_ALIGNMENT=.*/CONFIG_COMPAT_FOR_U64_ALIGNMENT=n/' .config
sed -i 's/CONFIG_COMPAT_NETLINK_MESSAGES=.*/CONFIG_COMPAT_NETLINK_MESSAGES=n/' .config
# Désactiver les fonctionnalités de débogage kernel supplémentaires
sed -i 's/CONFIG_DEBUG_SHIRQ=.*/CONFIG_DEBUG_SHIRQ=n/' .config
sed -i 's/CONFIG_DEBUG_OBJECTS=.*/CONFIG_DEBUG_OBJECTS=n/' .config
sed -i 's/CONFIG_DEBUG_OBJECTS_FREE=.*/CONFIG_DEBUG_OBJECTS_FREE=n/' .config
sed -i 's/CONFIG_DEBUG_OBJECTS_TIMERS=.*/CONFIG_DEBUG_OBJECTS_TIMERS=n/' .config
sed -i 's/CONFIG_DEBUG_OBJECTS_WORK=.*/CONFIG_DEBUG_OBJECTS_WORK=n/' .config
sed -i 's/CONFIG_DEBUG_OBJECTS_RCU_HEAD=.*/CONFIG_DEBUG_OBJECTS_RCU_HEAD=n/' .config
sed -i 's/CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=.*/CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=n/' .config
# Désactiver les fonctionnalités de performance monitoring inutiles
sed -i 's/CONFIG_HAVE_PERF_EVENTS_NMI=.*/CONFIG_HAVE_PERF_EVENTS_NMI=n/' .config
sed -i 's/CONFIG_HAVE_PERF_REGS=.*/CONFIG_HAVE_PERF_REGS=n/' .config
sed -i 's/CONFIG_HAVE_PERF_USER_STACK_DUMP=.*/CONFIG_HAVE_PERF_USER_STACK_DUMP=n/' .config
# Désactiver les fonctionnalités de crypto debug
sed -i 's/CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=.*/CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y/' .config
sed -i 's/CONFIG_CRYPTO_TEST=.*/CONFIG_CRYPTO_TEST=n/' .config
sed -i 's/CONFIG_CRYPTO_STATS=.*/CONFIG_CRYPTO_STATS=n/' .config
# Désactiver les fonctionnalités RCU debug
sed -i 's/CONFIG_RCU_CPU_STALL_INFO=.*/CONFIG_RCU_CPU_STALL_INFO=n/' .config
sed -i 's/CONFIG_RCU_TRACE=.*/CONFIG_RCU_TRACE=n/' .config
sed -i 's/CONFIG_RCU_EQS_DEBUG=.*/CONFIG_RCU_EQS_DEBUG=n/' .config
# Désactiver les fonctionnalités de journalisation supplémentaires
sed -i 's/CONFIG_PRINTK_TIME=.*/CONFIG_PRINTK_TIME=n/' .config
sed -i 's/CONFIG_BOOT_PRINTK_DELAY=.*/CONFIG_BOOT_PRINTK_DELAY=n/' .config
sed -i 's/CONFIG_DYNAMIC_DEBUG=.*/CONFIG_DYNAMIC_DEBUG=n/' .config
sed -i 's/CONFIG_DEBUG_INFO_DWARF4=.*/CONFIG_DEBUG_INFO_DWARF4=n/' .config
sed -i 's/CONFIG_DEBUG_INFO_BTF=.*/CONFIG_DEBUG_INFO_BTF=n/' .config
# Désactiver les fonctionnalités de profiling non essentielles
sed -i 's/CONFIG_PROFILING=.*/CONFIG_PROFILING=n/' .config
sed -i 's/CONFIG_KPROBES=.*/CONFIG_KPROBES=n/' .config
sed -i 's/CONFIG_OPTPROBES=.*/CONFIG_OPTPROBES=n/' .config
sed -i 's/CONFIG_KRETPROBES=.*/CONFIG_KRETPROBES=n/' .config
sed -i 's/CONFIG_HAVE_KPROBES=.*/CONFIG_HAVE_KPROBES=n/' .config
# Désactiver les fonctionnalités de virtualisation non essentielles
sed -i 's/CONFIG_XEN_BALLOON=.*/CONFIG_XEN_BALLOON=n/' .config
sed -i 's/CONFIG_XEN_SCRUB_PAGES=.*/CONFIG_XEN_SCRUB_PAGES=n/' .config
sed -i 's/CONFIG_XEN_DEV_EVTCHN=.*/CONFIG_XEN_DEV_EVTCHN=n/' .config
sed -i 's/CONFIG_XEN_BACKEND=.*/CONFIG_XEN_BACKEND=n/' .config
sed -i 's/CONFIG_XEN_GNTDEV=.*/CONFIG_XEN_GNTDEV=n/' .config
sed -i 's/CONFIG_XEN_GRANT_DEV_ALLOC=.*/CONFIG_XEN_GRANT_DEV_ALLOC=n/' .config
# Désactiver les fonctionnalités de diagnostic supplémentaires
sed -i 's/CONFIG_DETECT_HUNG_TASK=.*/CONFIG_DETECT_HUNG_TASK=n/' .config
sed -i 's/CONFIG_WQ_WATCHDOG=.*/CONFIG_WQ_WATCHDOG=n/' .config
sed -i 's/CONFIG_SCHED_DEBUG=.*/CONFIG_SCHED_DEBUG=n/' .config
sed -i 's/CONFIG_SCHED_STACK_END_CHECK=.*/CONFIG_SCHED_STACK_END_CHECK=n/' .config
# Désactiver les fonctionnalités de mémoire debug
sed -i 's/CONFIG_DEBUG_PAGEALLOC=.*/CONFIG_DEBUG_PAGEALLOC=n/' .config
sed -i 's/CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=.*/CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=n/' .config
sed -i 's/CONFIG_DEBUG_VM=.*/CONFIG_DEBUG_VM=n/' .config
sed -i 's/CONFIG_DEBUG_VM_PGFLAGS=.*/CONFIG_DEBUG_VM_PGFLAGS=n/' .config
sed -i 's/CONFIG_DEBUG_MEMORY_INIT=.*/CONFIG_DEBUG_MEMORY_INIT=n/' .config
# Désactiver les fonctionnalités de performance counter inutiles
sed -i 's/CONFIG_PERF_EVENTS_INTEL_RAPL=.*/CONFIG_PERF_EVENTS_INTEL_RAPL=n/' .config
sed -i 's/CONFIG_PERF_EVENTS_INTEL_UNCORE=.*/CONFIG_PERF_EVENTS_INTEL_UNCORE=n/' .config
sed -i 's/CONFIG_PERF_EVENTS_AMD_POWER=.*/CONFIG_PERF_EVENTS_AMD_POWER=n/' .config
# Désactiver les fonctionnalités de compatibilité supplémentaires
sed -i 's/CONFIG_COMPAT_OLD_SIGACTION=.*/CONFIG_COMPAT_OLD_SIGACTION=n/' .config
sed -i 's/CONFIG_IA32_AOUT=.*/CONFIG_IA32_AOUT=n/' .config
sed -i 's/CONFIG_X86_X32=.*/CONFIG_X86_X32=n/' .config
# Désactiver les fonctionnalités de sécurité redondantes
sed -i 's/CONFIG_SECURITY_DMESG_RESTRICT=.*/CONFIG_SECURITY_DMESG_RESTRICT=n/' .config
sed -i 's/CONFIG_SECURITY_PERF_EVENTS_RESTRICT=.*/CONFIG_SECURITY_PERF_EVENTS_RESTRICT=n/' .config
sed -i 's/CONFIG_SECURITY_NETWORK_XFRM=.*/CONFIG_SECURITY_NETWORK_XFRM=n/' .config
# Désactiver les fonctionnalités de débogage matériel
sed -i 's/CONFIG_EARLY_PRINTK=.*/CONFIG_EARLY_PRINTK=n/' .config
sed -i 's/CONFIG_EARLY_PRINTK_DBGP=.*/CONFIG_EARLY_PRINTK_DBGP=n/' .config
sed -i 's/CONFIG_DEBUG_RODATA_TEST=.*/CONFIG_DEBUG_RODATA_TEST=n/' .config
# Désactiver le debug qui est encore activé
sed -i 's/CONFIG_DEBUG_FS=y/CONFIG_DEBUG_FS=n/' .config
sed -i 's/CONFIG_DEBUG_FS_ALLOW_ALL=y/CONFIG_DEBUG_FS_ALLOW_ALL=n/' .config
# Désactiver les fonctionnalités de monitoring non nécessaires
sed -i 's/CONFIG_PROC_PAGE_MONITOR=n/CONFIG_PROC_PAGE_MONITOR=n/' .config
sed -i 's/CONFIG_PROC_CHILDREN=n/CONFIG_PROC_CHILDREN=n/' .config
sed -i 's/CONFIG_PROC_PID_ARCH_STATUS=n/CONFIG_PROC_PID_ARCH_STATUS=n/' .config
sed -i 's/CONFIG_PROC_CPU_RESCTRL=n/CONFIG_PROC_CPU_RESCTRL=n/' .config
# Désactiver les fonctionnalités de débogage non nécessaires
sed -i 's/CONFIG_DYNAMIC_DEBUG_CORE=y/CONFIG_DYNAMIC_DEBUG_CORE=n/' .config
sed -i 's/CONFIG_MAGIC_SYSRQ=y/CONFIG_MAGIC_SYSRQ=n/' .config
sed -i 's/CONFIG_SLUB_DEBUG=y/CONFIG_SLUB_DEBUG=n/' .config
sed -i 's/CONFIG_DEBUG_WX=y/CONFIG_DEBUG_WX=n/' .config
sed -i 's/CONFIG_GENERIC_PTDUMP=y/CONFIG_GENERIC_PTDUMP=n/' .config
sed -i 's/CONFIG_PTDUMP_CORE=y/CONFIG_PTDUMP_CORE=n/' .config
# Désactiver les fonctionnalités de traçage non essentielles
sed -i 's/CONFIG_TRACING=y/CONFIG_TRACING=n/' .config
sed -i 's/CONFIG_EVENT_TRACING=y/CONFIG_EVENT_TRACING=n/' .config
sed -i 's/CONFIG_CONTEXT_SWITCH_TRACER=y/CONFIG_CONTEXT_SWITCH_TRACER=n/' .config
sed -i 's/CONFIG_UPROBE_EVENTS=y/CONFIG_UPROBE_EVENTS=n/' .config
sed -i 's/CONFIG_PROBE_EVENTS=y/CONFIG_PROBE_EVENTS=n/' .config
# Désactiver les fonctionnalités de monitoring non nécessaires
sed -i 's/CONFIG_THERMAL_STATISTICS=y/CONFIG_THERMAL_STATISTICS=n/' .config
sed -i 's/CONFIG_STACKTRACE=y/CONFIG_STACKTRACE=n/' .config
sed -i 's/CONFIG_LOCK_DEBUGGING_SUPPORT=y/CONFIG_LOCK_DEBUGGING_SUPPORT=n/' .config
# Désactiver les fonctionnalités graphiques inutiles
sed -i 's/CONFIG_FB=y/CONFIG_FB=n/' .config
sed -i 's/CONFIG_FRAMEBUFFER_CONSOLE=y/CONFIG_FRAMEBUFFER_CONSOLE=n/' .config
sed -i 's/CONFIG_VGA_CONSOLE=y/CONFIG_VGA_CONSOLE=n/' .config
# Désactiver les fonctionnalités de comptabilité non essentielles
sed -i 's/CONFIG_TASK_XACCT=y/CONFIG_TASK_XACCT=n/' .config
sed -i 's/CONFIG_TASK_IO_ACCOUNTING=y/CONFIG_TASK_IO_ACCOUNTING=n/' .config
# Désactiver les fonctionnalités d'hibernation non nécessaires
sed -i 's/CONFIG_HIBERNATION=y/CONFIG_HIBERNATION=n/' .config
sed -i 's/CONFIG_PM_STD_PARTITION=""/CONFIG_PM_STD_PARTITION=n/' .config
# Désactiver les fonctionnalités de débogage matériel
sed -i 's/CONFIG_HARDLOCKUP_DETECTOR=y/CONFIG_HARDLOCKUP_DETECTOR=n/' .config
sed -i 's/CONFIG_SOFTLOCKUP_DETECTOR=y/CONFIG_SOFTLOCKUP_DETECTOR=n/' .config
# Désactiver les fonctionnalités ACPI non nécessaires
sed -i 's/CONFIG_ACPI_BUTTON=y/CONFIG_ACPI_BUTTON=n/' .config
sed -i 's/CONFIG_ACPI_THERMAL=y/CONFIG_ACPI_THERMAL=n/' .config
sed -i 's/CONFIG_ACPI_EXTLOG=y/CONFIG_ACPI_EXTLOG=n/' .config
sed -i 's/CONFIG_ACPI_ADXL=y/CONFIG_ACPI_ADXL=n/' .config
# Désactiver les fonctionnalités d'entrée inutiles
sed -i 's/CONFIG_INPUT_MISC=y/CONFIG_INPUT_MISC=n/' .config
sed -i 's/CONFIG_INPUT_PCSPKR=y/CONFIG_INPUT_PCSPKR=n/' .config
sed -i 's/CONFIG_SERIO=y/CONFIG_SERIO=n/' .config
sed -i 's/CONFIG_SERIO_I8042=y/CONFIG_SERIO_I8042=n/' .config
sed -i 's/CONFIG_SERIO_LIBPS2=y/CONFIG_SERIO_LIBPS2=n/' .config
sed -i 's/CONFIG_SERIO_RAW=y/CONFIG_SERIO_RAW=n/' .config
# Désactiver les fonctionnalités LED non essentielles
sed -i 's/CONFIG_LEDS_TRIGGER_DISK=y/CONFIG_LEDS_TRIGGER_DISK=n/' .config
sed -i 's/CONFIG_LEDS_TRIGGER_CPU=y/CONFIG_LEDS_TRIGGER_CPU=n/' .config
sed -i 's/CONFIG_LEDS_TRIGGER_PANIC=y/CONFIG_LEDS_TRIGGER_PANIC=n/' .config
# Désactiver les fonctionnalités de surveillance thermique superflues
sed -i 's/CONFIG_THERMAL_WRITABLE_TRIPS=y/CONFIG_THERMAL_WRITABLE_TRIPS=n/' .config
sed -i 's/CONFIG_THERMAL_GOV_FAIR_SHARE=y/CONFIG_THERMAL_GOV_FAIR_SHARE=n/' .config
sed -i 's/CONFIG_THERMAL_GOV_BANG_BANG=y/CONFIG_THERMAL_GOV_BANG_BANG=n/' .config
sed -i 's/CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y/CONFIG_THERMAL_GOV_POWER_ALLOCATOR=n/' .config
# Désactiver les fonctionnalités USB non nécessaires
sed -i 's/CONFIG_USB_DEFAULT_PERSIST=y/CONFIG_USB_DEFAULT_PERSIST=n/' .config
sed -i 's/CONFIG_USB_DYNAMIC_MINORS=y/CONFIG_USB_DYNAMIC_MINORS=n/' .config
# Désactiver les fonctionnalités RTC superflues
sed -i 's/CONFIG_RTC_NVMEM=y/CONFIG_RTC_NVMEM=n/' .config
sed -i 's/CONFIG_RTC_INTF_DEV=y/CONFIG_RTC_INTF_DEV=n/' .config
# Désactiver les fonctionnalités de performance non essentielles
sed -i 's/CONFIG_KALLSYMS_ALL=y/CONFIG_KALLSYMS_ALL=n/' .config
sed -i 's/CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y/CONFIG_KALLSYMS_ABSOLUTE_PERCPU=n/' .config
# Désactiver les fonctionnalités de comptabilité système superflues
sed -i 's/CONFIG_BSD_PROCESS_ACCT=y/CONFIG_BSD_PROCESS_ACCT=n/' .config
sed -i 's/CONFIG_BSD_PROCESS_ACCT_V3=y/CONFIG_BSD_PROCESS_ACCT_V3=n/' .config
sed -i 's/CONFIG_TASKSTATS=y/CONFIG_TASKSTATS=n/' .config
sed -i 's/CONFIG_TASK_DELAY_ACCT=y/CONFIG_TASK_DELAY_ACCT=n/' .config
# Désactiver les fonctionnalités de débogage mémoire supplémentaires
sed -i 's/CONFIG_MEMORY_FAILURE=y/CONFIG_MEMORY_FAILURE=n/' .config
sed -i 's/CONFIG_USERFAULTFD=y/CONFIG_USERFAULTFD=n/' .config
# Désactiver les fonctionnalités de virtualisation non utilisées
sed -i 's/CONFIG_VHOST_MENU=y/CONFIG_VHOST_MENU=n/' .config
# Désactiver les fonctionnalités de surveillance système non essentielles
sed -i 's/CONFIG_ENERGY_MODEL=y/CONFIG_ENERGY_MODEL=n/' .config
sed -i 's/CONFIG_POWERCAP=y/CONFIG_POWERCAP=n/' .config
# Désactiver les fonctionnalités de cryptographie non essentielles
sed -i 's/CONFIG_CRYPTO_MD5=y/CONFIG_CRYPTO_MD5=n/' .config
sed -i 's/CONFIG_CRYPTO_CRC64_ROCKSOFT=y/CONFIG_CRYPTO_CRC64_ROCKSOFT=n/' .config
sed -i 's/CONFIG_CRYPTO_BLAKE2S_X86=y/CONFIG_CRYPTO_BLAKE2S_X86=n/' .config
sed -i 's/CONFIG_CRYPTO_CRCT10DIF=y/CONFIG_CRYPTO_CRCT10DIF=n/' .config
# Désactiver les fonctionnalités de compression non utilisées
sed -i 's/CONFIG_DECOMPRESS_BZIP2=y/CONFIG_DECOMPRESS_BZIP2=n/' .config
sed -i 's/CONFIG_DECOMPRESS_LZO=y/CONFIG_DECOMPRESS_LZO=n/' .config
sed -i 's/CONFIG_DECOMPRESS_LZ4=y/CONFIG_DECOMPRESS_LZ4=n/' .config
sed -i 's/CONFIG_DECOMPRESS_ZSTD=y/CONFIG_DECOMPRESS_ZSTD=n/' .config
# Désactiver les fonctionnalités de polices non nécessaires
sed -i 's/CONFIG_FONTS=y/CONFIG_FONTS=n/' .config
sed -i 's/CONFIG_FONT_8x8=y/CONFIG_FONT_8x8=n/' .config
sed -i 's/CONFIG_FONT_8x16=y/CONFIG_FONT_8x16=n/' .config
sed -i 's/CONFIG_FONT_TER16x32=y/CONFIG_FONT_TER16x32=n/' .config
# Désactiver les fonctionnalités réseau non essentielles
sed -i 's/CONFIG_IP_MROUTE=y/CONFIG_IP_MROUTE=n/' .config
sed -i 's/CONFIG_IP_PIMSM_V1=y/CONFIG_IP_PIMSM_V1=n/' .config
sed -i 's/CONFIG_IP_PIMSM_V2=y/CONFIG_IP_PIMSM_V2=n/' .config
sed -i 's/CONFIG_IPV6_MROUTE=y/CONFIG_IPV6_MROUTE=n/' .config
sed -i 's/CONFIG_IPV6_PIMSM_V2=y/CONFIG_IPV6_PIMSM_V2=n/' .config
sed -i 's/CONFIG_NET_FC=y/CONFIG_NET_FC=n/' .config
sed -i 's/CONFIG_NETLABEL=y/CONFIG_NETLABEL=n/' .config
# Désactiver les fonctionnalités de bus non utilisées
sed -i 's/CONFIG_PCIEPORTBUS=y/CONFIG_PCIEPORTBUS=n/' .config
sed -i 's/CONFIG_PCIE_PME=y/CONFIG_PCIE_PME=n/' .config
sed -i 's/CONFIG_PCIE_DPC=y/CONFIG_PCIE_DPC=n/' .config
sed -i 's/CONFIG_PCIE_PTM=y/CONFIG_PCIE_PTM=n/' .config
# Désactiver les fonctionnalités de gestion d'énergie superflues
sed -i 's/CONFIG_CPU_FREQ_STAT=y/CONFIG_CPU_FREQ_STAT=n/' .config
sed -i 's/CONFIG_CPU_IDLE_GOV_LADDER=y/CONFIG_CPU_IDLE_GOV_LADDER=n/' .config
sed -i 's/CONFIG_INTEL_IDLE=y/CONFIG_INTEL_IDLE=n/' .config
# Désactiver les fonctionnalités de stockage non utilisées
sed -i 's/CONFIG_BLK_DEV_INTEGRITY_T10=y/CONFIG_BLK_DEV_INTEGRITY_T10=n/' .config
sed -i 's/CONFIG_BLK_DEV_ZONED=y/CONFIG_BLK_DEV_ZONED=n/' .config
sed -i 's/CONFIG_BLK_WBT=y/CONFIG_BLK_WBT=n/' .config
sed -i 's/CONFIG_BLK_SED_OPAL=y/CONFIG_BLK_SED_OPAL=n/' .config
# Désactiver les fonctionnalités de sécurité redondantes
sed -i 's/CONFIG_SECURITY_APPARMOR_INTROSPECT_POLICY=y/CONFIG_SECURITY_APPARMOR_INTROSPECT_POLICY=n/' .config
sed -i 's/CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y/CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=n/' .config
sed -i 's/CONFIG_EVM_ATTR_FSUUID=y/CONFIG_EVM_ATTR_FSUUID=n/' .config
# Désactiver les fonctionnalités de virtualisation non utilisées
sed -i 's/CONFIG_XEN_512GB=y/CONFIG_XEN_512GB=n/' .config
sed -i 's/CONFIG_XEN_SAVE_RESTORE=y/CONFIG_XEN_SAVE_RESTORE=n/' .config
# Désactiver les fonctionnalités de débogage matériel
sed -i 's/CONFIG_EDAC_SKX=y/CONFIG_EDAC_SKX=n/' .config
sed -i 's/CONFIG_EDAC_I10NM=y/CONFIG_EDAC_I10NM=n/' .config
# Désactiver les fonctionnalités de gestion de la mémoire non essentielles
sed -i 's/CONFIG_MEMORY_ISOLATION=y/CONFIG_MEMORY_ISOLATION=n/' .config
sed -i 's/CONFIG_HUGETLBFS=y/CONFIG_HUGETLBFS=n/' .config
sed -i 's/CONFIG_TRANSPARENT_HUGEPAGE=y/CONFIG_TRANSPARENT_HUGEPAGE=n/' .config
# Désactiver les fonctionnalités de périphériques non utilisées
sed -i 's/CONFIG_MACINTOSH_DRIVERS=y/CONFIG_MACINTOSH_DRIVERS=n/' .config
sed -i 's/CONFIG_MAC_EMUMOUSEBTN=y/CONFIG_MAC_EMUMOUSEBTN=n/' .config
sed -i 's/CONFIG_CHROME_PLATFORMS=y/CONFIG_CHROME_PLATFORMS=n/' .config
sed -i 's/CONFIG_SURFACE_PLATFORMS=y/CONFIG_SURFACE_PLATFORMS=n/' .config
# Désactiver les fonctionnalités de bus supplémentaires
sed -i 's/CONFIG_SSB_POSSIBLE=y/CONFIG_SSB_POSSIBLE=n/' .config
sed -i 's/CONFIG_BCMA_POSSIBLE=y/CONFIG_BCMA_POSSIBLE=n/' .config
# Désactiver les fonctionnalités de pin control non nécessaires
sed -i 's/CONFIG_PINCTRL_CEDARFORK=y/CONFIG_PINCTRL_CEDARFORK=n/' .config
sed -i 's/CONFIG_PINCTRL_LEWISBURG=y/CONFIG_PINCTRL_LEWISBURG=n/' .config
sed -i 's/CONFIG_PINCTRL_SUNRISEPOINT=y/CONFIG_PINCTRL_SUNRISEPOINT=n/' .config
sed -i 's/CONFIG_PINCTRL_TIGERLAKE=y/CONFIG_PINCTRL_TIGERLAKE=n/' .config
# Désactiver les fonctionnalités GPIO superflues
sed -i 's/CONFIG_GPIO_SYSFS=y/CONFIG_GPIO_SYSFS=n/' .config
sed -i 's/CONFIG_GPIO_CDEV=y/CONFIG_GPIO_CDEV=n/' .config
sed -i 's/CONFIG_GPIO_CDEV_V1=y/CONFIG_GPIO_CDEV_V1=n/' .config
# Désactiver les fonctionnalités de gestion d'alimentation non essentielles
sed -i 's/CONFIG_POWER_SUPPLY=y/CONFIG_POWER_SUPPLY=n/' .config
sed -i 's/CONFIG_POWER_SUPPLY_HWMON=y/CONFIG_POWER_SUPPLY_HWMON=n/' .config
# Désactiver les fonctionnalités d'horloge non nécessaires
sed -i 's/CONFIG_HPET_EMULATE_RTC=y/CONFIG_HPET_EMULATE_RTC=n/' .config
sed -i 's/CONFIG_CLKEVT_I8253=y/CONFIG_CLKEVT_I8253=n/' .config
# Désactiver les fonctionnalités de stockage supplémentaires
sed -i 's/CONFIG_BLK_DEV_FD=y/CONFIG_BLK_DEV_FD=n/' .config
sed -i 's/CONFIG_BLK_DEV_SR=y/CONFIG_BLK_DEV_SR=n/' .config
sed -i 's/CONFIG_CDROM=y/CONFIG_CDROM=n/' .config
# Désactiver les fonctionnalités de virtualisation supplémentaires
sed -i 's/CONFIG_VMGENID=y/CONFIG_VMGENID=n/' .config
sed -i 's/CONFIG_VIRTIO_CONSOLE=y/CONFIG_VIRTIO_CONSOLE=n/' .config
# Désactiver les fonctionnalités ACPI supplémentaires
sed -i 's/CONFIG_ACPI_SPCR_TABLE=y/CONFIG_ACPI_SPCR_TABLE=n/' .config
sed -i 's/CONFIG_ACPI_LPIT=y/CONFIG_ACPI_LPIT=n/' .config
sed -i 's/CONFIG_ACPI_PRMT=y/CONFIG_ACPI_PRMT=n/' .config
# Désactiver les fonctionnalités de performance supplémentaires
sed -i 's/CONFIG_SCHED_MC_PRIO=y/CONFIG_SCHED_MC_PRIO=n/' .config
sed -i 's/CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y/CONFIG_CPU_FREQ_GOV_SCHEDUTIL=n/' .config
# Désactiver les fonctionnalités réseau supplémentaires
sed -i 's/CONFIG_NET_EMATCH=y/CONFIG_NET_EMATCH=n/' .config
sed -i 's/CONFIG_DCB=y/CONFIG_DCB=n/' .config
sed -i 's/CONFIG_MPLS=y/CONFIG_MPLS=n/' .config
sed -i 's/CONFIG_NET_SWITCHDEV=y/CONFIG_NET_SWITCHDEV=n/' .config
# Désactiver les fonctionnalités de sécurité redondantes
sed -i 's/CONFIG_SECURITY_YAMA=y/CONFIG_SECURITY_YAMA=n/' .config
sed -i 's/CONFIG_SECURITY_LANDLOCK=y/CONFIG_SECURITY_LANDLOCK=n/' .config
# Désactiver les fonctionnalités de débogage supplémentaires
sed -i 's/CONFIG_BLK_DEBUG_FS=y/CONFIG_BLK_DEBUG_FS=n/' .config
sed -i 's/CONFIG_BLK_DEBUG_FS_ZONED=y/CONFIG_BLK_DEBUG_FS_ZONED=n/' .config
# Désactiver les fonctionnalités de surveillance système supplémentaires
sed -i 's/CONFIG_THERMAL_NETLINK=y/CONFIG_THERMAL_NETLINK=n/' .config
sed -i 's/CONFIG_HWMON=y/CONFIG_HWMON=n/' .config
make olddefconfig
make -j$(nproc) bindeb-pkg
cd ..
dpkg -i linux-image-*.deb linux-headers-*.deb
update-grub
reboot
Additionner les poids des fichiers trouvés :
ls -lh /boot/vmlinuz-$(uname -r)
ls -lh /boot/initrd.img-$(uname -r)
du -sh /lib/modules/$(uname -r)
Ici : 20,40 Mo ! ça commence à devenir intéressant non ?
Abaissement du niveau de logs lors du démarrage :
sed -i 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT=0/' /etc/default/grub
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=0 splash"/' /etc/default/grub
update-grub
sed -i 's/#LogLevel=info/LogLevel=emerg/' /etc/systemd/system.conf
sed -i 's/#ShowStatus=yes/ShowStatus=no/' /etc/systemd/system.conf
Et le remplacer par ce que vous voulez :
cp /etc/issue /etc/issue.BAK
echo "Bienvenue sur ce serveur sécurisé" > /etc/issue
printf "\n" >> /etc/issue
ATTENTION ICI : Supprimer tout affichage du hostname et du login au démarrage (impossible de s'authentifier via la console proposée par l'hébergeur. Uniquement via SSH)
Il s'agît d'une sécurité importante pour une VM hébergée ! Désactiver l'accès à une console physique !
mkdir -p /etc/systemd/system/getty@tty1.service.d/
cat > /etc/systemd/system/getty@tty1.service.d/override.conf << EOF
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noissue --noclear --skip-hostname %I \$TERM
EOF
systemctl daemon-reload
systemctl restart getty@tty1
Lister d'abord les services :
systemctl list-unit-files --state=enabled
Désactiver les services inutiles habituels :
systemctl disable bluetooth.service
systemctl disable wpa_supplicant.service
systemctl disable apt-daily.timer
systemctl disable apt-daily-upgrade.timer
systemctl disable man-db.timer
systemctl disable dpkg-db-backup.timer
systemctl disable e2scrub_all.timer
systemctl disable fstrim.timer
systemctl disable anacron.service
systemctl disable anacron.timer
systemctl disable console-setup.service
systemctl disable keyboard-setup.service
Désactiver les services de journalisation non essentiels :
systemctl disable systemd-journal-flush.service
echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf
update-initramfs -u
rm -rf /tmp/* ; rm -rf /var/tmp/*
reboot
Pour ne pas le supprimer :
uname -r
dpkg --list | grep linux-image
apt autoremove --purge
Si certains noyaux restent, les supprimer manuellement :
apt remove --purge linux-image-6.1.0-26-amd64 -y
apt remove --purge linux-image-6.1.112-dbg -y
apt remove --purge linux-image-6.1.0-10-amd64 -y
apt remove --purge linux-image-6.1.0-25-amd64 -y
apt autoclean -y
apt clean -y
apt-get purge build-essential libncurses-dev bison flex libssl-dev libelf-dev git -y
apt purge build-essential bc kmod cpio flex libncurses5-dev libelf-dev libssl-dev dwarves bison -y
update-grub
# Vérifier qu'il ne reste plus que le noyau actuel
dpkg --list | grep linux-image
# Redémarrer
reboot
apt update
apt upgrade -y
apt autoremove -y
apt autoclean -y
apt clean -y
apt upgrade -y
-----------------------------------------------------
| Résultats du benchmark système |
-----------------------------------------------------
| CPU : 2046.56 events/sec
| Mémoire : 102400.00 MiB/sec
| I/O Random R/W : 8502.09 reads/sec
| I/O Sequential Read : 132.85 MiB/sec
| I/O Sequential Write : 88.56 MiB/sec
|-----------------------------------------------------
| Note globale : 78.662800 %
-----------------------------------------------------
-----------------------------------------------------
| Résultats du benchmark système |
-----------------------------------------------------
| CPU : 2041.26 events/sec
| Mémoire : 102400.00 MiB/sec
| I/O Random R/W : 9066.11 reads/sec
| I/O Sequential Read : 141.66 MiB/sec
| I/O Sequential Write : 94.44 MiB/sec
|-----------------------------------------------------
| Note globale : 80.484220 %
-----------------------------------------------------
-----------------------------------------------------
| Résultats du benchmark système |
-----------------------------------------------------
| CPU : 2051.45 events/sec
| Mémoire : 102400.00 MiB/sec
| I/O Random R/W : 8838.76 reads/sec
| I/O Sequential Read : 138.11 MiB/sec
| I/O Sequential Write : 92.07 MiB/sec
|-----------------------------------------------------
| Note globale : 79.750100 %
-----------------------------------------------------
-----------------------------------------------------
| Résultats du benchmark système |
-----------------------------------------------------
| CPU : 2031.20 events/sec
| Mémoire : 102400.00 MiB/sec
| I/O Random R/W : 8317.11 reads/sec
| I/O Sequential Read : 129.95 MiB/sec
| I/O Sequential Write : 86.64 MiB/sec
|-----------------------------------------------------
| Note globale : 78.065480 %
-----------------------------------------------------
CPU : 2042.62 events/sec
Mémoire : 102400.00 MiB/sec
I/O Random R/W : 8681.02 reads/sec
I/O Sequential Read : 135.64 MiB/sec
I/O Sequential Write : 90.43 MiB/sec
Note globale : 79.24 %
CPU : 2032.78 events/sec
Mémoire : 102063.84 MiB/sec
I/O Random R/W : 6515.88 reads/sec
I/O Sequential Read : 101.81 MiB/sec
I/O Sequential Write : 67.87 MiB/sec
Note globale : 72.08 %
CPU : +0,48 %
Mémoire : +0,33 %
I/O Random R/W : +33,23 %
I/O Sequential Read : +33,23 %
I/O Sequential Write : +33,24 %
Note globale : +9,94 %
Les améliorations CPU et mémoire sont faibles, mais les différences en ce qui concerne les opérations IO sont absolument phénoménales.
Notre optimisation est bien plus performante que l'image originale.
Ajouter à /etc/sysctl.conf :
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
kernel.sched_migration_cost_ns=5000000
kernel.sched_autogroup_enabled=0
Dans /etc/security/limits.conf :
* soft nofile 65535
* hard nofile 65535
Il n'y a pas de swap dans les images debian sur Kamatera...
Mieux vaut en créer un, même basique (simple fichier !). Libre à vous de faire une nouvelle partition dédiée.
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
Félicitations ! Vous avez réussi à optimiser votre noyau Debian et à améliorer significativement les performances de votre serveur, en particulier pour les opérations I/O avec une amélioration de plus de 33%.
Le poids du noyau est passé de 440 Mo à environ 20 Mo, et la note globale de performance a augmenté de près de 10%.