Eléments d'optimisation du partitionnement

Voilà, je suis en train de me refaire une machine perso, tranquille, et j’essayes de la construire optimale.
Je sais que le partitionnement est affaire de contexte, mais je me suis dit que ça ne serait pas mal de discuter un peu des critères, et de séparer les “on dit” des vraies optimisations.
Voici donc comment je partitionne et pourquoi, et n’hésitez donc pas à critiquer, et surtout confirmer/infirmer ce que je dit.

Dans mon cas, je dispose d’un disque vierge IDE de 80Go, et j’ai déja des partitions de données multimédia fat32 ailleurs ainsi qu’un petit disque annexe me servant actuellement de /usr/src/ amovible pour plusieurs machines.
Pour simplifier mettons que le disque soit hda.
Je dispose d’1 Go de RAM.

Dans la suite, je décide de mettre des partitions un peu n’importe où sur le disque. Pour faire ça facilement, j’utilises qtparted, plutot que de me prendre la tête avec les cylindres et les blocs sous fdisk, mais il y a surement d’autres outils.

1/j’ai cru lire quelquepart que l’accés aux partitions primaires était plus rapides que les partitions logiques extended, je vais faire trois primaires, et une extended. On verra aprés ce que je mets sur l’extended.

2/j’ai cru lire que l’accés au disque était plus rapide en fin de disque qu’au début, mais à priori les mouvements du bras jouant un rôle important (cf infra.), il vaut mieux concentrer autour du swap les partitions à acés rapide, et, le swap étant d’un accés fréquent, essayer de minimiser la distance entre le swap et les autres partitions.
Je vais donc positionner mon swap au milieu du disque, et si ma stratègie ne me le permet pas tout à fait, je repousserais à la fin du disque.

3/j’ai lu que la quantité optimale de swap était de 2.5 fois la taille de la RAM. le manuel de mkswap annonce à 2 Go la quantité utile sur 386 avec du swap “new style” (cf. infra): je mettrais donc 2 Go de swap.

4/Je souhaites protèger / contre les débordements de certains répertoires (/home, /var, /temp), et accélèrer particulièrement l’accés à d’autres (/usr). Je vais donc les isoler, et en examinant l’utilisation dans ces répertoire sur ma vieille debian surchargée, je m’apercois (avec ‘sudo du -s /*’) qu’en enlevant toutes ces arbos, ce qui reste à la racine ne dépasse pas 2 Go, l’essentiel (~ 7 Go) étant dans /usr. Je décides donc d’une partition / de 10Go et d’une /usr de 15 Go.

5/comme je ne vois pas ce qui nécessite un accés rapide dans / (puisque j’en sors /var et /temp), je décide de la mettre en tête du disque.

6/par contre, /usr, qui pour lequel je souhaites accèlérer l’accés aux executables, va passer en fin de disque, juste aprés le swap.

7/ces deux partitions ne contiennent que peu de données critiques (mon /etc va être sauvegardé régulièrement), et ne sont écrites que quand j’installe un logiciel. Je vais donc me passer d’entretenir un journal, et accepter les checkdisk en cas de reboot, pour accélèrer les accés et baisser l’usage de la mêmoire: je les formate en ext2.

Avec ces deux partitions, ce qui reste est forcément une extended:

=> partition / ext2 de 10Go sur hda1
=> partition extended sur hda2 avec l’espace libre entre hda1 et hda3
=> partition hda3 de swap de 2.5 Go
=> partition /usr ext2 de 15Go sur hda4

bon, maintenant, l’extended:
le swap n’est pas vraiment centré, mais en positionnant sur l’extended /var juste à coté, et tmp pas trop loin non plus, le reste étant dédié à /home, je respecte à peu prés le regroupement.

Alors ça va donner quelquechose comme ça (j’affinerais plus tard le choix ext2/ext3, on peut toujours choisir plus tard de changer):
=> partition /home ext3 sur hda5 avec l’espace laissé libre par /var et /tmp
=> partition /tmp ext2 de (soyons large, j’encode) 15 Go
=> partition /var ext2 de 10 Go
et voilà, aprés structuration et formatage sous qtparted, et passage sous fdisk pour bien réeordonner les partitions, activer hda1, et simplement réecrire la table de partition (c’est bizarre, je fais pas trop confiance aux tables écrites par parted/qtparted), aprés ça disais je, une petite “labellisation”, et hop:[code]
emeraude:~$ sudo tune2fs -L / /dev/hdb1
tune2fs 1.39-WIP (31-Dec-2005)
emeraude:~$ sudo mkswap -L swap /dev/hdb3
Initialisation de la version de l’espace de swap 1, taille = 2146791 kB
LABEL=swap, UUID=32ba066d-4130-4e75-9ccd-583c314c7cbd
emeraude:~$ sudo tune2fs -L /usr /dev/hdb4
tune2fs 1.39-WIP (31-Dec-2005)
emeraude:~$ sudo tune2fs -L /home /dev/hdb5
tune2fs 1.39-WIP (31-Dec-2005)
emeraude:~$ sudo tune2fs -L /tmp /dev/hdb6
tune2fs 1.39-WIP (31-Dec-2005)
emeraude:~$ sudo tune2fs -L /var /dev/hdb7
tune2fs 1.39-WIP (31-Dec-2005)
emeraude:~$ sudo fdisk -l /dev/hdb

Disque /dev/hdb: 80.0 Go, 80026361856 octets
255 têtes, 63 secteurs/piste, 9729 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets

Périphérique Amorce Début Fin Blocs Id Système
/dev/hdb1 * 1 1305 10482381 83 Linux
/dev/hdb2 1306 7510 49841662+ 5 Extended
/dev/hdb3 7511 7771 2096482+ 82 Linux swap / Solaris
/dev/hdb4 7772 9729 15727635 83 Linux
/dev/hdb5 1306 4246 23623519+ 83 Linux
/dev/hdb6 4247 6204 15727603+ 83 Linux
/dev/hdb7 6206 7510 10482412+ 83 Linux
[/code]
bon, je passe à l’install depuis ma distrib courante, mais c’est une autre histoire.

Pour la partition swap, j’ai entendu pour ma part que le double de la ram suffisait mais seulement si c’est inférieur a 512 mo de RAM.

Ce qui donnerais donc pour toi je pense une partition de 1.5 go qui devrais largement suffire.

Je me base pour cela sur le rapport
512mo -> 2fois la ram
au dessus en rajoutant la moitié c’est je pense suffisant

En tout cas merci pour ce post cela m’ouvre certaines perspectives :slightly_smiling:
Actuellement je suis sur 2 partitions 1 / et 1 swap
Comme j’ai quelques problemes avec et que je veux réduire mes partitions windows(dual boot) je pense que je vais voir pour sortir ce qui dérange :slightly_smiling:
Mais tous ca c’est pour un autre fil :slightly_smiling:

Salut,
6/je ne suis pas certain que la racine ne doive pas être en primaire, donc je décide de l’y mettre.
Moi je suis certain du contraire, les miennes sont en hda5

=> partition hda4 de swap de 2.5 Go
Inutile d’aller plus loin que 1 Go, elle ne serait pas utilisée.

2/j’ai cru lire que l’accés au disque était plus rapide en fin de disque qu’au début. Je vais donc positionner mon swap à la fin du disque.
Le plus lent dans un accès disque étant le déplacement du bras, je mets la swap au centre des autres pour limiter la distance :blush:

[quote=“Ashgenesis”]Pour la partition swap, j’ai entendu pour ma part que le double de la ram suffisait mais seulement si c’est inférieur a 512 mo de RAM.
[/quote]

Moi aussi, j’ai “entendu” un truc dans ce goût-là…
Mais je ne vais pas répéter pour une fois :wink:
Tu n’as qu’à suivre une courbe qui croit toujours mais de moins en moins : x^0,5 (une variante de …)

Mince ! Bon, alors je te propose : une combinaison linéaire de ln(x)

Ca dépend si Matt travaille lentement, le bras aura le tps de revenir (à la fin ?) du disque.
Place les partitions que tu utilises le plus dans une même zone près de la swap

Alors les mouvements de bras, oui, mais avec le “predictive read” des dernier noyaux qui regroupe les lectures à faire par groupes “géographiquement proches”, avant de les effectuer par groupe, est ce que ça ne minimise pas l’impact de ce critère ?
Bon, alors partant de l’idée que cette idée de mettre le swap au centre, et les partoches à accés rapide autour, je vais de ce pas ajuster/complèter mon post de démarrage.
Par ailleurs:[quote=“man mkswap”]In the new style swap area this is precisely what is done. The maximum useful size of a swap area now depends on the architecture. It is roughly 2GiB on i386, PPC, m68k, ARM, 1GiB on sparc, 512MiB on mips, 128GiB on alpha and 3TiB on sparc64.[/quote]
pour ce qui est de cette limitation à un 1 Go, d’ou te viens cette limite ?

Salut,
Par expérience, et à moins d’être multi-bras je n’ai jamais réussi a avoir besoin de plus de 1 Go, mais je n’éprouve pas le besoin de faire tourner plusieurs sessions, ni de lancer plusieurs occurences de Mozilla, je me contente des onglets :blush:

ouais, mais moi je regarde des DVD sur ma télé, et je fais parfois aussi le traitement de mes photos, ou un encodage, en même tps. Il y a des moments ou je monte un peu en charge, tt de même…

Salut,
Je n’ai pas d’expérience en ce qui concerne le traitement des images mais je sais que celà est gourmand. Quelques top te confirmerons :smiley:

[quote=“ggoodluck47”]Salut,
Par expérience, et à moins d’être multi-bras je n’ai jamais réussi a avoir besoin de plus de 1 Go, mais je n’éprouve pas le besoin de faire tourner plusieurs sessions, ni de lancer plusieurs occurences de Mozilla, je me contente des onglets :blush:[/quote]
Alors essaye d’installer la dernière version Oracle, la 10g. Et tu te rendras compte qu’il te faudra un strict minimum de 1,6 GB de RAM :open_mouth: pour pouvoir seulement dèmarrer l’iinstallation … :laughing:
Ca m’est arrivè l’autre jour, j’avais taiilé mon swap trop court et j’ai dû simuler un bout de swap dans un fichier pour pouvoir installer la bête …

Salut,
J’adore ta démonstration qui part d’un cas particulier pour en faire un raisonnement général :blush:
La solution que tu as employée est celle que préconise les “gens qui savent” et qui confirme qu’a cas exceptionnel il faut une solution exceptionelle :laughing:

[quote=“jabba”][quote=“ggoodluck47”]Salut,
Par expérience, et à moins d’être multi-bras je n’ai jamais réussi a avoir besoin de plus de 1 Go, mais je n’éprouve pas le besoin de faire tourner plusieurs sessions, ni de lancer plusieurs occurences de Mozilla, je me contente des onglets :blush:[/quote]
Alors essaye d’installer la dernière version Oracle, la 10g. Et tu te rendras compte qu’il te faudra un strict minimum de 1,6 GB de RAM :open_mouth: pour pouvoir seulement dèmarrer l’iinstallation … :laughing:
Ca m’est arrivè l’autre jour, j’avais taiilé mon swap trop court et j’ai dû simuler un bout de swap dans un fichier pour pouvoir installer la bête …[/quote]j’ai eu des compil aussi, que j’avais lancées avec des make -j un peu trop nombreux qui ont duré des journées entières en me bouffant swapfile sur swapfile les uns aprés les autres sans que je saches ou il pouvait monter. Je ne me souviens plus pourquoi je n’etais pas en mesure d’arrèter la compilation, mais j’en ai rajouté :slightly_smiling:

[quote=“ggoodluck47”]Salut,
J’adore ta démonstration qui part d’un cas particulier pour en faire un raisonnement général :blush:
La solution que tu as employée est celle que préconise les “gens qui savent” et qui confirme qu’a cas exceptionnel il faut une solution exceptionelle :laughing:[/quote]

Ce n’est pas du tout un cas exceptionnel ! J’ai donné cet exemple parce que ça vient de m’arriver, et que j’en suis resté ébahi…
Sinon, pas besoin d’installer un monstre tel que Oracle,Il suffit de faire un petit peu de multimédia, oh rien de bien méchant:

Encodage divX
acquisition Firewire
Traitement d’image

Bref, il n’y a pas besoin “de savoir” et pas besoin de tomber dans l’exceptionnel pour mettre ta machine à plat…
Mais bon, tu fais ta vie, hein … Si tu dis que tu vis très bien avec ton GB de swap, je te crois sur parole ! :laughing:

Si tu as sorti /var /tmp /usr /home, quel est l’interêt d’un / à 10 Go? Même si tu mets bcp de noyaux différents, je pense qu’un 2 Go suffit, non?

UP!
J’aimerais la réponse de Matt, je suis p-ê passer à côté d’un truc…

[quote=“mathiasm”]UP!
J’aimerais la réponse de Matt, je suis p-ê passer à côté d’un truc…[/quote]de /etc /lib /opt ?
Non, tu as raison: ma partition / est utilisée à 2% (163 Mo), j’ai surdimensionné.

On m’avait suggéré de mettre le swap en dernière position pour des problèmes de sécurité: le swap est fréquement utilisé et en cas de problème de coupure électrique, la zone autour du swap a le plus de chance d’être touchée donc on éloigne le swap des données sensibles

MAIS

  1. ça date
  2. Sur ma machine, le swap n’est jamais utilisée ou presque

donc ces arguments me paraissent obsolètes.

J’ai constaté une fois sur une machine 2.2 avec une grosse arrivée de spams plus virus un gros besoin de swap et là effectivemenqt, la machine a semble-t-il voulu libérer entièrement sa mémoire RAM, n’a pas pu et le tout s’est mal terminé: processus tués les uns après les autres jusqu’à ce que named soit tué et là le serveur est tombé en carafe. Les 2,5 fois la RAM correspondrait à cette situation d’urgence et j’avais effectivement trouvé ce chiffre de 2,5 dans un post de Linus lui même. Cependant depuis, de l’eau a coulé sous les ponts, la RAM a explosée en taille et le Swap est très raremant utilisé (180K sur 1G en cemoment sur ma machine). Je pense que mettre 2,5G de swap pour une machine ayant 1G de RAM me parait excessif sauf si tu as le projet de faire des applications réellement gourmandes. Je n’ai pas réussi à trouver de conseils sur ce point depuis longtemps.

Ne pas faire de partition /boot me parait une bonne idée, 10G me parait beaucoup, 5G devrait suffire mais bon…

oui, tout ça me parait bien, je n’ai pas d’opinion sur l’emplacement des partitions sur le disque.

J’ai toujours constaté que /usr et /tmp étaient trop petits sur mes machines, tes chiffres me paraissent très bien de ce coté.

Au bilan, je verrais juste / un peu gros, et la question du swap sur laquelle je n’ai pas de réponse (pas d’idées précises serait plus juste :slightly_smiling: )

[quote=“MattOTop”][quote=“mathiasm”]UP!
J’aimerais la réponse de Matt, je suis p-ê passer à côté d’un truc…[/quote]de /etc /lib /opt ?
Non, tu as raison: ma partition / est utilisée à 2% (163 Mo), j’ai surdimensionné.[/quote]
/opt n’existe pas par défaut en debian, sauf si tu installes le LSB…
Donc les softs en plus vont dans /usr. A moins d’avoir toutes les librairies de la terre dans les 3 dernières versions, / à 2Go, ça me parait pas mal (5 si on est très prudent, comme françois, mais je trouve quand même ça trop gros.Edit: sauf si LSB => /opt, mais dans ce cas, /opt mérite une partoche )

OK. Pas de problême. On est d’accord, mais à l’époque, je n’avais rien testé.

pas de sushi :slight_smile:

[quote=“mathiasm”]pas de sushi :slightly_smiling:[/quote]Sinon, n’hesites pas à donner d’autres critères, ce fil, j’aurais pû le mettre dans pause café, il etait surtout là pour provoquer des discution et montrer quelques points à prendre en compte.