বিটওয়েম টিএমপিএফ এবং এসএমএস কোনও পার্থক্য নেই। tmpfs shm এর নতুন নাম। shm এর অর্থ শारेডমেমোরি।
দেখুন: লিনাক্স tmpfs ।
Tmpfs আজও ব্যবহৃত হওয়ার মূল কারণটি হ'ল আমার / ইত্যাদি / fstab এ আমার ভেন্টু বক্সে দেওয়া মন্তব্য। বিটিডাব্লু ক্রোমিয়ামটি লাইনটি হারিয়ে যাওয়ার সাথে তৈরি করবে না:
# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
# POSIX shared memory (shm_open, shm_unlink).
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
যা লিনাক্স কার্নেল ডকুমেন্টেশন থেকে বেরিয়ে এসেছিল
বরাত দিয়ে:
tmpfs এর নিম্নলিখিত ব্যবহার রয়েছে:
1) সর্বদা একটি কার্নেল অভ্যন্তরীণ মাউন্ট থাকে যা আপনি কখনই দেখতে পাবেন না
। এটি ভাগ করা বেনামে ম্যাপিং এবং এসওয়াইএসভি ভাগ করা
মেমরির জন্য ব্যবহৃত হয় ।
এই মাউন্টটি CONFIG_TMPFS এর উপর নির্ভর করে না। যদি CONFIG_TMPFS সেট না করা থাকে তবে tmpfs এর ব্যবহারকারীর দৃশ্যমান অংশটি তৈরি হয় না। তবে অভ্যন্তরীণ
প্রক্রিয়া সর্বদা উপস্থিত থাকে।
২) গ্লিবসি ২.২ এবং
তারপরে পোসিক্স শেয়ার্ড মেমোরি (shm_open, shm_unlink) এর জন্য tmpfs / dev / shm এ বসানো হবে বলে আশা করে। নিম্নলিখিত
লাইনটি / etc / fstab এ যুক্ত করা উচিত এটির যত্ন নেওয়া উচিত:
tmpfs / dev / shm tmpfs 0 0 ডিফল্ট হয়
আপনার প্রয়োজন অনুসারে tmpfs মাউন্ট করার জন্য যে ডিরেক্টরিটি তৈরি করতে চান তা মনে রাখবেন।
এই মাউন্টটি SYSV ভাগ করা মেমরির প্রয়োজন হয় না । অভ্যন্তরীণ
মাউন্ট তার জন্য ব্যবহৃত হয়। (২.৩ কার্নেল সংস্করণে
এসএমএসভি
শেয়ার্ড মেমরি ব্যবহারের জন্য tmpfs (shm fs) এর পূর্বসূরীর মাউন্ট করা প্রয়োজন ছিল )
3) কিছু লোক (আমাকে সহ) এটি মাউন্ট করা খুব সুবিধাজনক বলে মনে করে
যেমন / tmp এবং / var / tmp এবং একটি বড় অদলবদল রয়েছে। এবং এখন
tmpfs ফাইলের লুপ মাউন্টগুলি কাজ করে, তাই বেশিরভাগ
বিতরণ দ্বারা প্রেরিত মকিনিতার্ড একটি tmpfs / tmp দিয়ে সফল হওয়া উচিত।
4) এবং সম্ভবত আরও অনেক কিছু আমি :-) সম্পর্কে জানি না
tmpfs এর আকার দেওয়ার জন্য তিনটি মাউন্ট অপশন রয়েছে:
আকার: এই tmpfs উদাহরণের জন্য বরাদ্দ করা বাইটের সীমা। অদলবদল ছাড়াই ডিফল্ট আপনার শারীরিক র্যামের অর্ধেক। আপনি যদি নিজের টিএমপিএফস উদাহরণগুলিকে বড় করেন তবে মেশিনটি অচল হয়ে যাবে যেহেতু ওওএম হ্যান্ডলার সেই মেমরিটি মুক্ত করতে সক্ষম হবে না।
এনআর_ব্লকস: আকারের মতো, তবে PAGE_CACHE_SIZE এর ব্লকগুলিতে।
nr_inodes: এই দৃষ্টান্তের জন্য সর্বাধিক সংখ্যক ইনোড । ডিফল্টটি আপনার শারীরিক র্যাম পৃষ্ঠাগুলির সংখ্যার অর্ধেক, বা (হাইমেমযুক্ত কোনও মেশিনে) লোমেম র্যাম পৃষ্ঠাগুলির সংখ্যা, যার মধ্যে কম হয়।
স্বচ্ছ হিউজপেজ কার্নেল ডক থেকে:
সমস্ত অব্যবহৃত মেমরির ক্যাশে বা অন্যান্য অস্থাবর (বা এমনকি অস্থাবর সত্তা) হিসাবে ব্যবহার করার অনুমতি দিয়ে হুগেলবিএফএসের সংরক্ষণের পদ্ধতির তুলনায় যদি স্বচ্ছ হিউজপেজ সমর্থনটি মুক্ত মেমরির কার্যকারিতা সর্বাধিক করে তোলে। বিশাল পৃষ্ঠাগুলি বরাদ্দ ব্যর্থতাগুলি ইউজারল্যান্ড থেকে লক্ষণীয় হওয়ার জন্য এটি সংরক্ষণের দরকার নেই। এটি পেজিং এবং অন্যান্য সমস্ত অ্যাডভান্সড ভিএম বৈশিষ্ট্যগুলি হিটপেজগুলিতে উপলভ্য করার অনুমতি দেয়। অ্যাপ্লিকেশনগুলির সুবিধা গ্রহণের জন্য এটির কোনও পরিবর্তন দরকার নেই।
অ্যাপ্লিকেশনগুলি তবে এই বৈশিষ্ট্যটির সুবিধা গ্রহণের জন্য আরও অনুকূলিত করা যেতে পারে, যেমন এমএম্যাপ সিস্টেমের বন্যা এড়াতে তারা আগে অনুকূলিত হয়েছে যেমন প্রতিটি ম্যালোক (4 কে) কল করে। ইউজারল্যান্ড অপ্টিমাইজ করা একেবারে বাধ্যতামূলক নয় এবং খুগপেজ ইতিমধ্যে বিশাল পৃষ্ঠার অজানা অ্যাপ্লিকেশনগুলির জন্য দীর্ঘকালীন পৃষ্ঠাগুলির বরাদ্দগুলির যত্ন নিতে পারে যা প্রচুর পরিমাণে স্মৃতি নিয়ে কাজ করে।
কিছু গণনা করার পরে নতুন মন্তব্য:
হিউজপেজের আকার: 2 এমবি
হিউজেপেজ ব্যবহৃত: সমস্ত 0 এর প্রমাণ অনুসারে কিছুই নেই / অফ, তবে উপরের 2 এমবি অনুযায়ী সক্ষম হয়েছে।
ডাইরেক্টম্যাপ 4 কে: 8.03
জিবি ডাইরেক্টম্যাপ 2 এম: 16.5
জিবি ডাইরেক্টম্যাপ 1 জি: 2 জিবি
টিএইচএসে অপ্টিমাইজেশান সম্পর্কিত উপরের অনুচ্ছেদটি ব্যবহার করে, দেখে মনে হচ্ছে আপনার মেমরির 8ob মেমরি 4K, 16.5Gb এর ম্যালোক ব্যবহার করে এমন অ্যাপ্লিকেশন ব্যবহার করছে যা 2M এর ম্যালোক ব্যবহার করে অ্যাপ্লিকেশন দ্বারা অনুরোধ করা হয়েছে। 2M এর mallocs ব্যবহার করে অ্যাপ্লিকেশনগুলি কার্নেলের 2M বিভাগগুলি অফলোড করে হিউজপেজ সমর্থন অনুকরণ করছে। এটি পছন্দসই পদ্ধতি, কারণ কার্নেল দ্বারা একবার ম্যালোক প্রকাশিত হলে, মেমরিটি সিস্টেমে প্রকাশিত হয়, যেখানে বিশাল পৃষ্ঠাগুলি ব্যবহার করে tmpf গুলি মাউন্ট করার ফলে সিস্টেমটি পুনরায় চালু না হওয়া পর্যন্ত সম্পূর্ণ পরিচ্ছন্নতার ফলাফল হয় না। শেষ অবধি, সহজটি আপনার 2 টি প্রোগ্রাম খোলা / চলমান রয়েছে যা 1Gb এর ম্যালোকের অনুরোধ করেছে
আপনারা যারা পড়েন যে কোনও ম্যালোক জানেন না সেটি সি এর একটি স্ট্যান্ডার্ড স্ট্রাকচার যা মেমরি অ্যালোকেশনকে বোঝায়। এই গণনাগুলি প্রমাণ হিসাবে কাজ করে যে ডাইরেক্টম্যাপিং এবং টিএইচএসের মধ্যে ওপির পারস্পরিক সম্পর্ক সঠিক হতে পারে। এছাড়াও মনে রাখবেন যে কেবলমাত্র fs মাউন্ট করার ফলে কেবল 2MB বৃদ্ধি পাওয়া যায়, যদিও THS ব্যবহার করে সিস্টেমটিকে মেমরি পরিচালনা করতে দেওয়া হয় বেশিরভাগ 4k ব্লকে, মেমরি পরিচালনার ক্ষেত্রে প্রতিটি ম্যালোক কল সিস্টেমকে 2044k বাঁচায় (2048 - 4 ) অন্য কিছু প্রক্রিয়া ব্যবহারের জন্য।
/proc/meminfo
যেগুলিতেHugePage
(অথবা আপনার কার্নেল সংস্করণ এই নেই)? এটি কোন আর্কিটেকচারে রয়েছে (x86_64 আমি মনে করি)?