Quelle taille pour /tmp ?

Quelle taille pour /tmp ? - Installation - Linux et OS Alternatifs

Marsh Posté le 07-09-2007 à 21:47:57    

Bonjour à tous,
 
Je me pose aujourd'hui la question de la taille de ma partition /tmp, et je compte sur vos expérience pour m'aider à optimiser ma config. ;)  
 
Ma distrib : Archlinux (que je conseille à tous ! :love: )
Matos : Centrino 1.5 GHz, 2 Go RAM
 
Aujourd'hui (et depuis plus d'un an maintenant), j'ai une partition dédiée à /tmp qui fait 3.7 Go, taille totalement mise au pif !
 
J'ai remarqué que lorsque je fais un 'df', il n'y a que qq centaines de ko dedans.
A noter aussi que j'ai un tmpfs, qui occupe 1 Go en RAM.
 
Mon but est donc de récupérer un peu d'espace disque en réduisant cette partition /tmp. A combien je peux la descendre ?  
 
A noter aussi que pour des raisons de performances, je désactive mon swap (3.7 Go) lorsque je lance une machine virtuelle, tout en continuant une utilisation classique, surf, mail, Gimp, etc...
 
Merci de me faire part de vos commentaires z'éclairés !  :p  
 
Cactus.

Reply

Marsh Posté le 07-09-2007 à 21:47:57   

Reply

Marsh Posté le 07-09-2007 à 22:33:24    

perso je n'ai qu'un tmpfs, qui fait donc, la taille occupé par /tmp (12Ko présentement) et qui peut grimper jusqu'à moitié de la RAM (option par défaut). Et ça marche très bien comme ça.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 07-09-2007 à 22:42:10    

Ben le pb, c'est que je ne comprends pas trop comment retranscrire ça dans mon fstab... Je vire la ligne correspondant à /tmp, et je ne laisse que tmpfs ?
actuellement, voici ce que donne df :

Code :
  1. $ df
  2. Sys. de fich.        1K-blocs       Occupé Disponible Capacité Monté sur
  3. /dev/hda7             10490040   5811416   4678624  56% /
  4. tmpfs                  1037840         0   1037840   0% /dev/shm
  5. /dev/hda1             15727068   9004860   6722208  58% /home
  6. /dev/hda9             24201112  20398404   3802708  85% /opt
  7. /dev/hda10             3825952       332   3670116   1% /tmp
  8. /dev/hda11              295561     85390    194911  31% /var
  9. /dev/hda12               31077     18407     11066  63% /boot
 

Et voici mon fstab :

tmpfs                  /dev/shm      tmpfs     defaults            0      0
/dev/hda10         /tmp             ext2     defaults 0 1


Message édité par cactus le 07-09-2007 à 22:44:20
Reply

Marsh Posté le 08-09-2007 à 09:54:00    

là, ce n'est pas ton /tmp qui est dans un tmpfs, c'est /dev/shm
 
pour mettre /tmp en tmpfs voilà ce que ça donne :

/dev/tmpfs /tmp tmpfs defaults,nosuid,nodev,noexec 0 0


 


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 08-09-2007 à 10:15:00    

J'avoue ne pas saisir la différence entre tmpfs et shm... :/

Reply

Marsh Posté le 08-09-2007 à 10:20:26    

ben tmpfs c'est un système de fichier et /dev/shm, c'est le device que tu montes.

 

tu peux utiliser tmpfs pour d'autres montages (/tmp notamment)


Message édité par Mjules le 08-09-2007 à 10:20:46

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 08-09-2007 à 10:28:50    

si tmpfs est un système de fichier et /dev/shm le device, comment se fait-il qu'il existe un /dev/tmpfs ? :??:

 

EDIT : ah ben non, je n'ai pas de /dev/tmpfs sur ma distrib... que faire alors ?

Message cité 2 fois
Message édité par cactus le 08-09-2007 à 10:29:46
Reply

Marsh Posté le 08-09-2007 à 10:40:08    

moi non plus, il n'apparait pas, mais ça fonctionne quand même


Message édité par Mjules le 08-09-2007 à 10:40:23

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 08-09-2007 à 11:00:03    

ok, merci, j'essaierai et reviendrai donner des nouvelles (probablement dans le WE). ;)

Reply

Marsh Posté le 08-09-2007 à 14:59:17    

Mjules a écrit :

là, ce n'est pas ton /tmp qui est dans un tmpfs, c'est /dev/shm
 
pour mettre /tmp en tmpfs voilà ce que ça donne :

/dev/tmpfs /tmp tmpfs defaults,nosuid,nodev,noexec 0 0


 


Je reprends ce que tu as dit, Mjules...
 
1. si comme moi /dev/tmpfs n'exite pas chez toi, comment se fait-il que tu aies cette ligne dans ton fstab ?
 
2. Sur le forum de ma distrib, on me conseille carrément de supprimer ma ligne /tmp.  
Comme il me reste celle du/dev/shm, est-ce suffisant ?  
Mon but est que tmp soit finalement pris en RAM (2 Go), voire swap (3.7 Go), mais pas qu'un tmp soit créé sur ma partition / .
 
Merci de m'éclairer sur le sujet... ;)

Reply

Marsh Posté le 08-09-2007 à 14:59:17   

Reply

Marsh Posté le 08-09-2007 à 15:02:46    

Mjules a écrit :

là, ce n'est pas ton /tmp qui est dans un tmpfs, c'est /dev/shm
 
pour mettre /tmp en tmpfs voilà ce que ça donne :

/dev/tmpfs /tmp tmpfs defaults,nosuid,nodev,noexec 0 0


 


j'ai simplement cela moi.

none on /tmp type tmpfs (rw)


---------------
Intermittent du GNU
Reply

Marsh Posté le 08-09-2007 à 15:08:34    

ah oui, ça marche aussi comme ça (testé à l'instant)

 

ce qui donne dans fstab :

none /tmp tmpfs defaults,nosuid,nodev,noexec 0 0



Message édité par Mjules le 08-09-2007 à 15:09:01

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 08-09-2007 à 15:09:42    

si tu supprimes ta ligen concernant /tmp, celui ci restera simplement dans /tmp c'est à dire sur la partition qui contient /


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 08-09-2007 à 15:57:28    

cactus a écrit :

si tmpfs est un système de fichier et /dev/shm le device, comment se fait-il qu'il existe un /dev/tmpfs ? :??:  
 
EDIT : ah ben non, je n'ai pas de /dev/tmpfs sur ma distrib... que faire alors ?


Quand tu mets dans ta fstab:

/dev/hda3   /home   ext3 defaults 0 0

/dev/hda3 est le device
/home est le point de montage
ext3 est le système de fichiers.
 
Ici c'est à peu près la même chose :
tmpfs est le système de fichiers
/dev/shm ou /tmp sont les points de montage de ton système de fichiers tmpfs
le système de fichiers tmpfs n'est pas associé à un device particulier (c'est aussi le cas de proc par exemple), donc on s'en fout de la première colonne du fstab. Par convention, on met un nom de device qui reprend le nom du système de fichiers, mais on pourrait mettre n'importe quoi...

none  /tmp tmpfs ...
tmpfs /tmp tmpfs ...
toto  /tmp tmpfs ...


---------------
TriScale innov
Reply

Marsh Posté le 08-09-2007 à 22:21:57    

ok, donc si j'ai bien compris, dès qu'on écrit tmpfs en filesystem, ça part directement en RAM, quel que soit le device mentionné (none, toto, etc...). Et donc dans mon cas, il me faut mettre :

none  /tmp tmpfs ...


Exact ? ou pas ?

Reply

Marsh Posté le 08-09-2007 à 22:57:31    

ouais, en remplaçant '...' par les options de montage que tu veux.


---------------
TriScale innov
Reply

Marsh Posté le 09-09-2007 à 06:01:39    

cactus a écrit :

si tmpfs est un système de fichier et /dev/shm le device, comment se fait-il qu'il existe un /dev/tmpfs ? :??:

 

Pour la petite histoire: tmpfs est (comme son nom l'indique) un système de fichier temporaire (en RAM, ici).

 

/dev/shm, c'est un device type tmpfs, qui est un espace utilisé par certaines libs (et le noyau) pour créer des objets qui ont besoin de mémoire partagée (shared memory) entre processus, comme sem_open (semaphores nommés) ou shm_open (pour ouvrir des pages de mémoire partagée).


Message édité par Gf4x3443 le 09-09-2007 à 06:02:11
Reply

Marsh Posté le 09-09-2007 à 11:55:39    

j'ai pas de ligne avec /dev/shm dans mon fstab, c'est un problème ? (je n'ai jamais constaté le moindre soucis mais bon on sait jamais)


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 09-09-2007 à 12:27:53    

Oui et non. La plupart des programmes utilisent la libpthread pour les synchronisations, et elle ne requiert pas de /dev/shm.

 

En revanche, si tu as des programmes qui utilisent des zones de mémoires nommées ou des sémaphores nommées (POSIX), alors oui, ca va devenir un problème.

 

Extrait page man de shm_open:

 
Citation :

NOTES
       Ces  fonctions  sont fournies depuis la glibc 2.2. Les programmes qui les invoquent doivent fournir l'argument
       -lrt lors de la compilation avec cc afin d'avoir  l'édition  des  liens  avec  la  bibliothèque  nécessaire
       (temps-réel).

 

      POSIX  ne  précise pas le comportement de la combinaison O_RDONLY et O_TRUNC.  Sous Linux, la troncature aura
       lieu -- cela n'est pas nécessairement le cas sous d'autres Unix.

 

      L'implémentation sous Linux 2.4 des objets de mémoire  partagée  POSIX  utilise  un  système  de  fichiers
       dédiés, monté en principe sous /dev/shm.

 

Généralement, la mémoire partagée se fait avec des mmap (et un descripteur egal à -1), pas des shm_open (sauf pour des nommés). Surtout que certains BSD, comme netbsd, ne fournissent pas shm_open par défaut.


Message édité par Gf4x3443 le 09-09-2007 à 12:28:31
Reply

Marsh Posté le 09-09-2007 à 13:36:03    

franceso a écrit :

ouais, en remplaçant '...' par les options de montage que tu veux.


ben je pesais juste remplacer /dev/hda11 par none... ;)
 
Et merci à tous les autres pour cette discussion très intéressante. ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed