কেন ডিস্কের ব্যবহার পরিমাপের বিভিন্ন উপায় রয়েছে?


113

আমি যখন আমার ফাইলগুলির আকারগুলি যোগ করি, তখন আমি একটি চিত্র পাই। আমি যদি দৌড়ে যাই তবে আমি duঅন্য একটি চিত্র পেয়েছি। আমি যদি duআমার পার্টিশনের সমস্ত ফাইল চালনা করি তবে কী dfদাবি ব্যবহার করা হয় তার সাথে এটি মেলে না । আমার ফাইলগুলির মোট আকারের জন্য কেন এতগুলি বিভিন্ন চিত্র রয়েছে? কম্পিউটার যুক্ত করা যাবে না?

যোগ করার কথা বলছি: যখন আমি "ব্যবহৃত" এবং "উপলব্ধ" কলামগুলি যোগ করি তখন আমি dfমোট চিত্র পাই না। এবং এই মোট চিত্রটি আমার পার্টিশনের আকারের চেয়ে ছোট। এবং আমি যদি আমার পার্টিশনের মাপগুলি যোগ করি তবে আমি আমার ডিস্কের আকার পাই না! কি দেয়?

উত্তর:


143

সংখ্যা যুক্ত করা সহজ। সমস্যাটি হ'ল যুক্ত করার মতো বিভিন্ন সংখ্যা রয়েছে।

একটি ফাইল কত ডিস্ক স্পেস ব্যবহার করে?

মৌলিক ধারণা যে ধারণকারী একটি ফাইল এন বাইট ব্যবহার এন ফাইলের মেটাডেটা (অনুমতি, টাইমস্ট্যাম্প, ইত্যাদি), এবং তথ্যের জন্য ওভারহেড একটি বিট সিস্টেমে প্রয়োজন যে: ডিস্কের স্থান বাইট, প্লাস কিছু নিয়ন্ত্রণ তথ্যের জন্য একটি বিট ফাইলটি কোথায় সঞ্চয় করা আছে তা সন্ধান করুন। তবে অনেক জটিলতা রয়েছে।

অণুবীক্ষণিক জটিলতা

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

কিছুটা বেশি প্রযুক্তিগত, একটি সাধারণ সাধারণ ফাইল সিস্টেমে, স্থানটি ব্লকে বিভক্ত । একটি সাধারণ ব্লকের আকার 4KiB। প্রতিটি ফাইল একটি পূর্ণসংখ্যক ব্লক গ্রহণ করে। ফাইলের আকারটি ব্লকের আকারের একাধিক না হলে শেষের ব্লকটি কেবল আংশিকভাবে ব্যবহৃত হয়। সুতরাং 1 বাইট ফাইল এবং 4096-বাইট ফাইল উভয়ই 1 টি ব্লক গ্রহণ করে, যেখানে 4097-বাইট ফাইল দুটি ব্লক গ্রহণ করে। আপনি duকমান্ডটি দিয়ে এটি পর্যবেক্ষণ করতে পারেন : আপনার ফাইল সিস্টেমে যদি 4KiB ব্লক আকার থাকে, তবে du1-বাইট ফাইলের জন্য 4KiB প্রতিবেদন করবে।

যদি কোনও ফাইল বড় হয়, তবে কেবলমাত্র ফাইলগুলি তৈরি করে এমন ব্লকগুলির তালিকা সংরক্ষণ করার জন্য অতিরিক্ত ব্লকগুলির প্রয়োজন হয় (এগুলি পরোক্ষ ব্লক ; আরও পরিশীলিত ফাইল সিস্টেমগুলি এক্সটেন্টের আকারে এটি অনুকূলিত করতে পারে )। ls -lজিএনইউ বা রিপোর্ট অনুযায়ী ফাইল আকারে এগুলি প্রদর্শিত হয় না du --apparent-size; du, যা আকারের বিপরীতে ডিস্ক ব্যবহারের প্রতিবেদন করে, সেগুলির জন্য অ্যাকাউন্ট করে।

কিছু ফাইল সিস্টেম একই ব্লকে বেশ কয়েকটি ফাইল লেজ প্যাক করতে সর্বশেষ ব্লকের অবশিষ্ট ফাঁকা স্থানটি পুনরায় ব্যবহার করার চেষ্টা করে । কিছু ফাইল সিস্টেম (যেমন ext4 হিসাবে লিনাক্স ৩.৮ ছোট ফাইলগুলির জন্য 0 টি ব্লক ব্যবহার করে (মাত্র কয়েকটি বাইট) যা পুরোপুরি ইনোডে ফিট করে।

ম্যাক্রোস্কোপিক জটিলতা

সাধারণত উপরে যেমন দেখা যায়, মোট আকারটি duফাইলের দ্বারা ব্যবহৃত ব্লক বা এক্সটেন্টগুলির মাপের সমষ্টি।

duফাইলটি সংকুচিত করা হলে রিপোর্ট করা আকারটি আরও কম হতে পারে। ইউনিক্স সিস্টেমগুলি traditionতিহ্যগতভাবে একটি ক্রুড ফর্মকে সংক্ষেপণের জন্য সমর্থন করে: যদি কোনও ফাইল ব্লকে কেবল নাল বাইট থাকে, তবে জিরোগুলির একটি ব্লক সংরক্ষণের পরিবর্তে, ফাইল সিস্টেম সেই ব্লকটিকে পুরোপুরি বাদ দিতে পারে। এর মতো বাদ দেওয়া ব্লকযুক্ত একটি ফাইলকে স্পার্স ফাইল বলা হয় । কোনও ফাইলে নাল বাইটের একটি বৃহত সিরিজ থাকে যখন স্পার্স ফাইলগুলি স্বয়ংক্রিয়ভাবে তৈরি হয় না, তখন অ্যাপ্লিকেশনটিকে অবশ্যই ফাইলটি স্পার হওয়ার জন্য ব্যবস্থা করতে হবে।

যেমন কিছু ফাইল সিস্টেম Btrfs এবং ZFS সাধারণ সমর্থন কম্প্রেশন

উন্নত জটিলতা

Zfs এবং btrfs এর মতো খুব আধুনিক ফাইল সিস্টেমের দুটি প্রধান বৈশিষ্ট্য ফাইলের আকার এবং ডিস্কের ব্যবহারের মধ্যে সম্পর্ককে আরও দূরের করে তোলে: স্ন্যাপশট এবং ডুপ্লিকেশন।

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

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

বন্টন হ'ল স্টোরেজ অপ্টিমাইজেশান কৌশল যা অভিন্ন ব্লকগুলি সঞ্চয় করা এড়িয়ে চলে। সাধারণ ডেটা সহ, সদৃশগুলি সন্ধান করা সর্বদা চেষ্টা করার মতো নয়। Zfs এবং btrfs উভয়ই optionচ্ছিক বৈশিষ্ট্য হিসাবে প্রতিলিপি সমর্থন করে।

duফাইল আকারের যোগফলের চেয়ে আলাদা কেন ?

আমরা উপরে দেখেছি যে duপ্রতিটি ফাইলের জন্য রিপোর্ট করা আকারটি সাধারণত ফাইলটি ব্যবহৃত ব্লক বা এক্সটেন্টগুলির মাপের সমষ্টি। লক্ষ্য করুন যে ডিফল্টরূপে, ls -lবাইটগুলিতে আকারগুলি তালিকাভুক্ত করে, তবে duকিবিতে মাপের তালিকাবদ্ধ করে, বা আরও কিছু traditionalতিহ্যবাহী সিস্টেমে 512-বাইট ইউনিট (সেক্টর) ( du -kকিলোবাইট ব্যবহারের জন্য বাধ্য করে ) lists বেশিরভাগ আধুনিক ইউনিট সমর্থন করে ls -lhএবং du -hকে, এম, জি ইত্যাদি ব্যবহার করে "মানব-পঠনযোগ্য" নম্বরগুলি যথাযথ হিসাবে (কিবি, এমআইবি, জিআইবি) ব্যবহার করে।

আপনি যখন duকোনও ডিরেক্টরি চালান , তখন ডিরেক্টরি ডিরেক্টরিতে সমস্ত ফাইলের ডিস্ক ব্যবহারের তালিকাটি নিজেরাই করে including একটি ডিরেক্টরিতে ডেটা থাকে (ফাইলগুলির নাম এবং ফাইলের মেটাডেটা যেখানে রয়েছে তার পয়েন্টার), তাই এটির জন্য কিছুটা সঞ্চয় স্থান প্রয়োজন। একটি ছোট ডিরেক্টরি একটি ব্লক গ্রহণ করবে, একটি বৃহত্তর ডিরেক্টরিতে আরও ব্লক প্রয়োজন। ডিরেক্টরি দ্বারা ব্যবহৃত স্টোরেজের পরিমাণটি কখনও কখনও কেবল এতে থাকা ফাইলগুলির উপরই নির্ভর করে না তবে সেগুলি যেভাবে সন্নিবেশ করা হয়েছিল এবং সেই সাথে কিছু ফাইল মুছে ফেলা হয় তার উপরও নির্ভর করে (কিছু ফাইল সিস্টেমের সাহায্যে এটি গর্ত ছেড়ে দিতে পারে - ডিস্কের স্থান এবং কার্য সম্পাদনের মধ্যে একটি আপস) ), তবে পার্থক্যটি ক্ষুদ্র হবে (এখানে এবং সেখানে একটি অতিরিক্ত ব্লক)। আপনি যখন দৌড়াবেনls -ld /some/directory, ডিরেক্টরি আকারের তালিকাভুক্ত করা হয়। (দ্রষ্টব্য যে আউটপুটটির শীর্ষে "মোট এনএনএন" লাইনটি ls -lকোনও সম্পর্কহীন সংখ্যা নয়, এটি কিবি বা সেক্টরে প্রকাশিত তালিকাভুক্ত আইটেমগুলির ব্লকের আকারগুলির সমষ্টি))

মনে রাখবেন duএতে ডট ফাইল রয়েছে যা lsআপনি বিকল্প -Aবা -aঅপশনটি ব্যবহার না করে দেখায় না ।

কখনও কখনও duপ্রত্যাশিত যোগফলের চেয়ে কম রিপোর্ট করে। ডিরেক্টরি গাছের ভিতরে শক্ত লিঙ্কগুলি থাকলে এটি ঘটে : duপ্রতিটি ফাইলকে একবারে গণনা করে।

ZFSলিনাক্সের মতো কিছু ফাইল সিস্টেমে কোনও ফাইলের duবর্ধিত বৈশিষ্ট্য দ্বারা দখল করা পুরো ডিস্ক স্পেসের প্রতিবেদন করা হয় না।

সাবধান থাকুন যে কোনও ডিরেক্টরিতে duযদি মাউন্ট পয়েন্ট থাকে তবে -xঅপশন না দিলে এই মাউন্ট পয়েন্টগুলির সমস্ত ফাইলও গণনা করবে । সুতরাং উদাহরণস্বরূপ যদি আপনি আপনার মূল ফাইল সিস্টেমের ফাইলগুলির মোট আকার চান তবে চালান du -x /, না du /

যদি একটি ফাইল-সিস্টেম একটি খালি নয় ডিরেক্টরিতে মাউন্ট করা হয় তবে সেই ডিরেক্টরিতে থাকা ফাইলগুলি মাউন্ট করা ফাইল সিস্টেমের মাধ্যমে লুকানো থাকে। তারা এখনও তাদের স্থান দখল করে, কিন্তু duতাদের খুঁজে পাবে না।

মুছে ফেলা ফাইল

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

  • ফাইলটির লিঙ্কের গণনা অবশ্যই 0 এ নেমে যেতে হবে: যদি কোনও ফাইলে একাধিক হার্ড লিঙ্ক থাকে তবে একটি অপসারণ করা অন্যকে প্রভাবিত করে না।
  • যতক্ষণ না কোনও প্রক্রিয়া ফাইলটি খোলা থাকে ততক্ষণ ডেটা থেকে যায়। সমস্ত প্রক্রিয়া ফাইল বন্ধ হয়ে গেলে কেবল ফাইলটি মুছে ফেলা হয়। আউটপুট fuser -mবা lsofমাউন্ট পয়েন্টে ফাইলগুলি মুছে ফেলা সত্ত্বেও, সেই ফাইল সিস্টেমটিতে একটি ফাইল খোলা রয়েছে এমন প্রক্রিয়াগুলি অন্তর্ভুক্ত করে।
  • এমনকি যদি কোনও প্রক্রিয়া মুছে ফেলা ফাইলটি খোলা না থাকে, সেই ফাইলটি কোনও loopডিভাইসের ব্যাকএন্ড হয় তবে ফাইলটির স্থান পুনরুদ্ধার করা যাবে না । losetup -a(হিসাবে root) আপনাকে বলতে পারে loopবর্তমানে কোন ডিভাইসগুলি সেট আপ করা হয়েছে এবং কোন ফাইলটিতে। লুপ ডিভাইসটি losetup -dডিস্কের জায়গাটি পুনরায় দাবি করার আগে অবশ্যই (দিয়ে ) নষ্ট করা উচিত ।

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

dfঠিক এই সংখ্যাগুলি কি ?

একটি সাধারণ ফাইল সিস্টেমের মধ্যে রয়েছে:

  • ফাইল (ডিরেক্টরি সহ) ডেটা এবং কিছু মেটাডেটা (অপ্রত্যক্ষ ব্লক এবং কিছু ফাইল সিস্টেমে বর্ধিত বৈশিষ্ট্য সহ) সহ ব্লক।
  • ফ্রি ব্লক
  • মূল ব্যবহারকারীদের জন্য সংরক্ষিত ব্লক।
  • সুপারব্লকস এবং অন্যান্য নিয়ন্ত্রণ তথ্য।
  • Inodes
  • একটি জার্নাল

শুধুমাত্র প্রথম ধরণের দ্বারা রিপোর্ট করা হয় du। যখন এটি আসে df, তখন "ব্যবহৃত", "উপলব্ধ" এবং মোট কলামগুলি কী সিস্টেম ফাইলের উপর নির্ভর করে (অবশ্যই ব্যবহৃত ব্লকগুলি (অপ্রত্যক্ষগুলি সহ) সর্বদা "ব্যবহৃত" কলামে থাকে এবং অব্যবহৃত ব্লকগুলি সর্বদা " উপলব্ধ "কলাম)।

কোনো ext2 / ext3 / ext4 এই মধ্যে ফাইল-সিস্টেম রিজার্ভ রুট ব্যবহারকারী স্থান 5%। সিস্টেমটি পূরণ না করে চালিয়ে যেতে (বিশেষত লগিংয়ের জন্য, এবং সমস্যা সমাধানের সময় সিস্টেম প্রশাসককে কিছুটা তথ্য সঞ্চয় করতে দেওয়া) এটি রুট ফাইল সিস্টেমে কার্যকর। এমনকি ডেটা পার্টিশনের জন্য যেমন /home, সংরক্ষিত স্থান রাখা দরকারী কারণ প্রায়-পূর্ণ ফাইল সিস্টেমটি খণ্ডিত হওয়ার প্রবণ। লিনাক্স কোনও ফাইল রচনা করার সময় ক্রমাগত অনেকগুলি ব্লক প্রাক-বরাদ্দ করে (যা বিশেষত হার্ড ডিস্কের মতো যান্ত্রিক ডিভাইসগুলি ঘোরানোর ক্ষেত্রে ফাইল ভাঙ্গনকে ধীরে ধীরে কমিয়ে দেয়) চেষ্টা করে, তবে যদি সেখানে বেশিরভাগ ব্লক না থাকে তবে এটি কাজ করতে পারে না ।

প্রথাগত ফাইল সিস্টেম, আপ ও ext4 কিন্তু Btrfs, একটি নির্দিষ্ট সংখ্যা রিজার্ভ সহ inodes যখন ফাইলসিস্টেম তৈরি করা হয়। এটি ফাইল সিস্টেমের নকশাটিকে উল্লেখযোগ্যভাবে সরল করে তোলে, তবে এর ন্যূনতম দিকটি রয়েছে যে ইনোডের সংখ্যাটি সঠিকভাবে আকারের করা দরকার: অনেকগুলি ইনোডের সাহায্যে স্থান নষ্ট হয়; খুব কম ইনোডের সাহায্যে, ফাইলসিসম স্থান ছাড়িয়ে যাওয়ার আগে ইনোডের বাইরে চলে যেতে পারে। কমান্ডটি df -iজানিয়েছে যে কয়টি ইনোড ব্যবহার হচ্ছে এবং কতগুলি উপলব্ধ রয়েছে (ফাইল সিস্টেম যেখানে ধারণাটি প্রযোজ্য নয় সেখানে 0 রিপোর্ট করতে পারে)।

tune2fs -lএকটি ext2 / ext3 / ext4 ফাইল সিস্টেম সমন্বিত ভলিউমটিতে চালনা করা মোট সংখ্যা এবং বিনামূল্যে ইনোড এবং ব্লকগুলির সংখ্যা সহ কিছু পরিসংখ্যানের প্রতিবেদন করে।

আরেকটি বৈশিষ্ট হল ব্যাপার গুলান পারেন সাবভলিউমগুলি দেখুন (সমর্থিত Btrfs নামের অধীনে, এবং ZFS মধ্যে ডেটাসেট )। একাধিক সাবভলিউম একই স্থান ভাগ করে নিলেও পৃথক ডিরেক্টরি গাছের শিকড় রয়েছে।

যদি কোনও নেটওয়ার্ক সিস্টেমের (এনএফএস, সাম্বা, ইত্যাদি) উপর মাউন্ট করা থাকে এবং সার্ভার সেই ফাইল সিস্টেমের একটি অংশ রফতানি করে (যেমন সার্ভারের একটি /homeফাইল সিস্টেম রয়েছে এবং রফতানি হয়/home/bob ), তবে dfক্লায়েন্টের উপর পুরো ফাইল সিস্টেমের ডেটা প্রতিফলিত হয়, না খালি ক্লায়েন্টে রফতানি করা এবং মাউন্ট করা অংশের জন্য।

আমার ডিস্কে স্থানটি কী ব্যবহার করছে?

আমরা উপরে দেখেছি যে রিপোর্ট করা মোট আকার dfসর্বদা ফাইল সিস্টেমের সমস্ত নিয়ন্ত্রণ ডেটা অ্যাকাউন্টে নেয় না। প্রয়োজন হলে ফাইল সিস্টেমের সঠিক আকার পেতে ফাইল-সিস্টেম-নির্দিষ্ট সরঞ্জামগুলি ব্যবহার করুন। উদাহরণস্বরূপ, ext2 / ext3 / ext4 সহ, tune2fs -lব্লক গণনা দ্বারা ব্লক আকারটি চালান এবং গুণিত করুন।

আপনি যখন একটি ফাইল সিস্টেম তৈরি করেন, এটি সাধারণত বদ্ধ বিভাজন বা ভলিউমের উপলব্ধ স্থানটি পূরণ করে। কখনও কখনও আপনি যখন একটি ছোট ফাইল সিস্টেমের সাথে শেষ করতে পারেন যখন আপনি ফাইল সিস্টেমগুলি ঘুরতে বা ভলিউমের আকার পরিবর্তন করছেন।

লিনাক্সে, lsblkউপলব্ধ স্টোরেজ ভলিউমের একটি সুন্দর ওভারভিউ উপস্থাপন করে। অতিরিক্ত তথ্যের জন্য বা আপনার কাছে না থাকলে আপনার lsblkকী পার্টিশন রয়েছে তা যাচাই করতে বিশেষ ভলিউম পরিচালনা বা পার্টিশন সরঞ্জাম ব্যবহার করুন। লিনাক্স উপর সেখানে কারো lvs, vgs, pvsজন্য , LVM , fdiskঐতিহ্যগত পিসি-শৈলী ( "উপস্থিত MBR") পার্টিশন (পাশাপাশি GPT যেমন সাম্প্রতিক সিস্টেম) জন্য, gdiskজন্য GPT পার্টিশন, disklabelবাসদ disklabels জন্য বিভক্ত , ইত্যাদি লিনাক্স অধীনে, cat /proc/partitionsএকটি দ্রুত সারাংশ প্রদান করে। সাধারণ ইনস্টলেশনে অপারেটিং সিস্টেম দ্বারা ব্যবহৃত কমপক্ষে দুটি পার্টিশন বা ভলিউম থাকে: একটি ফাইল সিস্টেম (কখনও কখনও আরও) এবং একটি অদলবদল ভলিউম।

কিছু কম্পিউটারের বিআইওএস বা অন্যান্য ডায়াগনস্টিক সফ্টওয়্যার সমন্বিত একটি পার্টিশন থাকে । ইউইএফআই সহ কম্পিউটারগুলির একটি ডেডিকেটেড বুটলোডার পার্টিশন রয়েছে।

পরিশেষে, নোট করুন যে বেশিরভাগ কম্পিউটার প্রোগ্রামগুলি 1024 = 2 10 এর শক্তির উপর ভিত্তি করে ইউনিট ব্যবহার করে (কারণ প্রোগ্রামাররা বাইনারি এবং 2 এর শক্তিগুলি পছন্দ করে)। সুতরাং 1 kB র = 1024 বি, 1 মেগাবাইট = 1048576 বি, 1 গিগাবাইট = 1073741824, 1 টিবি = 1099511627776 বি, ... সরকারিভাবে, এই ইউনিট হিসাবে পরিচিত হয় kibibyte KiB, mebibyte MiB, ইত্যাদি, কিন্তু অধিকাংশ সফ্টওয়্যার মাত্র ট বা kB র রিপোর্ট, এম বা এমবি ইত্যাদি অন্যদিকে, হার্ড ডিস্ক নির্মাতারা পদ্ধতিগতভাবে মেট্রিক (1000-ভিত্তিক ইউনিট) ব্যবহার করে। যাতে 1 টিবি ড্রাইভটি কেবল 931 জিআইবি বা 0.904 টিবি হয়।


1
@ কিওয়ির tune2fsব্লক ডিভাইসে ফাইল সিস্টেমের পাঠ্য অ্যাক্সেস থাকা দরকার যা সাধারণত রুট হওয়া দরকার কারণ এটি আপনাকে যে কোনও ফাইলের সামগ্রী পড়তে দেয়।
গিলস

20
আমি জানি যে 'থ্যাঙ্ক ইউ' এসইতে নিরুৎসাহিত হয়েছে, তবে গিলস আপনি এই ভয়ঙ্কর পোস্টের জন্য একটি বিশাল 'থ্যাঙ্কস ইউ' প্রাপ্য।
ডটানকোহেন

1
আমার মনে আছে যখন আমি like এর মতো ছিলাম তখন একটি কার্ডের ক্যাটালগটি দেখেছি আমি অবাক হয়েছি যে কতজন তারা কী তা জানতে পারবে না?
ইজকাটা

1
@ ইলুমিন- এটি আমার পক্ষে অনেক উন্নত সোলারিস, আমি জানি না এটি কোন স্তরে ফিট করে।
গিলস

1
du পরোক্ষ ব্লকগুলির জন্য অ্যাকাউন্ট করে । রিপোর্ট করা ফাইল আকার থেকে এটিই মূল পার্থক্য ls -l
স্টাফেন চেজেলাস

4

ফাইলের আকার এবং ডিস্ক স্পেস গণনা করতে জটিলতার একটি সংক্ষিপ্তসার:

  • ফাইলটি ডিস্কে যে স্থান গ্রহণ করে তা হ'ল প্রতিটি ব্লকের আকারের সাথে এটি যে পরিমাণ ইনোড নেয় তার সংখ্যার গুণক। একটি 1 বাইট দীর্ঘ ফাইলের জন্য কমপক্ষে 1 টি ব্লক, 1 ইনোড এবং একটি ডিরেক্টরি এন্ট্রি লাগবে।

    ফাইলটি যদি অন্য কোনও ফাইলে একটি হার্ড লিঙ্ক হয় তবে এটি কেবল 1 টি অতিরিক্ত ডিরেক্টরি এন্ট্রি নিতে পারে। এটি একই ব্লকগুলির সেটগুলির আরও একটি রেফারেন্স হবে।

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

এটি কেবলমাত্র ফাইল সিস্টেমগুলির পৃষ্ঠকে স্ক্র্যাচ করছে এবং এটি অত্যধিক সরলীকৃত। এছাড়াও মনে রাখবেন যে বিভিন্ন ফাইল সিস্টেমগুলি ভিন্নভাবে কাজ করে।

statএই তথ্য কিছু দাগী করতে খুব সহায়ক। স্ট্যাট কীভাবে ব্যবহার করবেন এবং এর জন্য কী ভাল তার কয়েকটি উদাহরণ এখানে রয়েছে: http://landoflinux.com/linux_stat_command_exferences.html


1
একটি 1-বাইট ফাইল সাধারণত 8 টি নয়, একটি ব্লক নেবে a একটি হার্ড লিঙ্ক তৈরি করতে কেবল ডিরেক্টরি প্রবেশের জন্য স্থান প্রয়োজন।
গিলস

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

1
এটি কারণ 1 এক্সট 2 ব্লক = 8 স্ট্যাট ব্লক, যদি এক্সট 2 ফাইলসিস্টেম 4kB ব্লক ব্যবহার করে: statতিহাসিক কারণে 512-বাইট ব্লকে স্ট্যাটে গণনা করা হয়। দেখুন unix.stackexchange.com/questions/14409/...
গিলেজ

2

আমি এখানে বিভিন্ন ক্ষেত্রে বর্ণনা করব যা এর duথেকে পৃথক হওয়ার কারণ হয় df

dfফাইল সিস্টেম বরাদ্দকৃত ব্লকগুলি গণনা করে, duপ্রতিটি ফাইলের আকারের তথ্য ব্যবহার করে। একটি পার্থক্যের অনেকগুলি কারণ থাকতে পারে:

1) আনইলঙ্কড (মুছে ফেলা) ফাইলগুলি এখনও অ্যাপ্লিকেশন দ্বারা খোলা। ফাইলের তথ্য অনুপস্থিত, ব্লকটি এখনও বরাদ্দ রয়েছে। lsof +aL1 <filesystem>প্রসেসগুলি সনাক্ত করতে আপনাকে সহায়তা করবে। জায়গা খালি করার জন্য বেশিরভাগ সময় আপনাকে প্রক্রিয়াগুলি মেরে ফেলতে হবে (এটি প্রক্রিয়াটির উপর নির্ভর করে, কখনও কখনও একটি কনফিগারেশন পুনরায় লোড যথেষ্ট)।

2) মাউন্ট পয়েন্টগুলির নীচে ফাইলগুলি লুকানো আছে duতবে তা নয় dfdebugfsফাইল সিস্টেম পড়তে আপনাকে সহায়তা করতে পারে।

$ sudo debugfs 
debugfs 1.42.12 (29-Aug-2014)
debugfs:  open /dev/xxx    (the desired file system  device)
debugfs:  cd /boot
debugfs:  ls -l 
 1966081   40755 (2)      0      0    4096 26-May-2016 16:28 .
      2   40555 (2)      0      0    4096 11-May-2016 10:43 ..
 1974291  100644 (1)      0      0       0 26-May-2016 16:28 bob   <---<<< /boot/bob is hidden by /boot fs

3) স্পার্স ফাইলগুলি যা বাস্তবের চেয়ে বড় দেখায়। অ বরাদ্দকৃত ব্লকগুলি গণনা করা হয় না dfতবে আপাত ফাইলের আকারটি গণনা করা হয় du

দ্রষ্টব্য যে হার্ড লিঙ্কগুলি বোকা নয় du


2

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

duপ্রত্যেকের ডিরেক্টরি প্রত্যেকে কতগুলি संचयी স্টোরেজ গ্রহণ করছে তার বিবরণ দেখায় ( windirstatউইন্ডোজের মতো সাজানো )। ফাইল ক্লিনআপ করার চেষ্টা করার সময় আপনি কোথায় স্থান দখল করছেন তা সন্ধানের জন্য দুর্দান্ত।

অন্যের দ্বারা ব্যাখ্যা করা ছোট সংখ্যক পার্থক্য বাদ দিয়ে, আমি মনে করি যে ব্যবহারগুলি duএবং dfইউটিলিটিগুলি খুব আলাদা উদ্দেশ্যে কাজ করে।

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