Bon système de fichiers pour / tmp?

31

Je pense avoir / tmp sur sa propre partition ... quel serait un bon système de fichiers pour le formater?

La raison pour laquelle je demande, c'est parce que les données stockées dans / tmp ne sont pas permanentes, donc je n'ai pas besoin de journalisation, d'un index de fantaisie ou quoi que ce soit.

Nathan Osman
la source

Réponses:

27

Je trouve parfois que passer /tmpà ram ( tmpfs) est la meilleure solution (en particulier sur mes configurations qui utilisent beaucoup de choses d'E / S gourmandes en disque - MySQL, etc.) si vous avez suffisamment de RAM pour l'alimenter.

Marco Ceppi
la source
2
J'ai 2 Go de RAM, ce n'est donc probablement pas une option.
Nathan Osman du
2
En fait, cela devrait être beaucoup de RAM. / tmp n'est pas utilisé généralement que beaucoup avec l' utilisation normale de votre système (quel qu'il soit).
joschi
3
tmpfs utilisera swap s'il le faut - donc votre espace de swap peut faire le double usage de / tmp, pas besoin d'allouer d'espace supplémentaire.
gbroiles
@George Quelle est la taille de votre partition / tmp?
Marco Ceppi
1
@George, c'est une taille de partition assez grande pour /tmp- sur mon bureau, j'utilise au mieux 12 Mo, bien que sur mes serveurs, cela /tmppuisse devenir fou lorsque les clients font des choses stupides dans MySQL et les langages de script qui /tmpdeviennent beaucoup plus gros. La chose brillante avec tmpfs est qu'il ne prendra pas seulement 64 Mo de RAM, ce n'est qu'un plafond dur. tmpfs évolue à mesure que plus d'espace est nécessaire - vous ne consommez donc dans tmpfs que ce dont vous avez besoin à ce moment-là.
Marco Ceppi
25

Il y a plusieurs bons choix ici:

  1. tmpfs : est un système de fichiers qui stocke ses fichiers dans la RAM. Cela ne signifie pas que le système de fichiers va manger toute votre RAM. Au lieu de cela, il ne prend que la quantité dont il a vraiment besoin. Habituellement, seuls quelques Mo sont nécessaires. Si vous allez l'utiliser, ajoutez une ligne comme: none /tmp tmpfs size=64M,mode=1777 0 0à votre /etc/fstab. Vous pouvez changer la sizevaleur que vous aimez. Si vous pensez à un moment donné qu'il est trop peu, vous pouvez utiliser mountpour augmenter la taille: mount -t tmpfs tmpfs /tmp -o size=128M,mode=1777,remount. La taille sera augmentée en place sans supprimer les fichiers existants.
  2. ext2 / 3 : Vous avez dit dans votre question que vous n'aviez pas besoin de fonctionnalités sophistiquées. Cependant, je conseillerais d'utiliser un journal. Parce que si vous utilisez ext2 et que vous en avez un assez grand /tmp, sa vérification prendra un certain temps. ext3 démarre plus rapidement dans de nombreux cas. Par conséquent, je suggère d'utiliser le journalisation.
  3. ext4 , reiserfs etc .: Certains logiciels utilisent /tmppour stocker de grandes quantités de petits fichiers. Donc, dans certains cas, il n'y a plus de blocs libres et le système de fichiers est plein. ext4 et reiserfs stockent également les fichiers d'une manière différente. Il peut donc être judicieux de les utiliser pour votre compte /tmp.

Si votre ordinateur fonctionne depuis longtemps, il est judicieux de supprimer les fichiers inutilisés dans /tmp. tmpreaperest une solution qui fait cela pour vous.

Cependant, mon premier choix serait d'utiliser tmpfs.

qbi
la source
La première option avec / etc / fstab s'applique-t-elle également à l'aide de systemd?
Smile4ever
1
@ Smile4ever Yes-- /etc/fstabfait partie de util-linux, donc il sera présent sur n'importe quel système Linux quel que soit le système init utilisé.
villapx
7

Si vous ne voulez pas qu'il mange de la RAM, je l'exécuterais simplement en ext2 . Aucune raison de manger le petit coup de performance de la journalisation pour un système de fichiers dont vous ne vous souciez pas (ne devriez pas) vous soucier des redémarrages.

En fait, grattez cela, vous devriez probablement utiliser ext4 et désactiver son journal, il devrait être plus rapide qu'ext2. Formatez-le ext4 et collez-le fstabavec l'option de montage data=writeback.

Nicholas Knight
la source
6

L'utilisation tmpfsdevrait convenir à vos besoins, à condition que vous disposiez d'une RAM adéquate .

Cela étant dit ... quelque chose qui devrait être envisagé en ce qui concerne l'utilisation d'un ramdisk pour /tmp(cela provient d'un ancien article ailleurs ):

  • Est-ce que / tmp devrait être sur une zone de disque réel ou autorisé à être implémenté essentiellement sur la zone SWAP (ou tmpfs)?

Quand il est très utilisé, c'est une tentation - "nous mettrons / tmp dans un disque RAM, cela accélérera l'accès, et quand le système redémarrera / s'arrêtera, il n'y a rien à nettoyer". Cependant, si vous songez à implémenter l'espace temporaire comme un disque RAM qui sera échangé, je considérerais les ramifications de l'utilisation de l'espace d'échange de votre système par d'autres programmes. Si le swap est là comme une forme de «débordement d'urgence» lorsque le système est dans une situation désespérée et en a besoin, la dernière chose dont vous avez besoin est d'avoir l'espace de swap consommé par un processus d'emballement remplissant / tmp, consommant de la mémoire, provoquant une pression sur le Sous-système VM à échanger sur le disque. Entre l'activité de swap,seek()

Avery Payne
la source
5

L'utilisation d'ext4 avec des options de montage spécifiques devrait convenir. Utilisez les options de montage suivantes:

barrier=0 : Significantly improves file write operations in some scenarios
noatime : Don't update file last access time, you don't need this on /tmp files and it should help with write operations performance.
João Pinto
la source
ajouter également nodiratime
Weboide
noatime inclut nodiratime
zvolkov
3

Je suis content avec ext4. Vous pouvez jouer avec certaines options de montage si vous souhaitez le modifier ou utiliser tmpfs si vous avez beaucoup de RAM.

Michał Šrajer
la source
2

En réponse à ceux qui demandent pourquoi vous voudriez une partition / tmp séparée, je suis sûr qu'il y a plusieurs raisons, comme certains l'ont déjà dit, mais l'une que je trouve particulièrement intéressante aujourd'hui est que si vous exécutez / sur un SSD, vous voulez minimiser les écritures sur ce lecteur, donc déplacer / tmp est une bonne idée car c'est une zone du système de fichiers qui a tendance à changer beaucoup.

Matt Smith
la source
0

Je pense que tmpfs pourrait être une mauvaise option car généralement / tmp est accessible en écriture pour que tout le monde puisse le remplir et s'il se remplit, il vous prendra toute la mémoire et votre serveur ralentira à une analyse

Christian DeKonink
la source
Je pense que définir une taille maximale raisonnable pour tmpfs et avoir un espace d'échange suffira.
Olathe