2 votes

Quelles sont les différences entre les images de noyau "générique" et "serveur" fournies par Ubuntu ?

En particulier, je me demande s'il existe des correctifs ou des ajustements de configuration concernant la taille du cache disque dans l'édition serveur. Je travaille sur un petit système (256M RAM), et j'aimerais expérimenter en gardant la taille du cache disque plus petite afin qu'il y ait plus de mémoire disponible pour les applications.

J'ai trouvé cette page sur le site d'Ubuntu, qui ne répond pas à mes questions et ne concerne pas la version 9.04.

4voto

Jeff Hillman Points 3333

Je suppose que la différence réside principalement dans le fait que le noyau du serveur n'est pas préemptif, contrairement au noyau de l'ordinateur de bureau. C'est un peu compliqué :

Préempter, c'est écarter le processus A de l'unité centrale au profit du processus B, en termes simples. Les utilisateurs finaux attendent un système réactif. Par conséquent, un ordinateur de bureau utilisera un noyau préemptif, qui peut favoriser l'interaction avec l'utilisateur au détriment des programmes en cours d'exécution. Cela signifie que le noyau peut "botter" un programme d'arrière-plan, favorisant un programme utilisateur en lui accordant un temps d'exécution sur l'unité centrale, avant même que la tranche de temps du programme d'arrière-plan ne soit terminée et avant que le programme d'arrière-plan ne cède l'unité centrale.

Un serveur, en revanche, est conçu pour exécuter quelques programmes en arrière-plan (comme Apache) et non pour interagir avec un utilisateur. Par conséquent, un serveur utilisera un noyau non préemptif et sera donc optimisé pour l'exécution de programmes en arrière-plan.

Vous pouvez lire un peu plus sur la configuration du noyau Ubuntu aquí . L'article date d'il y a quelques années, mais je suis presque sûr que le bit de préemption est toujours l'une des plus grandes différences entre les noyaux d'Ubuntu pour les ordinateurs de bureau et les serveurs. Une autre différence est le choix de l'ordonnanceur d'E/S : le serveur utilise l'ordonnanceur de délais, l'ordinateur de bureau le CFQ. Il est vrai que j'ai tiré ces informations de l'article en question.

En ce qui concerne le cache du disque, Linux fait du cache. Point final. Linux utilisera volontiers tous de votre RAM en tant que cache disque. Peu importe que vous ayez 512 Mo de RAM ou 1 Go de RAM : Linux l'utilisera s'il le juge nécessaire. À ma connaissance, il n'est pas possible de régler ce problème.

Sachez également qu'il n'y a pas d'inconvénient à cela : au fur et à mesure que vos programmes nécessitent plus de RAM, moins de RAM sera utilisée pour le cache. Le fait que votre VM ne dispose que de 256 Mo et qu'une partie de cette mémoire soit utilisée comme cache n'entravera pas les performances de vos programmes : si les programmes demandent de la RAM, ils l'obtiendront instantanément, au prix d'une diminution de la mémoire cache. C'est une bonne chose TM . Encore une fois, la mémoire utilisée comme cache est toujours disponible pour vos applications. Elle sera récupérée instantanément et donnée à une application gourmande en mémoire si le noyau le juge approprié. L'utilisation d'un autre noyau ne changera rien à cela.

3voto

jammus Points 1796

Il semble que les différences soient principalement liées à l'horloge, au pae et au xen.

--- config-2.6.28-15-generic    2009-09-09 05:56:49.000000000 -0700
+++ config-2.6.28-15-server 2009-09-09 06:13:24.000000000 -0700
@@ -3659,7 +3659,7 @@
 CONFIG_UWB_WHCI=m
 CONFIG_UWB_WLP=m
 CONFIG_V4L_USB_DRIVERS=y
-CONFIG_VERSION_SIGNATURE="Ubuntu 2.6.28-15.52-generic"
+CONFIG_VERSION_SIGNATURE="Ubuntu 2.6.28-15.52-server"
 CONFIG_VETH=m
 CONFIG_VFAT_FS=m
 # CONFIG_VGACON_SOFT_SCROLLBACK is not set
@@ -3932,34 +3932,41 @@
 # CONFIG_ZONE_DMA32 is not set
 CONFIG_ZONE_DMA_FLAG=1
 #
-# Config options for config.generic automatically generated by splitconfig.pl
+# Config options for config.server automatically generated by splitconfig.pl
 #
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-CONFIG_DCA=m
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_DMADEVICES=y
-# CONFIG_DMATEST is not set
-CONFIG_DMA_ENGINE=y
-CONFIG_HIGHMEM4G=y
-# CONFIG_HIGHMEM64G is not set
-CONFIG_HZ=250
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
-CONFIG_IGB_DCA=y
-CONFIG_INTEL_IOATDMA=m
-CONFIG_IXGBE_DCA=y
-# CONFIG_LGUEST is not set
-# CONFIG_LGUEST_GUEST is not set
-CONFIG_M586=y
-# CONFIG_M686 is not set
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NET_DMA=y
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-# CONFIG_PREEMPT_NONE is not set
-CONFIG_PREEMPT_VOLUNTARY=y
-# CONFIG_RESOURCES_64BIT is not set
-CONFIG_X86_ALIGNMENT_16=y
-CONFIG_X86_E_POWERSAVER=m
-CONFIG_X86_F00F_BUG=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+# CONFIG_DEFAULT_CFQ is not set
+CONFIG_DEFAULT_DEADLINE=y
+CONFIG_DEFAULT_IOSCHED="deadline"
+# CONFIG_HIGHMEM4G is not set
+CONFIG_HIGHMEM64G=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_HZ=100
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+# CONFIG_M586 is not set
+CONFIG_M686=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_RESOURCES_64BIT=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_DEBUGCTLMSR=y
+# CONFIG_X86_DS is not set
+# CONFIG_X86_E_POWERSAVER is not set
+CONFIG_X86_PAE=y
+CONFIG_X86_TSC=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_XEN=y
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_BLKDEV_FRONTEND=m
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_XEN_FBDEV_FRONTEND=m
+CONFIG_XEN_KBDDEV_FRONTEND=m
+CONFIG_XEN_MAX_DOMAIN_MEMORY=8
+CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_SAVE_RESTORE=y
+CONFIG_XEN_SCRUB_PAGES=y

1voto

Pablo Venturino Points 1660

J'ai découvert une chose importante en essayant d'utiliser plus de 2 Go de mémoire vive sur mon ordinateur portable, qui fonctionnait sous Ubuntu 32 bits avec un noyau de bureau. Le remplacement du noyau de bureau par un noyau serveur a activé le PAE, ce qui lui a permis d'adresser plus de mémoire. Finalement, j'ai fini par mettre Ubuntu 64 bits à la place.

1voto

wallyqs Points 1056

Une mise à jour puisque cela a changé dans Ubuntu 12.04 Precise :

Depuis la version 12.04, il n'y a pas de différence de noyau entre Ubuntu Desktop et Ubuntu Server puisque linux-image-server a été fusionné avec linux-image-generic.

Fuente: https://help.ubuntu.com/community/ServerFaq

Des discussions à ce sujet sont disponibles sur le site : https://lists.ubuntu.com/archives/kernel-team/2011-October/017471.html

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X