ย้าย / tmp ไปที่ RAM


16

ฉันพยายามย้าย/tmpไปที่ RAM และเชื่อฟังแนวปฏิบัติที่ดี:

  • /var/tmpไม่ควรอยู่ในtmpfsเพราะมันจะต้องอยู่รอดได้เรียบ

  • ไม่เมานท์/tmpแบบสแตนด์อะโลนtmpfsแต่พึ่งพา/dev/shmหรือ/run/shm

อย่างไรก็ตามสิ่งต่าง ๆ มีการเปลี่ยนแปลงระหว่าง 2.6 และ 3.2 เมล็ด:

เปลี่ยนการกำหนดค่าและค่าเริ่มต้นของระบบไฟล์ tmpfs

เมื่อวันที่ 3.2 เคอร์เนลใช้ในRAMTMP=yes/etc/default/tmpfs

คำถามของฉันคือฉันจะบรรลุเป้าหมายนี้ด้วยเมล็ดที่มีอายุมากกว่าได้อย่างไร

ตัวเลือกของฉันคือหรือจะแก้ไข / etc / fstab ไม่ได้:

mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp

มีอะไรที่เหมือนกับRAMTMPเมล็ด 2.6 หรือไม่?


1
tmpfsถือว่าเป็นอันตราย อาหารสมอง.
sr_

8
@sr_ ขออภัยฉันไม่เห็นด้วยอย่างยิ่งกับบทความที่เชื่อมโยง /tmpสามารถและควรจะใช้สำหรับไฟล์ชั่วคราวนั่นคือจุดรวมของมัน /tmpไม่ควรเอาตัวรอดจากการรีบู๊ต (ใช้/var/tmpเพื่อการนี้) และใครที่ประกอบด้วยอีเมลขนาดครึ่งหนึ่งของ RAM + swap (โดยไม่บันทึก)
Marco

@Marco แน่ใจว่าฉันแค่โยนในสิ่งที่ฉันคิดว่าเกี่ยวข้อง
sr_

บริบทเพิ่มเติม: fedoraproject.org/wiki/Features/tmp-on-tmpfs
Nemo

คำตอบ:


19

คุณจะได้ไม่ต้องทำทุกอย่างที่คุณก็สามารถติด/tmpเป็นtmpfsโดยใช้บรรทัดเช่นต่อไปนี้ใน/etc/fstab:

tmpfs /tmp tmpfs mode=1777,nosuid,nodev 0 0

คุณยังสามารถใช้งานได้ (แต่โปรดจำไว้ว่าสิ่งที่อยู่ใน/tmpระบบไฟล์ปัจจุบันของคุณจะไม่สามารถเข้าถึงได้ยกเว้นผ่านทาง inode และ file descriptors ที่เปิดอยู่ในปัจจุบันดังนั้นคุณควรทำสิ่งนี้โดยแก้ไข/etc/fstabและรีบูตเครื่อง):

mount -o mode=1777,nosuid,nodev -t tmpfs tmpfs /tmp

โปรดทราบว่าtmpfsสามารถสลับ ถ้าคุณต้องการอย่างแท้จริงระบบแฟ้ม RAM ramfsเท่านั้นการใช้งาน


คริสประเด็นของฉันคือ "แนวปฏิบัติที่ดีที่สุด" นักพัฒนาใช้การสนับสนุนแบบดั้งเดิมเพื่อเชื่อมต่อ / tmp บน ... / shm; ฉันอ่านมันจะดีกว่าที่จะใช้ tmpfs เดียวกันอีกครั้ง
Massimo

3
@Massimo ความคิดเห็นของฉันคือการปฏิบัติที่ดีที่สุดคือไม่ผูกติด มันเพิ่มความซับซ้อนที่ไม่จำเป็น
Chris Down

5
@Massimo คุณกำลังค้นหา 'แนวทางปฏิบัติที่ดีที่สุด' อยู่ที่ไหน เหตุผลเดียวที่ฉันเห็นการติดตั้ง/tmpเนื่องจาก tmpfs เป็นเพราะตอนนี้คุณมีระบบไฟล์ tmpfs 2 ระบบที่สามารถเติมและใช้หน่วยความจำได้มากกว่า ( /tmpและ/dev/shm) แต่ถ้าคุณกังวลเกี่ยวกับการเติมเมาท์ 2 tmpfs มากขึ้นคุณสามารถลดขนาดสูงสุดของการเมานต์ tmpfs ได้
Patrick

@ChrisDown สิ่งที่ไม่ดีเกี่ยวกับการผูกติด? การมี tmpfs เพียงอันเดียวอาจทำให้เรื่องง่ายขึ้นใช่มั้ย
CMCDragonkai

2
@CMCDragonkai Bind mounts เป็นอะไร แต่เรียบง่ายภายในพวกเขามาพร้อมกับ caveats ที่ไม่ใช้งานไม่กี่ตัวที่คุณอาจไม่ได้ตั้งใจ เพียงใช้สองtmpfsเมานต์แทน
Chris Down

17

/etc/default/tmpfsมีไว้สำหรับsysvinitสำหรับsystemd(ค่าเริ่มต้น Debian ตั้งแต่ jessie) คุณจะต้องทำ:

systemctl enable tmp.mount

และยืด Debian

cp /usr/share/systemd/tmp.mount /etc/systemd/system/
systemctl enable tmp.mount

ดูการเปลี่ยนแปลงในhttps://bugs.debian.org/cgi-bin/bugreport.cgi?bug=787542#74


ขอบคุณ! นี่เป็นวิธีที่เหมาะสมในการย้าย / tmp ไปยัง tmpfs ใน Jessie
Yasiru G

ขอบคุณมาก! ใน gentoo ฉันไม่เข้าใจว่าทำไม / tmp ของฉันติดตั้ง tmpfs สคริปต์ systemd tmp.mount ทำเช่นนั้น
ufk

4

ฉันรู้ว่ามันค่อนข้างเก่า แต่ในการตั้งค่าการแจกแจงแบบเดเบียนตั้งค่า RAMTMP, RAMRUN และ RAMLOCK ใน / etc / default / tmpfs (/ etc / default / rcS หรือก่อนที่เสียงฮืด) ทำหน้าที่เดียวกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.