Remplacer SLAB par SLUB ?

Bonsoir à tous!

Je suis en train de recompiler un noyau et je me pose une question toute bête. Et si je remplaçais l’allocateur mémoire SLAB par SLUB ? (D’après quelques recherches il serait déjà choisi par défaut), cela dit dans mon fichier de configuration (2.6.26-2) c’est bien SLAB qui était coché.

Il serait également plus performant. Si c’est bel et bien le cas pourquoi n’est-il pas activé par défaut (sauf erreur de ma part) ? N’est-il pas (plus) trop tôt pour l’utiliser ?

J’arrive à trouver des détails quant à l’architecture de SLAB mais pour SLUB en revanche, pas grand chose.

J’avoue ne jamais avoir eu l’idée de regarder de ce côté là pour les compilations précédentes.

Merci :laughing:

Salut,

Je ne suis pas expert linux, mais concernant ces 2 allocateurs, leur principale différence tiens dans à faculté a allouer plus ou moins bien de petit ou grand bloc de mémoire.

A vérifier mais :
SLAB : Est privilégié si tes applis doivent allouer régulièrement de petit bloc de mémoire. (Exemple plein de petit tableau de char pas long char *str[5]; ) SLAB est capable de ne “pas gacher” de la memoire sur les petits blocs.

SLUB : Quand a lui est un peu plus “généraliste”, il s’auto-adapte en fonction du besoin.
Bien entendu l’auto-adaptation demande de la ressource.

Donc typiquement on dit SLUB est moins rapide que SLAB ce qui est complètement faux, car chacun répond a un besoin précis et est le plus efficace dans son contexte.
Dans 99% des cas SLUB reste plus efficace que SLAB natif dans une utilisation bureautique.

Molux

Ben le fait est que le SLAB a donné particulièrement satisfaction pendant des années, et que celui qui a écrit le SLUB l’a fait pour corriger des problêmes >qui risquaient d’arriver un jour< sur des machines avec plusieurs milliers de processeurs.
Par ailleurs, les benchmarks que j’ai vu rapportent de faramineuses augmentations de perfs de l’ordre de 0.5% facile sur du traffic réseau.
Donc oui, le SLUB est sensé être mieux, mais le SLAB est rodé blindé, alors il va falloir d’autres améliorations du SLUB et du temps de rôdage avant qu’il soit sélectionné en standard comme allocateur.
Enfin de ce que j’ai cru lire.

Merci de vos réponses :smt002

J’en sais un peu plus désormais, bon je vais compiler un noyau a part sur mon poste principal avec SLUB et voir ce que ça donne. J’ose espérer que les résultats ne soient pas catastrophiques :slightly_smiling:

Sinon pour info’, dans le 2.9.29 il y en a un nouveau du nom de SLQB.