Ramfs এবং tmpfs এর মধ্যে পারফরম্যান্স পার্থক্য


23

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

সংক্ষেপে, আমি আগ্রহী:
- পারফরম্যান্স ওয়াইস , যা দ্রুত: ramfs বা tmpfs (এবং সম্ভবত কেন)?
- কখন tmpfs অদলবদল স্থান ব্যবহার করে ? এটি ইতিমধ্যে সংরক্ষিত ডেটাগুলি অদলবদল করতে (বর্তমানে চলমান অন্যান্য প্রোগ্রামগুলির জন্য র‌্যাম মুক্ত করতে) সরানো হয় বা এই মুহুর্তে যদি কোনও নিখরচায় র‌্যাম অবশিষ্ট থাকে না তবে কেবলমাত্র নতুন ডেটা?


উম, সার্ভারে র‌্যাম কত?
ew

1
সার্ভারটিতে মোট 16 গিগাবাইট র‌্যাম রয়েছে। আরও লক্ষণীয় যে আমার কাছে এসএসডি স্টোরেজ নেই তবে একটি একক 7200 আরপিএম এইচডিডি রয়েছে। এজন্য আমি এক ধরণের র‌্যাম স্টোরেজ ব্যবহার করার বিষয়টি বিবেচনা করছি।
ইভান কোভাসেভিচ

উত্তর:


21

আমার সুপারিশ:

সাধারণ পরিস্থিতিতে বাস্তব জীবনের ক্রিয়াকলাপ পরিমাপ ও পর্যবেক্ষণ করুন।

এই ফাইলগুলির সবসময় প্রয়োজন হয় না এবং সর্বদা ক্যাশে থেকে পরিবেশন করা হয়। তবে ভিএমটিচ নামে একটি দুর্দান্ত সরঞ্জাম রয়েছে যা আপনাকে কোনও মুহুর্তে ক্যাশে কী আছে তা বলতে পারে। আপনি এটি নির্দিষ্ট ডিরেক্টরি বা ফাইলগুলি ক্যাশে লক করতেও ব্যবহার করতে পারেন। কিছু নিয়মিত ব্যবহারের পরে জিনিসগুলি দেখতে কেমন তা দেখুন। এই পরিস্থিতির জন্য tmpfs এবং ramfs ব্যবহার করা জরুরি নয়।

দেখুন: http://hoytech.com/vmtouch/

আমি মনে করি আপনি অবাক হয়ে দেখবেন যে সর্বাধিক সক্রিয় ফাইল সম্ভবত ইতিমধ্যে ক্যাশে বাস করবে।


যতক্ষণ না tmpfs বনাম ramfs, কোনও প্রশংসনীয় পারফরম্যান্স পার্থক্য নেই। অপারেশনাল পার্থক্য রয়েছে। রিয়েল-লাইফ ইউজ কেস হ'ল ওরাকল, যেখানে র‌্যামফগুলি ব্যবহৃত হয় ঝুঁকি ছাড়াই ওরাকলকে র‍্যামে ডেটা পরিচালনা করতে দেয়। tmpfs ডেটা মেমোরি চাপের অধীনে অদলবদল করা যেতে পারে। ফ্লাইতে সেটিংসকে পুনরায় আকার দেওয়ার ও পরিবর্তন করার ক্ষেত্রেও পার্থক্য রয়েছে।


1
অসাধারণ সামান্য ইউটিলিটি! +1
জেন্নে পিক্কারাইন

1
@Wwite দুর্দান্ত উত্তর। কয়েক বছর আগে আমাদের একটি ক্ষেত্রে আমরা সত্যিই আবিষ্কার করেছি যে বেশিরভাগ ব্যবহৃত ফাইলগুলি ইতিমধ্যে ক্যাশে বাসিন্দা in ইঙ্গিত: এখনকার ফাইল সিস্টেমগুলি আমার ধারণাগুলির চেয়ে অনেক বেশি বুদ্ধিমান।
giannisapi

13

এটাকে বেশি ভাবেন না। আপনার সিস্টেমে পর্যাপ্ত র‌্যাম রাখুন এবং কার্নেলের ডিস্ক ক্যাশে আপনার জন্য জিনিসগুলির যত্ন নিতে দিন। এইভাবে আপনি সরাসরি মেমরি থেকে আসা পাঠ্যের সুবিধা পান, তবুও ডিস্কে ডেটা স্থির রাখতে সক্ষম হয়ে।


1
আমার সিস্টেমে বর্তমানে 16 গিগাবাইট র‌্যাম রয়েছে। এই চিত্রগুলি পরিবেশন করার জন্য এটি একটি সরল দেবিয়ান ইনস্টল করছে এনগিনেক্স। আমার একটি 1 গিগাবাইট নেটওয়ার্ক সংযোগ রয়েছে যা পুরো সময়কালে 100% লোডের নিচে থাকবে, কোনও নির্দিষ্ট ক্রমে এই চিত্রগুলি পরিবেশন করা হবে। আপনি কি মনে করেন যে কার্নেল এই দৃশ্যের সমস্ত 10 টি জিগ চিত্রকে ক্যাশে রেখে দেবে?
ইভান কোভাসেভিচ

3
হ্যাঁ, সিস্টেমে যদি পর্যাপ্ত র‌্যাম থাকে এবং সার্ভারে থাকা অন্যান্য অ্যাপ্লিকেশনগুলি র‌্যাম সংস্থানগুলির জন্য প্রতিযোগিতা না করে, এই ফাইলগুলি ক্যাশে থাকবে।
EEAA

2
আমি ইউনিক্স প্রশাসনে ~ 15 বছর ধরে আছি, এবং আমি কখনও এমন পরিস্থিতিতে পৌঁছাতে পারি নি যেখানে tmpfs / ramfs নেটিভ কার্নেল এফএস ক্যাশে কোনও সুবিধা দিয়ে থাকে। এটি এমনটি বলার অপেক্ষা রাখে না যে পরিস্থিতিগুলি যেখানে তাদের সাজানো হবে সেখানে অস্তিত্ব নেই, তবে তারা খুব বিরল। সাধারণত যদি জিনিসগুলির জন্য আপনার র‌্যাম ক্যাশে প্রয়োজন হয় তবে একটির উদ্দেশ্য-বিল্ড ক্যাচিং স্তর ব্যবহার করে (রেডিস / মেমক্যাচি / ইত্যাদি)।
EEAA

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

1
@ মার্তিজান ঠিক আছে। tmpfs এবং ramfs প্রকৃতপক্ষে দরকারী। উদাহরণস্বরূপ, আমি গিট সংগ্রহস্থলের একটি নিবিড় পুনর্লিখন (ফিল্টার-শাখা) করছি। মেমরির সাথে এটি করা আমার এসএসডি তে করার চেয়ে দ্রুত। ক্যাচিং পাঠকদের জন্য রচনা নয়, কারণ (সাধারণত) লিনাক্স ডিস্ক ক্রিয়াকলাপের স্থায়ীত্ব সম্পর্কে কিছু গ্যারান্টি পূরণ করতে পারে।
পল ড্রাগার

7

1) পারফরম্যান্স মানদণ্ড।

এই পৃষ্ঠাটিকে একটি রেফারেন্স হিসাবে ব্যবহার করে , আমি tmpfs এবং ramfs এর মধ্যে I / O তুলনা করেছি এবং ফলাফলগুলি যে পারফরম্যান্সের দিক থেকে এটি বেশ অভিন্ন:

# !mount
mount | grep -E "tmp|ram"
tmpfs on /dev/shm type tmpfs (rw)
ramfs on /mnt/ram type ramfs (rw,size=1G)

# dd bs=1M count=1024 if=/dev/zero of=/dev/shm/test conv=fdatasync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.634054 s, 1.7 GB/s

# dd bs=1M count=1024 if=/dev/zero of=/mnt/ram/test conv=fdatasync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.559557 s, 1.9 GB/s

# dd bs=1M count=4096 if=/dev/zero of=/dev/shm/test conv=fdatasync
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 2.5104 s, 1.7 GB/s

# dd bs=1M count=4096 if=/dev/zero of=/mnt/ram/test conv=fdatasync
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 2.36923 s, 1.8 GB/s

2) এই পৃষ্ঠা অনুসারে , tmpfs অদলবদল ব্যবহার করে, এবং ramfs অদলবদল ব্যবহার করে না।


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

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

1
আপনার কাছে ছোট ছোট ফাইল রয়েছে এমন ক্ষেত্রে কী হবে। উদাহরণস্বরূপ মিলিয়ন 100-200 কেবি ফাইল লিখুন। এছাড়াও আপনি একই ফাইল আকারের জন্য বার বার 0.2 গিগাবাইট / গুলি পার্থক্য পান? যা অবশ্যই পারফরম্যান্স পার্থক্যের দিকে নির্দেশ করবে। আমার সময়সূচী এলে আমি সম্ভবত এটি পরীক্ষা করব will তবে সে কারণেই আমি এখানে জিজ্ঞাসা করেছি, তাই অন্য কেউ যদি ইতিমধ্যে এটি করে থাকে তবে আমি সম্ভবত করণীয় তালিকা থেকে এটিকে পার করতে পারি।
ইভান কোভাসেভিচ

হ্যাঁ নিশ্চিতভাবে জানার একমাত্র উপায় হ'ল পরীক্ষা করা।
মাইকেল মার্টিনেজ

1

বিভিন্ন কার্নেল বাফার হোস্ট করার জন্য আপনার কাছে পর্যাপ্ত পরিমাণে র‌্যাম ইনস্টল করা থাকলে, অ্যাপ্লিকেশনগুলির স্ট্যাক এবং হ্যাপস, নিয়মিত ফাইল সিস্টেম ক্যাশে এবং আপনি যে সমস্ত ফাইল এতে রাখার তাগিদ করেন না, কারণ কোনও ঝুঁকি থাকবে ramfsনা বলে এর চেয়ে ধীর হওয়া উচিত না never tmpfsনকশা দ্বারা শারীরিক I / O শারীরিক I / Os নিঃসন্দেহে সেই ক্ষেত্রে কর্মক্ষমতা হ্রাসের মূল কারণ।

তবে আপনার যদি এ পরিমাণ পরিমাণ র‌্যাম ইনস্টল না করা থাকে তবে ramfsসম্ভবত ব্যবহার করে সম্ভবত ধীর হবেtmpfs ডিস্কে আরও ভাল কী হওয়া উচিত তা নির্ধারণ করার জন্য ভার্চুয়াল মেমরি হিউরিস্টিকটি ব্যবহার করার গতিবেগ হবে এবং র্যামের মধ্যে কী হওয়া উচিত বনাম ie এর সাথে থাকাকালীন tmpfs, আপনার ফাইল সিস্টেমের ডেটা র‍্যামে আটকে রয়েছে যা হয়ত সম্পদের অপব্যয়।

আপনার দ্বিতীয় প্রশ্নের উত্তর দেওয়ার জন্য, হ্যাঁ, tmpfsপুরানো ডেটা প্রথমে সোয়াপ এরিয়াতে স্থানান্তরিত হবে, শেষ "গরম" নয়।

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