আমি কীভাবে / টিএমপি ডিরেক্টরিতে র‌্যাম স্টোরেজ ব্যবহার করতে পারি এবং এর জন্য সর্বোচ্চ পরিমাণের র‌্যাম ব্যবহার কীভাবে সেট করব?


92

দেখার পর মন্তব্য দ্বারা বেনামী প্রশ্নে কিভাবে / tmp ডিরেক্টরির পরিষ্কার করা হয়? , আমি আবিষ্কার করেছি যে এটি আমার সিস্টেমে প্রয়োগ করা একটি দুর্দান্ত ধারণা হবে, যেহেতু আমার কাছে ১ RAM গিগাবাইট র‌্যাম রয়েছে এবং আমি এর সবগুলি ব্যবহার করি না।

আমার অস্থায়ী ফাইলগুলি কখনই ডিস্কে লিখিত হয় না। এগুলি র‌্যাম ডিস্কে লিখিত হয়। আমি tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0/ ইত্যাদি / fstab লাগিয়েছি।

আমার প্রশ্নটি হ'ল:

আমি কি র‌্যাম ব্যবহারের সর্বাধিক মান নির্ধারণ করতে পারি /tmp? এবং সেক্ষেত্রে সর্বাধিক পরিমাণ ছাড়িয়ে গেলে কী ঘটবে, এটি হার্ড-ডিস্ক ড্রাইভে লিখবে?

আমি একটি সমাধান পড়েছি যা বলেছে:

mkdir -p /tmp/ram
sudo mount -t tmpfs -o size=512M tmpfs /tmp/ram/

তবে আমার বুঝতে হবে, এটি কোনও স্থায়ী সমাধান হবে না। যদি আমার এটি স্থায়ী হওয়ার প্রয়োজন হয় তবে এটি /etc/fstabকনফিগারেশন ফাইলে যুক্ত করতে হবে।

যদি এটি সঠিক সমাধান হয় তবে আমি কীভাবে সেই মাউন্ট কমান্ডটিকে একটি লাইনে রূপান্তর করতে পারি /etc/fstab?


এটি আপনার পক্ষে এবং এসএসডি থাকলেও এটি একটি ভাল ধারণা যেহেতু আপনি দরকারী লেখার সাথে এটি 'গ্রাস' করবেন না ...
পোস্টডেলমাগা

হা হা ঠিক একই প্রশ্ন আমাকে এখানে এনেছে: ডি
টেডি মার্কোভ

উত্তর:


80

তুমি একদম সঠিক. অনুসারে fstab এন্ট্রিটি দেখতে এমন হবে:

tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,noexec,mode=1777,size=512M 0 0

দয়া করে নোট করুন:

হিসাবে tmpfsভরাট পরার, এটি একটি "যথেষ্ট নয় স্থান" ত্রুটি দান করে যে কোনো শারীরিক হার্ড ড্রাইভ হিসাবে আচরণ করবে। রিবুট করার সময় (এবং এইভাবে ক্যাশে খালি করা) এটি ঠিক করবে, যখন কোনও একক ক্রিয়াকলাপটি স্থানের চেয়ে বেশি জায়গা ব্যয় করে আপনি সমস্যার মধ্যে পড়তে পারেন tmpfs। এক্ষেত্রে আপনার কম্পিউটারটি রাম থেকে ডিস্কে অদলবদল করতে শুরু করবে, যা অবশ্যই আপনার অদলবদল শুরু হওয়ার সাথে সাথে অবশ্যই একটি সিস্টেমকে থামতে দেবে।

এটি বিবেচনা করে, আজকাল 512MB আকারের পরিমাণটি খুব কম হতে পারে, যেহেতু আধুনিক মেশিনগুলিতে আরও অনেকগুলি র‌্যাম রয়েছে এবং এটি অনেক সস্তা। যেহেতু আপনি ইতিমধ্যে ১GB জিবি র‌্যাম পেয়ে গেছেন, আপনার রামের অর্ধের ডিফল্ট মানটি ব্যবহার করে tmpfsপ্রায় সমস্ত পরিস্থিতিতে তার চেয়ে বেশি হওয়া উচিত। ডিফল্ট মানটি ব্যবহার করতে, কেবল size=512Mআপনার /etc/fstabফাইলের এন্ট্রিটি ছেড়ে দিন ।

আরেকটি নোট:

আপনি অন্যান্য সিস্টেম ফোল্ডারগুলি খুব সহজেই রামডিস্কে মাউন্ট করতে পারেন, যেমন

/var/cache

/var/games

/var/log/apt(শুধুমাত্র বা defaults,noatimeছাড়া ব্যবহার করুন )mode=nosuid

তবে সাবধান: একই নিয়মগুলি উপরের মতো প্রয়োগ হয়, স্থানের বাইরে চলে যাওয়া বড় সমস্যা হতে পারে। যেমন / var / লগ / এপটির জন্য জায়গার বাইরে চলে যাওয়া কল্পনা আপনাকে কোনও প্রোগ্রাম ইনস্টল করতে অক্ষম করে তুলবে! তদুপরি, র‌্যামডিস্কে /var/logফোল্ডারগুলি লোড করা আপনার সমস্ত লগ ফাইলগুলি পুনরায় বুট করার পরে মুছে ফেলবে, সুতরাং অপ্রত্যাশিত কিছু ঘটলে আপনি আপনার সিস্টেমটি ডিবাগ করতে সক্ষম হবেন না। সুতরাং আপনার নিজের ঝুঁকিতে এই সেটিংসটি ব্যবহার করুন!

সম্পাদকীয় নোট: আমি মুছে /runমধ্যে tmpfsএই ফোল্ডারটি থেকে মাউন্ট বিকল্প এবং তার সাবফোল্ডার ইতিমধ্যেই মাউন্ট করা হয় tmpfsডিফল্টরূপে।


11
আমি যদি ভুল না করি তবে / var / tmp / রিবুটের পরে ফাইল রাখার জন্য। এটি এবং / টিএমপি / এর মধ্যে মূল পার্থক্যটি স্থির করে, তাই আপনারা / var / tmp কে রামে স্থানান্তরিত করবেন না।

3
যদি উবুন্টু 4 জিবি tmpfs এর বাইরে চলে যায় তবে এটি কি আমার 20 গিগাবাইট সুইট পার্টিশনটি ব্যবহার করবে?
লুস্ট্রো

3
হ্যাঁ, আমারও এটি যুক্ত করতে হবে। যত তাড়াতাড়ি tmpfs এর সীমা অতিক্রম করবে, এটি অদলবদল বিভাজনে প্রসারিত হবে (সেখানে একটি রয়েছে)।
ফুজিকিউ

5
এর জন্য আপনার অর্ধেক র‌্যাম বরাদ্দ করার অর্থ কি আপনার অর্ধেক র‌্যাম র‌্যামডিস্কের জন্য সংরক্ষিত আছে, বা এটি র‌্যামডিস্ক যা ব্যবহার করতে পারে তার কেবল একটি টুপি, এবং যা ব্যবহার না করা হয় তা নিখরচায় র‌্যাম যা প্রোগ্রামের র‌্যামের প্রয়োজন হয় তা নির্ধারিত হয় ??
ম্যাট

6
@ ম্যাট এটি কেবল একটি টুপি।
ফুজিকিউ

35

সিস্টেমগুলি ব্যবহার করে systemd, আপনার tmpfsমাউন্ট ব্যবহারের লক্ষ্য অর্জনের জন্য fstab এর পরিবর্তে systemd ইউনিট ফাইল ব্যবহার করার বিকল্প রয়েছে tmp। আমার উবুন্টু 16.04 সিস্টেমে আমি দৌড়েছি:

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

ফাইলটি /usr/share/systemd/tmp.mountদেখে মনে হচ্ছে:

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
[Unit]
Description=Temporary Directory
Documentation=man:hier(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
ConditionPathIsSymbolicLink=!/tmp
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
After=swap.target

[Mount]
What=tmpfs
Where=/tmp
Type=tmpfs
Options=mode=1777,strictatime

[Install]
WantedBy=local-fs.target

FuzzyQ এর fstab পদ্ধতির ব্যবহার করে systemd আপনার fstab এন্ট্রিগুলিকে গতিশীলভাবে মাউন্ট ইউনিটে অনুবাদ করে। আমি মনে করি না উভয় পদ্ধতির ভাল হয়।

অনুরোধ অনুসারে র‌্যামের সর্বাধিক সীমা নির্ধারণ করার জন্য , কমা দ্বারা আলাদা হওয়াতে একটিতে লাইনে যুক্ত size=512Mহওয়া প্রয়োজন Options


2
আপনার দরকার হবে systemctl enable tmp.mountসিপি করার পরে অন্যথায় Failed to start tmp.mount: Unit tmp.mount not found.
সিস্টেম্টটিএল

4
@ রিক, এটি ব্যবহার করা আরও ভাল systemctl edit tmp.mountযা ডিস্ট্রো-নিরপেক্ষ হবে। এটি আপনার পরিবর্তনগুলিকে ওভাররাইড.কনফের মধ্যে রাখে যাতে আপনি ডিফল্ট tmp.mount পরিবর্তন করতে না পারেন এবং আপনি ডিফল্ট কনফিগারেশনে ফিরে যেতে ওভাররাইড.conf সহজেই মুছতে পারেন।
বুলাত এম

বুলাত সিস্টেমেটেক্ট সম্পাদনা ব্যবহারের বিষয়ে যা বলেছিল তাও এবং প্রথম ধাপের ln -sচেয়ে ব্যবহারও cp
মাইকেল গ্র্যাটন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.