একটি নিয়মিত ফাইল সিস্টেমের পরিবর্তে / টিএমপি-র জন্য tmpfs + একটি খুব বড় swap পার্টিশন ব্যবহার করছেন?


8

আমার লিনাক্স সার্ভার রয়েছে এবং আমার অতিরিক্ত 500 গিগাবাইট ডিস্ক বিভাজন রয়েছে। আমি এটি ফর্ম্যাট করতে এবং এটি / টেম্পের জন্য ব্যবহার করতে চেয়েছিলাম। সার্ভারটি মাঝেমধ্যে কিছু বড় ডেটা প্রসেসিংয়ের কাজ চালায় যাতে এটি ঘটতে পারে যে / টিএমপি অস্থায়ী ডেটা জিবি রাখবে।

তারপরে আমি একটি ধারণা পেয়েছিলাম যে পরিবর্তে আমি এটিকে পরিবর্তনের পরিবর্তে স্ব্যাপ পার্টিশন এবং মাউন্ট / টিএমপি tmpfs এ যুক্ত করতে পারি। এই ধারণা কি যুক্তিসঙ্গত?

সার্ভারটিতে 6 গিগাবাইট র‌্যাম রয়েছে, সুতরাং বেশিরভাগ ক্ষেত্রে স্পষ্ট গতির সুবিধা সহ / টেম্পে থাকা ডেটা কেবল র‌্যামে থাকে। প্রশ্নটি হ'ল, যদি এখানে / টিএমপি-তে 10-20 জিবি ডেটা বলা হয় তবে সিস্টেমটি কীভাবে সম্পাদন করবে? এক্সট 4 পার্টিশনে কেবল / টিএমপি মাউন্ট করার তুলনায় পারফরম্যান্সটি কী হবে? সাহায্যের জন্য ধন্যবাদ.

সম্পাদনা: এটি স্পষ্ট যে tmpfs এর ব্যবহার র‌্যামের সীমাতে আঘাত করলে সিস্টেমটি মেমোরি অদলবদল শুরু করে। তবে লিনাক্স কি tmpfs ডেটা পরিবর্তন করতে এবং "নিয়মিত" ডেটা র‌্যামে রাখার পক্ষে যথেষ্ট স্মার্ট? যদি হ্যাঁ, তবে আমি মনে করি এটি যুক্তিসঙ্গত আচরণ করতে পারে। যদি তা না হয় তবে পুরো সিস্টেম মারাত্মকভাবে ক্ষতিগ্রস্থ হবে।


জ্রাম সম্পর্কে ভুলবেন না
কেন শার্প

উত্তর:


12

এটি একটি ভাল ধারণা টিএম নয়

আপনি একটি বৃহত্ /tmpপার্টিশন দিয়ে ভাল থাকবেন, এটির মতো মাউন্ট করা (আপনার থেকে /etc/fstab)

tmpfs  /dev/tmp  tmpfs  defaults,nosuid,nodev,noexec,noatime,nodiratime,size=6000M 0 0

এবং আপনি আপনার বাহ্যিক ড্রাইভটি দৈত্য অদলবদল বিভাজন হিসাবে যুক্ত করতে পারেন

/dev/sdb1  swap  swap  defaults  0 0

যখন এটির সীমাটি হিট হয়ে যায়, আপনার মেশিনটি পৃষ্ঠাগুলি র‍্যাম থেকে ডিস্কে অদলবদল করতে শুরু করবে - এমন সময়ে লোড গড় ছাদ দিয়ে যাবে এবং মেশিনটি থামবে।

যে কোনও উপায়ে সোয়্যাপের উপর নির্ভর করা এটির একটি খারাপ ধারণা, আপনি আপনার 500 গিগাবাইট ড্রাইভ বিক্রি করে আরও বেশি র্যাম কেনা ভাল - এটি সস্তা।

সংক্ষেপে

আপনি যদি সত্যিই আপনার 500 গিগাবাইট ডিস্কটি ব্যবহার করতে চান তবে আপনি আপনার 500 গিগাবাইটের ডিস্কটি /tmpঅ্যানটাইমাল এবং ডায়ারটাইম অক্ষম (যেমন। ext2) সহ একটি অ যাত্রাবিহীন ফাইল সিস্টেম দিয়ে মাউন্ট করতে পারেন । যে যথেষ্ট দ্রুত একটি মেশিন যে সঙ্গে তার আচরণ চেয়ে হবে SWAPing


1
এটি একটি মারাত্মক ধারণা। Tmpfs ব্যবহার করে এবং তার উপর নির্ভর করে অদলবদলের দিকে ধাক্কা দেওয়ার জন্য এটি একটি ধারণার মতো শব্দ ... তবে বাস্তবতাটি হ'ল আপনার সিস্টেমটি ভুল জিনিসগুলিকে শারীরিক র‍্যামে টিএমপিএফ রাখার পক্ষে পরিবর্তন করতে পারে। আপনি আপনার 500gb পার্টিশনটিকে / টেম্পে সরাতে আরও ভাল হবেন এবং এটি দিয়েই হয়ে যান। আমি এক্সএফএস এর রিসার্ফগুলির মতো একটি অত্যন্ত হালকা ওজনের ফাইল-সিস্টেমটি ব্যবহার করার পরামর্শ দিচ্ছি ... যেহেতু আপনি এটিকে দ্রুত শুরুতে বা যখনই প্রয়োজন দেখাবে তখনই এটি পুনরায় ফর্ম্যাট করতে পারেন ... এবং আপনার সত্যিকারের সমস্ত উন্নত বৈশিষ্ট্যগুলির দরকার নেই ext2 / 3/4 এবং এই জাতীয়।
TheCompWiz

3
ডাউনটা কেন? আমি এই ক্রিয়াকে সমবেদনা জানাইনি - তবে কীভাবে এটি করা যায় তার একটি উপায় সরবরাহ করছি। প্রশ্নটি ছিল এটি সম্ভব এবং এটি সম্পর্কে কীভাবে যেতে হয় - এটি একটি ভাল ধারণা ছিল কিনা তা নয়। আমি স্পষ্ট করে বলেছি যে এটি একটি খারাপ ধারণা - এবং দ্রুত tmpঅ্যাক্সেসের প্রয়োজন হলে আসল সমাধানটি আরও বেশি র‌্যাম কেনা উচিত ।
ফ্রান্স

1
এটি ভাল ধারণার জন্য জায়গা ... নালী-টেপ এবং বুদ্বুদ-গাম সমাধান নয়। লোকেরা এখানে সাহায্যের জন্য আসে ... এবং কীভাবে তাদের জীবনকে নরকে পরিণত করা যায় সে সম্পর্কে ধারণার জন্য নয়।
TheCompWiz

আমি আপনার মন্তব্যের সাথে মিল রেখে আমার উত্তর সম্পাদনা করেছি, আপনার
ইনপুটটির

3
এখানের প্রত্যেকেই একমত যে এটি একটি খারাপ ধারণা। তবুও, কার্নেল ডকুমেন্টেশনে tmpfs.txt এটিকে tmpfs- র ব্যবহারের ক্ষেত্রে হিসাবে তালিকাভুক্ত করে। @ ফ্রান, আপনার ভয়ঙ্কর দৃser়তা সমর্থন করার জন্য আপনার কাছে কি ডেটা রয়েছে যা এটি আঘাত হানার কারণ হতে পারে? স্পষ্টতই এটি / টেম্পে কী হবে তার উপর নির্ভর করে।

1

এটি একটি যুক্তিসঙ্গত ধারণা হতে পারে।

/ টেম্পে একটি প্রকৃত ফাইল সিস্টেম স্থাপন করা ওভারহেডগুলিতে জোর দেয়, কারণ ফাইল সিস্টেমগুলি ব্যর্থতার ক্ষেত্রে ডিস্কের ডেটাটি ক্ষতিগ্রস্থ না করে তা নিশ্চিত করে তোলে। বুট করার সময় পরিষ্কার করা একটি / টিএমপি-র জন্য, এটি অবশ্যই ঠিক ওভারহেড। একটি tmpfs ব্যবহার করা যে ওভারহেড এড়াতে পারে।

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

সুতরাং নীচের লাইনটি: এটি নির্ভর করে, কোনটি সবচেয়ে ভাল কাজ করে তা দেখার জন্য আপনার উভয় বিকল্পের চেষ্টা করা উচিত।

আপনি যখন tmpfs মাউন্ট করবেন, স্পষ্টভাবে আকার সেট করতে মনে রাখবেন না। ডিফল্টটি দৈহিক র্যামের অর্ধেক, তাই মাত্র 3 জিবি।


- যুক্তিসঙ্গত উত্তর (যা
বিস্মৃতভাবে অন্যটির

1

আপনার যখন সাধারণত খুব বেশি ডেটা থাকে না /tmpতবে এটি মাঝেমধ্যে সীমিত সময়ের জন্য অন্তহীন গিগাবাইট ব্যবহার করে এটি একটি ভাল ধারণা । সমস্যাটি হ'ল লিনাক্স অদলবদল সিস্টেমটি সঠিকভাবে করতে আপনার ব্যবহারের ক্ষেত্রে যথেষ্ট পরিমাণে জানে না। এটি সাধারণত প্রোগ্রামের পৃষ্ঠাগুলিতে ডাম্পিং বা অদলবদল ক্যাশেটিকে প্রাধান্য দেবে, তবে এটি সত্যিকার অর্থে সহায়তা করে না। আপনার লক্ষ্য অর্জনের জন্য সিগ্রুপগুলি ব্যবহার করা সম্ভব হতে পারে, যখন প্রোগ্রাম মেমোরিতে স্ক্র্যাচ ডেটা রাখা হয় তবে আমি এই ক্ষেত্রে সিগ্রুপগুলি কীভাবে কনফিগার করব তা নিশ্চিত নই (আমি মনে করি আপনি FUSE tmpfs ব্যবহার করতে পারবেন ...) । ভাগ্যক্রমে, এটি প্রয়োজন হয় না। আপনি zram এবং একটি ব্যাকিং ডিভাইস দিয়ে কাঙ্ক্ষিত আচরণ পেতে পারেন।

zram-initএমন একটি প্রোগ্রাম যা জ্রাম স্থাপনের কাজটি স্বয়ংক্রিয়ভাবে চালিত হয় যা একটি সঙ্কোচিত র‌্যাম ব্লক ডিভাইস। zram-initকনফিগারেশনে সাধারণত /tmpzram হিসাবে মাউন্ট করার উদাহরণ রয়েছে । এটি নিম্নলিখিত মত কিছু হবে

type0=/tmp
flag0= 
size0=524288 # 500G of logical space
mlim0=2G # 2G of memory
back0=/dev/loop0 # (or /dev/sdxN, your large slow drive)
notr0= 
maxs0=4 # maximum number of parallel processes for this device
algo0=zstd 
labl0=tmp # the label name
uuid0= 
args0= 

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

সামগ্রিক সিস্টেমের কার্যকারিতা বিরূপভাবে প্রভাবিত না করে নির্দিষ্ট প্রক্রিয়াগুলিকে অদলবদল করতে cgroups এর সাথে মিলে একই জাতীয় সেটআপ ব্যবহার করা যেতে পারে।

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