তাত্ক্ষণিকভাবে পূরণ করার / প্রচুর ডিস্কের স্থান ব্যবহার করার উপায়?


45

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

আমি জানি যে আমি কেবল একটি ব্যবহার করতে পারি

dd if=/dev/zero of=/tmp/hd-fillup.zeros bs=1G count=50

বা এর মতো কিছু ... তবে এটি সময় নেয় এবং সিস্টেমটি লোড করে এবং আরএম এর সাহায্যে পরীক্ষা ফাইলগুলি সরানোর সময় আবার সময় প্রয়োজন requires

সিস্টেমটি লোড না করে এবং অনেক সময় নেয় এমন একটি পার্টিশন পূরণ করার জন্য কি দ্রুত (প্রায় তাত্ক্ষণিক) উপায় আছে? আমি এমন কিছু বিষয় নিয়ে ভাবছি যা স্থান বরাদ্দ করে তবে এটি "পূরণ" করে না।


দুঃখিত, এটি উল্লেখ করতে ভুলে গেছেন যে এটি একটি >> এক্সট্রোল ফাইল সিস্টেম।
এক্সেল ওয়ার্নার

ফ্যালোকটকে সমর্থন করার জন্য আপনাকে এটিকে ext4 এ আপগ্রেড করতে হবে।
রুই এফ রিবেইরো

1
জিপ বোমা সর্বদা কাজ করে
গ্যালোইস

1
@ জাসকা এটির উত্তর দিন। শিরোনামটি পড়ার সময় এটিই আমার প্রথম ধারণা ছিল ...
ক্রোলি

আপনি ব্যবহার করবেন না কেন /dev/full? (ধরে নিচ্ছি এটি বিদ্যমান) দেবিয়ান চেষ্টা echo 'test' > /dev/fullকরুন।
ইসমাইল মিগুয়েল

উত্তর:


63

লিনাক্স সিস্টেমে ফাইল তৈরির দ্রুততম পদ্ধতিটি হ'ল fallocate:

fallocate -l 50G file 

মানুষের কাছ থেকে:

ফ্যালোকট কোনও ফাইলের জন্য বরাদ্দ হওয়া ডিস্কের স্থানটি হ্রাস করতে ব্যবহৃত হয়, তা হয় হ্রাস করা বা প্রিলোকল্ট করতে।
ফ্যালোকট সিস্টেম কলকে সমর্থন করে এমন ফাইল সিস্টেমগুলির জন্য, ব্লকগুলি বরাদ্দ করে এবং সেগুলি অবিচ্ছিন্ন হিসাবে চিহ্নিত করে দ্রুত পূর্বনির্ধারণ করা হয়, ডেটা ব্লকগুলিতে কোনও আইও প্রয়োজন হয় না। এটি জিরো দিয়ে পূরণ করে কোনও ফাইল তৈরির চেয়ে অনেক দ্রুত।
এক্সএফএস (লিনাক্স 2.6.38 সাল থেকে), ext4 (লিনাক্স 3.0 এর পর থেকে), বিটিআরএফস (লিনাক্স ৩. since থেকে) এবং টিএমপিএফ (লিনাক্স ৩.৩ থেকে) সমর্থিত।


1
কেন আপনি এটি চালাচ্ছেন sudo?
জিরিত

1
@gerrit উত্তরে সেই পয়েন্টটি যুক্ত করেছেন।
রুই এফ রিবেইরো

3
" fallocateরুট সুবিধার দরকার" আমার সিস্টেমে নেই (লিনাক্স মিন্ট 17.3, উবুন্টুর ডাউনস্ট্রিম, এভাবে দেবিয়ান)। (ext4 ফাইল সিস্টেম)
টিজে ক্রাউডার

1
+1 যদিও ওপি স্পষ্টভাবে উল্লেখ করেছে যে তার ফাইল সিস্টেমটি ext3।
syneticon-dj

1
@ রুইএফরিবিড়ো, ধন্যবাদ! sles11sp4 ive জন্য একটি ফাইল তৈরি করতে সক্ষম হয়েছে, এটি ext4 দিয়ে ফর্ম্যাট করতে পারে, তবে যেখানে এটি আরডাব্লু মোডে মাউন্ট করতে অক্ষম। পরে আমি / var / লগ / বার্তাগুলিতে একটি কার্নেল বার্তা পেয়েছি যা বলেছিল যে ext4 কেবল পঠনযোগ্য হিসাবে সমর্থিত। : /
এক্সেল ওয়ার্নার

13

অন্যান্য বিকল্পের মধ্যে রয়েছে:

  1. অ্যালার্মের চৌম্বকটি বর্তমান ব্যবহারের কাছাকাছি বা নীচে কিছুতে পরিবর্তন করতে বা
  2. সীমিত আইওনড, আকার বা অন্যান্য বৈশিষ্ট্যযুক্ত একটি খুব ছোট পরীক্ষা পার্টিশন তৈরি করতে।

রুট সংরক্ষিত শতাংশের মধ্যে চালিত হওয়ার মতো বিষয়গুলি পরীক্ষা করতে সক্ষম হওয়া, যদি থাকে তবে তা সহজেই কার্যকর হতে পারে।


রুট সংরক্ষিত শতাংশ সাধারণত 10% হয় যদি না আপনি এটি টুইট করেন - এটি বড় পার্টিশন / আধুনিক ডিস্কগুলিতে সিস্টেমের একটি খুব বড় বর্জ্য শেষ করে। অ্যালার্ম সংজ্ঞায়িত করার সময়, আপনি ইতিমধ্যে এটি অ্যাকাউন্টে নেওয়া আরও ভাল।
রুই এফ রিবেইরো

প্রথম জিনিসটির জন্য +1। একশ বার সত্য। কেন আমি আসলে মেশিন ডিস্কে কিছু তৈরি করব? আমার টেস্টিংয়ের সময় যদি কিছু (করডাম্প, ব্যাচের কাজের বড় বড় অস্থায়ী ফাইল তৈরি করা, ...) ঘটে থাকে এবং পুরো ডিস্কটি ঘটনাক্রমে খেয়ে ফেলে তবে কী হবে?
ফিজিচ

2
@ ফিশ - কেন? আপনার সতর্কতার প্রান্তটি সঠিক কিনা এবং আপনি ডিস্কের স্থান মুক্ত শতাংশের পরিবর্তে ঘটনাক্রমে ইনোড ফ্রি শতাংশ নির্ধারণের মতো কিছু করছেন না তা নিশ্চিত করার জন্য (যা আমি আগে দেখেছি)। যদি কিছু ব্যর্থ কারণ আপনার সতর্ক থ্রেশহোল্ড একটি ডিস্ক ভরাট, তারপর আপনার সতর্ক থ্রেশহোল্ড অত্যন্ত কম - সতর্ক সমগ্র বিন্দু এটি আপনাকে সতর্ক অনুমিত এর আগে কিছু বিরতি শুরু।
জনি

বিড়াল, ভাল পয়েন্ট। তবে আমার জন্য কোনও সমাধান নেই। আমার ভিএম কনফিগারেশনের উপর নিয়ন্ত্রণ নেই (পার্টিশন বা ভার্চুয়াল ডিস্ক পরিবর্তন করতে পারে না), বা নাজিআইওএস সার্ভারের উপর নিয়ন্ত্রণও রাখতে পারি না।
এক্সেল ওয়ার্নার

2
@ অ্যাক্সেলওয়ার্নার আপনি কি কোনও ফাইলকে "নকল" পক্ষ হিসাবে লুপব্যাক-মাউন্ট করতে পারবেন? এটি এখনও আপনাকে গুরুত্ব সহকারে কোনও কিছুই প্রভাবিত না করে পরীক্ষা করার অনুমতি দেবে। এটি সমর্থিত ফাইল সিস্টেমগুলির মধ্যে একটির সাথে ফর্ম্যাট করুন এবং আপনি ফ্যালোকোটের সাথেও প্রায় খেলতে পারেন।
টনি

9
  1. fallocate -l 50G big_file

  2. truncate -s 50G big_file

  3. dd of=bigfile bs=1 seek=50G count=0

এই তিনটি উপায়ে সমস্তই একটি পার্টিশন দ্রুত পূরণ করতে পারে।

আপনি যদি মত ব্যবহার DD , সাধারণত আপনি এটি দিয়ে চেষ্টা করে দেখতে পারেন চাইতে । সবেমাত্র সেট করে seek=file_size_what_you_needসেট করুন count=0। এটি সিস্টেমে একটি ফাইল রয়েছে তা জানিয়ে দেবে এবং এটির আকার আপনি যা সেট করেছেন তা কিন্তু সিস্টেমটি আসলে এটি তৈরি করবে না। এবং এইভাবে ব্যবহার করে, আপনি একটি ফাইল তৈরি করতে পারেন যা পার্টিশনের আকারের চেয়ে বড়।


উদাহরণস্বরূপ, 3 জি এর চেয়ে কম উপলব্ধ একটি এক্সট 4 পার্টিশনে। 5 ডি ফাইল তৈরি করতে ডিডি ব্যবহার করুন যা মেটাডেটা হিসাবে বিদ্যমান - কার্যত কোনও ব্লক স্পেসের প্রয়োজন নেই।

df -h . ; dd of=biggerfile bs=1 seek=5000G count=0 ; ls -log biggerfile ; df -h .

আউটপুট:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda9        42G   37G  2.8G  94% /home
0+0 records in
0+0 records out
0 bytes copied, 4.9296e-05 s, 0.0 kB/s
-rw-rw-r-- 1 5368709120000 Jun 29 13:13 biggerfile
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda9        42G   37G  2.8G  94% /home

1
আপনি আপনার উত্তরে আরও কিছু তথ্য যুক্ত করতে পারেন?
বিড়াল

আমি একইভাবে অন্যান্য প্রশ্নে অনুসন্ধান করে এমন লোকদের জন্য একটি সমাপ্ত প্রশ্নে আরও চিন্তাভাবনা যুক্ত করি। আপনি যদি না হন তবে তা উপেক্ষা করুন।
Se থেকে Ven

এই count=0পদ্ধতিটি বেশ আকর্ষণীয়, আমি একটি উদাহরণ যুক্ত করেছি।
এজিসি

7
নোট করুন যে ddউপরের উদাহরণটি ভালভাবে একটি স্পার্স ফাইল বরাদ্দ করতে পারে। সেক্ষেত্রে ফাইলের আকার 50 জি, এটি কেবলমাত্র একটি ব্লক ব্যবহার করে (বা এমনকি নয়) এবং তাই ডিস্কটি পূর্ণ হচ্ছে না। YMMV।
এমএপ

2
আমি আপনার পরামর্শটি আমার ext3 ফাইল সিস্টেমে পরীক্ষা করেছি। এটি প্রত্যাশার মতো কাজ করে নি। কাটা এবং ডিডি একটি বড় ফাইল আকারের সাথে একটি ফাইল তৈরি করেছিল, তবে "ডিএফ-এইচ" এটি সনাক্ত করতে পারেনি। এখনও একই ফ্রি এইচডি স্থান দেখায়।
এক্সেল ওয়ার্নার

0

আপনি স্ট্রেস-এনজি সরঞ্জামটিও নিতে পারেন যা বিস্তৃত লিনাক্স-ভিত্তিক সিস্টেমগুলিতে সমর্থিত:

stress-ng --fallocate 4 --fallocate-bytes 70% --timeout 1m --metrics --verify --times
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.