আমি কখন / dev / shm / ব্যবহার করব এবং কখন / tmp / ব্যবহার করব?


139

আমার কখন ব্যবহার করা উচিত /dev/shm/এবং কখন ব্যবহার করা উচিত /tmp/? আমি কি সবসময়ই ইউনিসিতে থাকাকালীন তাদের উভয়ের উপর নির্ভর করতে পারি?

উত্তর:


101

/dev/shmঅস্থায়ী ফাইল স্টোরেজ ফাইল সিস্টেম যা tmpfs যা ব্যাকিং স্টোরের জন্য র‌্যাম ব্যবহার করে। এটি একটি ভাগ করা মেমরি বাস্তবায়ন হিসাবে কাজ করতে পারে যা আইপিসির সুবিধার্থ করে ।

উইকিপিডিয়া থেকে :

সাম্প্রতিক ২.6 লিনাক্স কার্নেল বিল্ডগুলি একটি র‌্যামডিস্ক আকারে ভাগ করে নেওয়া মেমরি হিসাবে / dev / shm অফার শুরু করেছে, বিশেষত একটি বিশ্ব-লিখনযোগ্য ডিরেক্টরি যা মেমরিতে / etc / default / tmpfs এ একটি সংজ্ঞায়িত সীমা দ্বারা সঞ্চিত থাকে।  / dev / shm সমর্থন কার্নেল কনফিগারেশন ফাইলের মধ্যে সম্পূর্ণরূপে alচ্ছিক।   এটি ফেডোরা এবং উবুন্টু উভয় বিতরণেই ডিফল্টরূপে অন্তর্ভুক্ত করা হয়েছে, যেখানে এটি বেশিরভাগভাবে পালসোডিও অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয়।             (সামনে জোর দাও.)

/tmpফাইল সিস্টেম হায়ারার্কি স্ট্যান্ডার্ডে সংজ্ঞায়িত অস্থায়ী ফাইলগুলির অবস্থান , যা প্রায় সমস্ত ইউনিক্স এবং লিনাক্স বিতরণ অনুসরণ করে।

যেহেতু র‌্যাম ডিস্ক স্টোরেজের তুলনায় উল্লেখযোগ্যভাবে দ্রুত, আপনি যদি প্রসেসটি I / O নিবিড় এবং অস্থায়ী ফাইলগুলি ব্যাপকভাবে ব্যবহার করেন তবে পারফরম্যান্স বৃদ্ধির পরিবর্তে আপনি ব্যবহার/dev/shm/tmp করতে পারেন

আপনার প্রশ্নের উত্তর দেওয়ার জন্য: না, আপনি সর্বদা /dev/shmউপস্থিত থাকার উপর নির্ভর করতে পারবেন না , অবশ্যই স্মৃতিতে আটকে থাকা মেশিনগুলিতে নয় not আপনার ব্যবহারের /tmpখুব ভাল কারণ না থাকলে ব্যবহার করা উচিত /dev/shm

মনে রাখবেন যে পৃথক মাউন্টের পরিবর্তে ফাইল সিস্টেমের /tmpঅংশ হতে পারে এবং এটি /প্রয়োজনীয় হিসাবে বৃদ্ধি করতে পারে। আকারের আকারটি /dev/shmসিস্টেমে অতিরিক্ত র‌্যামের মাধ্যমে সীমাবদ্ধ এবং তাই আপনার এই ফাইল সিস্টেমের স্থান খুব কম চলে more


1
কমান্ডের স্ট্যান্ডার্ড ত্রুটি আউটপুট থেকে কোনও ফাইলে আউটপুট পুনঃনির্দেশ করতে আমি এটি ব্যবহার করব। তারপরে আমি এই ফাইলটি পড়ব এবং এটি প্রক্রিয়া করব। আমি এটি কয়েক হাজার বার করবো (এটি একটি লুপ নির্মাণের শর্তের অংশ)। আমি ভেবেছিলাম এই ক্ষেত্রে স্মৃতি ভাল হবে। তবে আমি এটিও বহনযোগ্য হতে চাই। আমি অনুমান করি যে আমি /dev/shmউপস্থিত কিনা তা যাচাই করব , এটি থাকলে এটি ব্যবহার করুন, বা পড়ে যাবেন /tmp। ভাল লাগছে কি?
মুছে ফেলা হয়েছে

1
অজান্তেই এটি পূরণ করা থেকে রক্ষা করার জন্য আমি ন্যূনতম আকার এবং বর্তমান / ডিভ / এসএম এর ব্যবহারের স্তরের জন্য একটি চেক যুক্ত করব।
নাগুল

4
লিনাক্স ২.6 এর অধীনে এবং পরে পসিক্স শেয়ার করা মেমরি সিস্টেম কলগুলির জন্য shm_open () ব্যবহার করার জন্য / dev / shm লাগানো দরকার। অন্য কথায় কিছু প্রোগ্রাম এটি মাউন্ট না করা হলে ভেঙে যাবে - সুতরাং এটি হওয়া উচিত। এটি কেবল একটি র‌্যাম ডিস্ক নয়। সুতরাং আপনার / dev / shm এর কিছু বিনামূল্যে কিনা তা নিশ্চিত হওয়া উচিত।
এডিএইচ

7
ব্যবহার করে কোনও পারফরম্যান্স বুস্ট হয় না /dev/shm/dev/shmমেমোরি (tmpfs) ডিস্কের সাহায্যে রয়েছে (অদলবদল)। /var/tmpডিস্কের সাহায্যে মেমোরি (ডিস্ক ক্যাশে) (অন ডিস্ক ফাইল সিস্টেম)। অনুশীলনে, পারফরম্যান্সটি প্রায় একই রকম (tmpfs এর সামান্য প্রান্ত রয়েছে তবে বিষয়টি যথেষ্ট নয়)। /tmptmpfs হতে পারে বা প্রশাসক কীভাবে এটি কনফিগার করেছেন তার উপর নির্ভর করে। /dev/shmআপনার স্ক্রিপ্টগুলিতে ব্যবহার করার কোনও ভাল কারণ নেই ।
গিলস

3
@ গ্রেটক্লেওরন অদলবদলের দ্বারা সমর্থিত মেমরিটি ব্যবহার করার প্রচুর কারণ রয়েছে তবে এটিকে সাধারণ প্রক্রিয়া স্মৃতি বলে। আপনি যদি কোনও ফাইল ব্যবহার করেন তবে এটিকে একটি ফাইল সিস্টেম বলা হয় এবং সমস্ত ফাইল-সিস্টেম মেমরি (ক্যাশে) হয়, যা ফাইল সিস্টেমটি tmpfs এর মতো কিছু হলে স্ব্যাপের সাহায্যে ব্যাক হয়। অদলবদল এবং অন্যান্য সঞ্চয়স্থান অঞ্চলের মধ্যে ডিস্কের স্থান বরাদ্দ করা সাধারণত প্রশাসকের আসল। যদি কোনও অ্যাপ্লিকেশন যদি এমন ফাইলগুলি চায় যা র‌্যামে থাকে /tmpতবে এটি স্বাভাবিক অবস্থান ( $TMPDIRওভাররাইড সহ)। /tmpঅদলবদল, অন্যান্য ডিস্ক স্পেস বা কিছুই দ্বারা ব্যাকড করা পছন্দ প্রশাসকের নয়।
গিলস

61

tmpfsসম্ভাব্যতার ক্রমবর্ধমান ক্রম :

┌───────────┬──────────────┬────────────────┐
│ /dev/shm  │ always tmpfs │ Linux specific │
├───────────┼──────────────┼────────────────┤
│ /tmp      │ can be tmpfs │ FHS 1.0        │
├───────────┼──────────────┼────────────────┤
│ /var/tmp  │ never tmpfs  │ FHS 1.0        │
└───────────┴──────────────┴────────────────┘

যেহেতু আপনি একটি Linux নির্দিষ্ট সম্পর্কে জিজ্ঞাসা করা হয় tmpfs একটি portably সংজ্ঞায়িত যে ডিরেক্টরি বনাম mountpoint পারে tmpfs হতে (আপনার sysadmin উপর নির্ভর করে এবং আপনার কি ডিস্ট্রো জন্য ডিফল্ট আছে), আপনার প্রশ্নের দুটি দিক, যাতে অন্যান্য উত্তর ভিন্নভাবে জোর আছে আছে:

  1. ভাল অনুশীলনের উপর ভিত্তি করে এই ডিরেক্টরিগুলি কখন ব্যবহার করবেন
  2. Tmpfs ব্যবহার করার জন্য এটি উপযুক্ত হলে

ভাল অনুশীলন

রক্ষণশীল সংস্করণ ( এফএইচএসের কনভেনশনগুলির মিশ্রণ এবং সাধারণ ব্যবহার):

  • সন্দেহ হলে, ব্যবহার করুন /tmp
  • /var/tmpবৃহত্তর ডেটার জন্য ব্যবহার করুন যা রামের সাথে সহজেই ফিট না।
  • /var/tmpরিবুটগুলি জুড়ে রাখার জন্য উপকারী এমন ডেটার জন্য ব্যবহার করুন (ক্যাশের মতো)।
  • /dev/shmকল করার পার্শ্ব-প্রতিক্রিয়া হিসাবে ব্যবহার করুন shm_open()। উদ্দেশ্যে করা শ্রোতাগুলি সীমিত বাফার যা অন্তহীনভাবে ওভাররাইট করা হয়। সুতরাং এটি দীর্ঘকালীন ফাইলের জন্য যার বিষয়বস্তু অস্থির এবং ভয়াবহ নয় not
  • যদি এখনও সন্দেহ হয় তবে ব্যবহারকারীকে ওভাররাইড করার জন্য একটি উপায় সরবরাহ করুন। উদাহরণস্বরূপ, mktempপ্রোগ্রামটি TMPDIRপরিবেশের পরিবর্তনশীলকে সম্মান করে ।

ব্যবহারিক সংস্করণ:

/dev/shmTmpfs ব্যবহার করা যখন গুরুত্বপূর্ণ তখন ব্যবহার করুন, /var/tmpযখন অন্যথায় না করা গুরুত্বপূর্ণ /tmp

যেখানে tmpfs অতিক্রম করে

fsyncটিএমপিএফ-তে একটি অন-অপশন। এই সিস্কলটি (আইও) পারফরম্যান্সের এক নম্বর শত্রু (এবং যদি আপনি সে সম্পর্কে যত্নশীল হন তবে দীর্ঘায়ুতে ফ্ল্যাশ করুন), যদিও আপনি নিজেকে tmpfs (বা ডায়েডমিটা) ব্যবহার করে খুঁজে পান) কেবল সাইককে পরাস্ত করার জন্য, তারপরে আপনি (বা চেইনের অন্য কোনও বিকাশকারী) কিছু ভুল করছেন। এর অর্থ হ'ল স্টোরেজ ডিভাইসের দিকে লেনদেনগুলি আপনার প্রয়োজনের জন্য অযৌক্তিকভাবে জরিমানা - আপনি পারফরম্যান্সের জন্য কিছু সংরক্ষণের পয়েন্ট এড়াতে ইচ্ছুক, যেহেতু আপনি এখন সেগুলি সর্বনাশ করার চূড়ান্ত দিকে চলে গেছেন - খুব কমই সবচেয়ে ভাল আপস করুন। এছাড়াও, এটি এখানে লেনদেনের পারফরম্যান্সের জমিতে রয়েছে যেখানে একটি এসএসডি থাকার কিছু সুবিধা রয়েছে - কোনও স্পিনিং ডিস্ক সম্ভবত গ্রহণ করতে পারে তার তুলনায় কোনও শালীন এসএসডি এই পৃথিবীর বাইরে সম্পাদন করতে চলেছে (7200 আরপিএম = 120 হার্জ , যদি অন্য কেউ এটি অ্যাক্সেস করে থাকে), ফ্ল্যাশ মেমরি কার্ডগুলির উল্লেখ না করা, যা এই মেট্রিকটিতে ব্যাপকভাবে পরিবর্তিত হয় (কমপক্ষে নয় কারণ এটি ক্রমযুক্ত পারফরম্যান্সের সাথে একটি ট্রেড অফ, যা তাদের দ্বারা রেট করা হয়, যেমন এসডি কার্ড শ্রেণীর রেটিং)। সুতরাং সাবধান,

শুনতে চান একটি হাস্যকর গল্প? আমার প্রথম fsyncপাঠ: আমার একটি কাজ ছিল যা নিয়মিতভাবে পরিবর্তিত বর্তমান ফর্ম্যাটে স্ক্লাইট ডেটাবেসগুলির একটি গুচ্ছ (টেস্টকেস হিসাবে রাখা) একগুচ্ছ "আপগ্রেড" জড়িত। "আপগ্রেড" ফ্রেমওয়ার্কটি একটি ডেটাবেস আপগ্রেড করার জন্য কমপক্ষে একটি লেনদেন করে স্ক্রিপ্টগুলির একগুচ্ছ চালায়। অবশ্যই আমি আমার ডাটাবেসগুলিকে সমান্তরালে আপগ্রেড করেছি (সমান্তরালে 8, যেহেতু আমি একটি শক্তিশালী 8 কোর সিপিইউ দিয়ে আশীর্বাদ পেয়েছি)। তবে আমি যেমন জানতে পেরেছি, সেখানে কোনও সমান্তরাল স্পিডআপ ছিল না (বরং সামান্য আঘাত ) কারণ প্রক্রিয়াটি সম্পূর্ণ আইও আবদ্ধ ছিল। হাসিখুশিভাবে, একটি স্ক্রিপ্টে আপগ্রেড ফ্রেমওয়ার্কটি মোড়ানো যা প্রতিটি ডাটাবেসে অনুলিপি করে /dev/shm, সেখানে এটি আপগ্রেড করে, এবং এটি ডিস্কে ফিরে অনুলিপি করা 100 গুণ দ্রুত গতির মতো (এখনও সমান্তরালে 8 সহ)। বোনাস হিসাবে, পিসি ব্যবহারযোগ্য ছিল খুব, ডেটাবেস আপগ্রেড করার সময়।

যেখানে tmpfs উপযুক্ত

Tmpfs এর যথাযথ ব্যবহার হ'ল অস্থায়ী ডেটার অপ্রয়োজনীয় লেখা এড়ানো। নিয়মিত ফাইল সিস্টেমে অনন্তকে সেট /proc/sys/vm/dirty_writeback_centisecsকরার মতো লিখিতব্যাক কার্যকরভাবে অক্ষম করা ।

পারফরম্যান্সের সাথে এটির খুব সামান্য সম্পর্ক রয়েছে, এবং এটি ব্যর্থ হওয়া ফিনসিঙ্কের সাথে আপত্তিজনক হওয়ার চেয়ে অনেক ছোট উদ্বেগ: লিখনব্যাকের সময়সীমা নির্ধারণ করে যে ডিস্কের বিষয়বস্তু পৃষ্ঠাচরণের সামগ্রীর পরে কীভাবে আপডেট হয় এবং 5 সেকেন্ডের ডিফল্ট একটি কম্পিউটারের জন্য দীর্ঘ সময় হয় - একটি অ্যাপ্লিকেশন কোনও ফাইলকে পেজ ক্যাশে হিসাবে যতবার চায় তার ওভাররাইট করতে পারে, তবে ডিস্কে থাকা সামগ্রীটি প্রতি 5 সেকেন্ডে প্রায় একবার আপডেট হয়। অ্যাপ্লিকেশন এটিকে ফাইন্যাক দিয়ে জোর করে না দিলে তা হয়। এই সময়ে কোনও অ্যাপ্লিকেশন একটি ছোট ফাইলকে কতবার আউটপুট দিতে পারে সে সম্পর্কে চিন্তাভাবনা করুন এবং আপনি দেখতে পাচ্ছেন কেন প্রতিটি একককে ফাইসিং করা অনেক বড় সমস্যা হবে।

কি tmpfs আপনাকে সাহায্য করতে পারে না

  • কর্মক্ষমতা পড়ুন। যদি আপনার ডেটা গরম থাকে (আপনি এটি টিএমপিএফ-এ রাখার বিষয়টি বিবেচনা করেন তবে এটি আরও ভাল) তবে আপনি যেভাবেই পেজকেশে হিট করবেন। পেজক্যাসে আঘাত না করার সময় পার্থক্যটি; যদি এটি হয় তবে নীচে "যেখানে tmpfs sux" যান to
  • স্বল্পজীবী ফাইল। এগুলি তাদের লেখার আগে পেইজচে ( নোংরা পৃষ্ঠাগুলি) পুরো জীবনযাপন করতে পারে। fsyncঅবশ্যই আপনি এটি সঙ্গে জোর করা না হলে ।

যেখানে tmpfs sux

ঠান্ডা তথ্য রাখছি । আপনি ভাবতে প্ররোচিত হতে পারেন যে অদলবদলের বাইরে ফাইলগুলি সরবরাহ করা একটি সাধারণ ফাইল সিস্টেমের মতোই দক্ষ, তবে এটি না হওয়ার কয়েকটি কারণ রয়েছে:

  • সবচেয়ে সহজ কারণ: একটি সঠিক ফাইল সিস্টেমের দ্বারা খুব ভালভাবে সাজানো মোটামুটি সিক্যুয়াল ফাইলগুলি পড়ার চেয়ে সমসাময়িক স্টোরেজ ডিভাইসগুলি (এটি হার্ডডিস্ক বা ফ্ল্যাশ ভিত্তিক হোক) কিছুই পছন্দ করে না। 4KiB ব্লকগুলিতে অদলবদল হওয়ার ফলে উন্নতির সম্ভাবনা নেই।
  • লুকানো খরচ: লোমশ আউট । টিএমপিএফ পৃষ্ঠাগুলি নোংরা - তাত্ক্ষণিকভাবে ফেলে দেওয়া যেতে পারে এমন ব্যাকড পরিষ্কার পৃষ্ঠাগুলি ফাইল করার বিপরীতে পেজক্যাচ থেকে উচ্ছেদ করার জন্য সেগুলি কোথাও (অদলবদল করে) লিখতে হবে। এটি মেমরির জন্য প্রতিযোগিতা করে এমন সমস্ত কিছুর উপর এটি অতিরিক্ত লেখার দণ্ড t এই টিএমপিএফ পৃষ্ঠাগুলি ব্যবহারের চেয়ে ভিন্ন সময়ে অন্য কোনও কিছুকে প্রভাবিত করে।

আমার উবুন্টুতে 14.04 / dev / shm লিঙ্কটি / রান / এসএমএমে লিঙ্ক, এতে ডিফ কমান্ড অনুসারে ফাইল সিস্টেম "কিছুই নেই" রয়েছে। যদিও আকার প্রায় 2 জি।
জার্নো

3
@ জারানো প্রথমত, টিএমপিএফস মাউন্টপয়েন্টগুলির সংখ্যাকে অর্থনৈতিক করে তোলা, আমি একটি বাস্তবায়নের বিশদটি কল করব। দ্বিতীয়ত, ডিভাইসের নামটি আপনাকে বিভ্রান্ত করতে না দিন - / প্রোক / মাউন্টগুলি দেখুন (এটি দেখতে সঠিক জায়গা) এবং আপনি দেখতে পাবেন যে টাইপটি "টিএমপিএফএস" রয়েছে যখন ডিভাইসটি এখানে "কিছুই নয়"। হ্যাঁ, ডিভাইসের নামের অর্থ tmpfs- তে কিছুই নেই - আপনি mount -t tmpfs "jarno is great" /mnt/jarnoচাইলে করতে পারেন! তৃতীয়ত, ডিফল্ট আকারটি রামের অর্ধেক পরিমাণে - আমি বাজি ধরে রাখি যে আপনার কাছে 4 জিবিবি র‌্যাম রয়েছে।
ব্যবহারকারী 2394284

1
এমন কোনও বিকল্প আছে যা একটি স্থির র‌্যাম আকার বরাদ্দ করে এবং কখনই অদলবদল ব্যবহার না করার প্রতিশ্রুতি দেয়?
পালসুইম

@ পালসুইম: এটি একটি রামডিস্ক হবে। আমি tmpfs এর জন্য কোনও বিকল্প দেখতে পাচ্ছি না , এই tmpfs এর পূর্বসূরি অদলবদল সমর্থন করে না। প্রসেসগুলি তাদের পৃষ্ঠাগুলি র‌্যামে লক করতে পারে, এটি র‌্যামে tmpfs পৃষ্ঠাগুলি লক করার চেয়ে তাত্ক্ষণিকভাবে কম পাগল considering
ব্যবহারকারী 2394284

18

ঠিক আছে, বাস্তবতা এখানে।

উভয় tmpfs এবং একটি সাধারণ ফাইল সিস্টেম ডিস্কের ওপরে একটি মেমরি ক্যাশে।

টিএমপিএফস মেমরি এবং স্ব্যাপস্পেস ব্যবহার করে কারণ এটি ফাইল সিস্টেমের জন্য একটি ডিস্কের একটি নির্দিষ্ট ক্ষেত্র ব্যবহার করে, এটি কোনও সিস্টেম সিস্টেমের আকারের মধ্যেই সীমাবদ্ধ নয়, কোনও গিগাবাইটের চেয়ে কম র‌্যামের মেশিনে 200 গিগাবাইট টিএমপিএফ রাখা সম্ভব quite আপনার যথেষ্ট পরিমাণ সোয়াপস্পেস আছে।

যখন ডিস্কে ডেটা লেখা হয় তখন পার্থক্য হয়। একটি tmpfs জন্য যখন কেবল মেমরি পূর্ণ হয়ে যায় বা ডেটা ব্যবহার করার সম্ভাবনা কম থাকে তখন কেবলমাত্র ডেটা লেখা হয়। OTOH বেশিরভাগ সাধারণ লিনাক্স ফাইল সিস্টেমগুলি সর্বদা ডিস্কে আরও কম বা কম সামঞ্জস্যপূর্ণ ডেটা তৈরির জন্য ডিজাইন করা হয় যাতে ব্যবহারকারী যদি প্লাগ টানেন তবে তারা সবকিছু হারাবেন না।

ব্যক্তিগতভাবে, আমি অপারেটিং সিস্টেমগুলি ব্যবহার করতে অভ্যস্ত যা ক্র্যাশ হয় না এবং ইউপিএস সিস্টেমগুলি (যেমন: ল্যাপটপ ব্যাটারি) তাই আমার মনে হয় ext2 / 3 ফাইল সিস্টেমগুলি তাদের 5-10 সেকেন্ড চেকপয়েন্টের ব্যবধানের সাথে খুব বিড়ম্বনাযুক্ত। এক্সট 4 ফাইল সিস্টেমটি 10 ​​মিনিটের চেকপয়েন্টের সাথে আরও ভাল, এটি বাদে এটি ব্যবহারকারীর ডেটাটিকে দ্বিতীয় শ্রেণির হিসাবে বিবেচনা করে এবং এটি সুরক্ষা দেয় না। (ext3 একই তবে 5 সেকেন্ড চেকপয়েন্টের কারণে আপনি এটি লক্ষ্য করেন না)

এই ঘন ঘন চেকপয়েন্টিংটির অর্থ এই যে অপ্রয়োজনীয় ডেটা নিয়মিতভাবে ডিস্কে লেখা থাকে, এমনকি / টিএমপি জন্যও।

সুতরাং ফলস্বরূপ আপনাকে নিজের / টিএমপি হওয়ার জন্য যতটা প্রয়োজন স্বাপের স্থান তৈরি করতে হবে (এমনকি আপনার যদি একটি সোয়াফিল ফাইল তৈরি করতে হয়) এবং সেই স্থানটি প্রয়োজনীয় আকারের একটি tmpfs / tmp এ মাউন্ট করতে ব্যবহার করতে পারেন।

কখনও / dev / shm ব্যবহার করবেন না।

যদি না আপনি এটি খুব ছোট (সম্ভবত এমএমপি'ডি) আইপিসি ফাইলগুলির জন্য ব্যবহার করছেন এবং আপনি নিশ্চিত যে এটি বিদ্যমান (এটি কোনও মান নয়) এবং মেশিনটিতে পর্যাপ্ত মেমরি + অদলবদুর চেয়েও বেশি উপলব্ধ।


24
সম্মতি জানানো হয়েছে, উপসংহার ব্যতীত "" কখনও ব্যবহার / dev / shm ব্যবহার করবেন না "। আপনি যে কোনও ক্ষেত্রে ডিস্কে কোনও ফাইল লিখিত না চান এবং আপনি ডিস্ক i / o ছোট করতে চান সে ক্ষেত্রে আপনি / dev / shm ব্যবহার করতে চান। উদাহরণস্বরূপ, আমাকে একটি এফটিপি সার্ভার থেকে খুব বড় জিপ ফাইলগুলি ডাউনলোড করতে হবে, আনজিপ করুন এবং তারপরে একটি ডেটাবেসে আমদানি করতে হবে। আমি / dev / shm এ আনজিপ করি যাতে আনজিপ এবং আমদানি ক্রিয়াকলাপ উভয়ের জন্যই এইচডিডি কেবল উত্স এবং গন্তব্যের মধ্যে পিছনে এগিয়ে চলার চেয়ে অর্ধেক অপারেশন করা প্রয়োজন। এটি প্রক্রিয়াটিকে প্রচুর গতি দেয়। এটি অনেকের একটি উদাহরণ, তবে আমি সম্মত হই যে এটি একটি কুলুঙ্গি সরঞ্জাম।
নাথান স্ট্রেচ

4

অস্থায়ী ফাইলগুলির জন্য / টিএমপি / ব্যবহার করুন। আপনি যখন ভাগ করা মেমরি চান (/ ফাইলের মাধ্যমে আন্তঃসম্পর্কিত যোগাযোগ) চান / dev / shm / ব্যবহার করুন।

আপনি / টিএমপি / সেখানে থাকার উপর নির্ভর করতে পারেন, তবে / dev / shm / অপেক্ষাকৃত সাম্প্রতিক লিনাক্সের একমাত্র জিনিস।


পারফরম্যান্সের দিকটিও কি নেই? / Dev / shm হিসাবে প্রায়শই একটি tmpfs ভলিউম এবং মূলত একটি র‌্যাম-ডিস্ক হিসাবে মাউন্ট করা হয়?
মুছে ফেলা হয়েছে

আপনি একটি tmpfs ফাইল সিস্টেম হিসাবে মাউন্ট / tmp করতে পারেন, আমি (নেট) এসএসডি-র লেখাগুলি হ্রাস করে কিছু জিনিস দ্রুত করতে আমার নেটবুকটিতে এটি করি। এটি করার অসুবিধা রয়েছে অবশ্যই (মূলত র‌্যাম ব্যবহার, তবে আমার নেটবুকটিতে সাধারণত যেভাবে প্রয়োজন তার চেয়ে অনেক বেশি র‌্যাম রয়েছে)।
ডেভিড স্পিললেট

আমার নির্দিষ্ট ক্ষেত্রে আমি এটি এক প্রকার প্রক্রিয়া যোগাযোগের জন্য ব্যবহার করব। আমি একটি অ্যাপ্লিকেশন থেকে স্ট্যান্ডার্ড ত্রুটির আউটপুট ক্যাপচার করি এবং সামগ্রীগুলিতে কাজ করি (এবং এখনও আমার স্ট্যান্ডার্ড আউটপুটটি প্রয়োজন না, তাই আমি কোনও কাজ করতে পারি না I 1>/dev/null 2>&1আমি এটি কয়েক হাজার বার করব তাই একটি টিএমপিএফস ভাল লাগবে However তবে আমি যদি স্ক্রিপ্ট আমি tmpfs উপর নির্ভর করতে পারে না জন্য ব্যবহৃত হচ্ছে মুক্তি /tmpযেমন আমার মনে হয় এটা যে সাধারণ নয় যদি জন্য আরো সাধারণ হবে। /dev/shmতারপর যে আমার জন্য ভালো কিন্তু আমি বহনযোগ্যতা ইত্যাদি সংক্রান্ত নির্দেশিকা খুঁজছি।
মোছা

1

অন্য সময় যখন আপনি (লিনাক্সের 2.6 এবং উপরোক্ত জন্য) ব্যবহার করা উচিত / dev / shm যখন আপনি একটি ফাইল সিস্টেম tmpfs নিশ্চিত কারণ আপনার যদি আপনি জানেন না প্রয়োজন পারবেন ডিস্কে লিখুন।

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


0

/ dev / shm ভাগ করা ভার্চুয়াল মেমরি সিস্টেম নির্দিষ্ট ডিভাইস ড্রাইভার এবং প্রোগ্রামগুলির জন্য ব্যবহৃত হয়।

আপনি যদি এমন কোনও প্রোগ্রাম তৈরি করছেন যা ভার্চুয়াল মেমোরিতে ম্যাপ করা উচিত এমন ভার্চুয়াল মেমরি হিপ দরকার। এটি দ্বিগুণ হয় সুতরাং আপনার যদি সেই মেমরিটিকে নিরাপদে অ্যাক্সেস করতে সক্ষম হতে একাধিক প্রক্রিয়া বা থ্রেডের প্রয়োজন হয়।

আসল বিষয়টি হ'ল ড্রাইভার তার জন্য tmpfs এর একটি বিশেষ সংস্করণ ব্যবহার করে, তার অর্থ এই নয় যে আপনার এটি জেনেরিক tmpfs পার্টিশন হিসাবে ব্যবহার করা উচিত। পরিবর্তে, আপনার অস্থায়ী ডিরেক্টরিতে যদি আপনি চান তবে আপনার কেবল অন্য একটি tmpfs পার্টিশন তৈরি করা উচিত।


0

পিইআরএল-তে, কোনও মেশিনে সর্বনিম্ন 8 গিগাবাইট থাকা (সমস্ত চলমান লিনাক্স মিন্ট), আমি মনে করি ডিবি_ফায়াল-ভিত্তিক (একটি ফাইলের মধ্যে ডেটা স্ট্রাকচার) / ডি / / ব্যবহার করে কয়েক মিলিয়নের সাথে জটিল অ্যালগরিদমগুলি করা একটি ভাল অভ্যাস think shm

অন্যান্য ভাষায়, সর্বত্র একত্রিত না হয়ে, নেটওয়ার্ক ট্রান্সফার শুরু হওয়া এবং থামানো এড়াতে (ক্লায়েন্ট-সার্ভার বায়ুমণ্ডলে কোনও সার্ভারে অবস্থিত এমন একটি ফাইলে স্থানীয়ভাবে কাজ করা), কোনও প্রকারের ব্যাচের ফাইলটি ব্যবহার করে, আমি অনুলিপি করব সম্পূর্ণ (300-900MB) ফাইলটি একবারে / dev / shm এ, / dev / shm এ আউটপুট দিয়ে প্রোগ্রামটি চালান, ফলাফলটি সার্ভারে ফিরে লিখুন এবং / dev / shm থেকে মুছুন

স্বাভাবিকভাবেই, আমার যদি কম র্যাম থাকে তবে আমি এটি করতাম না। সাধারণত, / dev / shm এর ইন-মেমরি ফাইল সিস্টেমটি আপনার উপলব্ধ র‌্যামের অর্ধেক আকার হিসাবে পাঠ করে। তবে র‌্যামের সাধারণ ব্যবহার অবিচ্ছিন্ন। সুতরাং আপনি 2 জিবি বা তারও কম সংখ্যক ডিভাইসে সত্যিই এটি করতে পারবেন না। প্যারাফ্রেজটিকে হাইপারবোলে রূপান্তর করতে, প্রায়শই র‌্যামে এমন জিনিস থাকে যা এমনকি সিস্টেম ভাল রিপোর্ট করে না।


(আমি মনে করি এটি মূলত যা জিজ্ঞাসা করা হয়েছিল সেটির মধ্যে রয়েছে)) আমি মূলত যা বলতে চাইছি তা হচ্ছে আমি যতক্ষণ আমার যথেষ্ট স্মৃতিশক্তি থাকে ততক্ষণ আমি র্যাম ডিস্ক হিসাবে / dev / shm ব্যবহার করা স্বাচ্ছন্দ্যবোধ করি। যদি এটি কোনওভাবেই অক্ষম হয় তবে এটি আপনাকে এ থেকে বিরত করা উচিত নয়, তবে "লিনাক্সে আমার কীভাবে একটি র‌্যাম ডিস্ক থাকতে পারে?" এর মতো একটি প্রশ্ন ট্রিগার করা উচিত। উত্তরটি হল / dev / shm
ডেভিড গ্রোভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.