EXT4 পারফরম্যান্স অনেক ছোট ফাইল সহ সিস্টেমে সত্যিই খারাপ হয়ে গেছে


10

আমার কাছে একটি ছোট এমবেডড ডিভাইস রয়েছে যার র‌্যামটি কেবল 128 এমবি

এই ডিভাইসের সাথে সংযুক্ত হ'ল একটি 2 টিবি ইউএসবি 2 হার্ড ডিস্ক

আমি ডিভাইসটির কার্যকারিতা নিয়ে খুব সন্তুষ্ট হয়েছি যতক্ষণ না হয় ফাইলগুলির সংখ্যা ডিস্কের ক্ষমতার এক প্রান্তকে অতিক্রম করেছে (আমি নিশ্চিত না যে)

ডিস্কে অনেকগুলি ছোট ফাইল রয়েছে, লেখার প্রকৃতির কারণে অ্যাপ্লিকেশন ফাইলগুলি খুব সুষমভাবে সংগঠিত হয় - কোনও লিফ নোড ডিরেক্টরিতে 200 টিরও বেশি ফাইল নেই এবং এখানে 800,000 এরও বেশি ফাইল রয়েছে।

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

আমার ধারনা হ'ল আমি আমার ফাইলগুলির জন্য ডিস্কে যে সাংগঠনিক কাঠামোটি বেছে নিয়েছি তাতে জিপ্পি থাকার ইনোড ক্যাশের ক্ষমতাকে কোনওরকমে আঘাত করেছে।

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

এই মুহুর্তে, আমি 'ফাইন্ড' এর পরে 'ফাইন্ড' কমান্ডটি টাইপ করেছি

'সন্ধান' প্রায় 3000 ফাইল দেখিয়েছিল, কিন্তু মেমরির ব্যবহার 117MB থেকে from 2MB এ চলেছে

আমি ফ্রি মেমরি বনাম ক্যাশে এর ভারসাম্য বুঝতে পারি এবং কার্নেল কীভাবে খালি পৃষ্ঠাটিকে একটি খারাপ পৃষ্ঠা হিসাবে বিবেচনা করে - তবে ১১০০ এমবি 3000 ফাইলের ডিরেক্টরি থেকে ক্যাশযুক্ত সামগ্রী আমার বোঝার একটি গুরুতর ব্যবস্থাকে নির্দেশ করে। আমি আশা করছি কেউ কী ঘটছে তা বুঝতে আমাকে সহায়তা করবে

আমি কি ভারসাম্যযুক্ত গাছটি প্রচুর ফাইল রাখার পথ ধরে নিতে পারি?

উত্তর:


9

খুব ভাল সমস্যার বর্ণনা।

আপনি যা বলেছেন তার ভিত্তিতে, আমি মনে করি আপনি যা দেখছেন তা হ'ল স্ল্যাব ব্যবহার বেশি হচ্ছে। একটি ভাল পরীক্ষা একটি রান করতে হবে cat /proc/meminfoএবং cat /proc/slabinfoএকটি 3 সেকেন্ড বিলম্ব উপর যখন আপনি FS অনুক্রমের গভীরে যান এবং 3000 ফাইল খুঁজে পাবেন। মূলত যা ঘটছে তা হ'ল কার্নেলটি fs স্ট্রাকচারকে অতিক্রম করবে এবং পৃথক ফাইল এবং তাদের আইওনগুলি স্ক্যান করবে এবং সেগুলি সমস্ত স্মৃতিতে সঞ্চিত থাকবে। আপনি যদি পরীক্ষা করেন তবে /proc/slabinfoআপনাকে এমন একটি বস্তু দেখতে পাবেন ext4_inode_cacheযা আপনাকে জানায় যে প্রতিটি ইনোড কত মেমরি নেবে। বস্তুর সংখ্যার সাথে এটি গুণ করুন (_জ_সাইজ * ন_বজ) এবং আপনি বস্তুর দ্বারা ব্যবহৃত মেমরির পরিমাণ পান। আপনি fs স্তরক্রমের গভীরে যেভাবে যান, সিস্টেম যতক্ষণ না মেমরির জোনের উচ্চতর ওয়াটারমার্ককে আঘাত করে ততক্ষণ আরও মেমরি গ্রাস করা হবে। কোন পর্যায়ে, কার্নেল পুনরায় দাবি শুরু করবে start

আপনি যদি মেমিনফো এবং স্ল্যাবিনফোতে ঝুঁকেন তবে আপনি যে বিবরণটি সন্ধান করছেন তা পাবেন। আপনি যদি আমাকে দেখতে চান তবে এটির পেস্টবিন করুন;)

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