খোলা ফাইলগুলিতে ফাইল-এনআর এবং এলএসফের গণনা কেন আলাদা হয়? [বন্ধ]


19

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

আমি এই আদেশ দিয়ে এটি পরীক্ষা করছি:

cat /proc/sys/fs/file-nr

যখন আমি এটি দিয়ে যাচাই করি এটি এটি দেখায় 44544 0 128000, সুতরাং 44544 হ'ল খোলা ফাইলগুলির সংখ্যা।

তবে আমি যখন এই আদেশটি যাচাই করি - lsof | wc -l এটি দেখায় - 28384।

তাহলে কোনটি সঠিক?

আমার সর্বাধিক উন্মুক্ত ফাইলের সীমা 65535

ulimit -a
open files                      (-n) 65535

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

এই আদেশ দ্বারা গণনা করা প্রক্রিয়াগুলির বিবরণ আমি কী পেতে পারি cat /proc/sys/fs/file-nr?

নীচের উল্লিখিত লিঙ্ক অনুসারে এটি বলেছে যে আমরা কীভাবে ওপেন ফাইল বিবরণী প্রদর্শন করতে পারি তবে lsof কমান্ড ব্যবহার না করে

আমার জন্য কোন কাজ আছে? হঠাৎ হ'ল খালি ফাইলগুলি ব্যবহার করার জন্য কোন প্রক্রিয়াটি শুরু হয়েছিল তা আমাকে খুঁজে বের করতে হবে।

আপডেটের জন্য সমস্যা জন্য ছেলেরা। আমি যে ভুলটি করেছিলাম সেটিকে আমি মূল থেকে lsof | wc -l যাচাই করছিলাম না। এই কারণেই আমি একটি বিশাল পার্থক্য দেখছিলাম।

এখনও ফাইল -nr এবং lsof আউটপুট মধ্যে পার্থক্য আছে wc -l (মূল থেকে) lsof গণনা ফাইল-এনআর কাউন্টের চেয়ে বেশি। এর কারণ হ'ল ফাইল-এনআর কিছু ডিরেক্টরিকে অগ্রাহ্য করে (যেগুলি লসফ দ্বারা ফাইল হিসাবে বিবেচিত হয়) আমি গুগলে নিজেই একটি লিটল গবেষণা করে এই কারণটি পেয়েছি। কোন পথে! সব সাহায্যের জন্য ধন্যবাদ বলছি!



lsof | wc -l সত্যিই কি নেতিবাচক সংখ্যা দেখাচ্ছে?
জো সোয়েল

3
এটি কোনও নেতিবাচক চিহ্ন নয়, এটি হাইফেন!
ভাসান্থ নাগ কেভি

উত্তর:


8

এখানে খেলার দুটি প্রশ্ন আছে বলে মনে হয়। প্রথমত, ফাইল-এনআর এবং ফাইল-সর্বাধিক কাঠামোর সম্পূর্ণ ডকুমেন্টেশন পাওয়া যাবে

https://www.kernel.org/doc/Documentation/sysctl/fs.txt

এটি সেই ফাইলে ক্ষেত্রগুলি এমনভাবে সংজ্ঞায়িত করে:

ফাইল-এনআর-এ তিনটি মান হ'ল বরাদ্দকৃত ফাইল হ্যান্ডেলগুলির সংখ্যা, বরাদ্দকৃত কিন্তু অব্যবহৃত ফাইল হ্যান্ডেলের সংখ্যা এবং ফাইল হ্যান্ডেলের সর্বাধিক সংখ্যা। লিনাক্স ২.6 সর্বদা 0-কে ফ্রি ফাইল হ্যান্ডলের সংখ্যা হিসাবে রিপোর্ট করে - এটি কোনও ত্রুটি নয়, এর অর্থ হ'ল বরাদ্দ করা ফাইল হ্যান্ডলগুলির সংখ্যা হ'ল ব্যবহৃত ফাইল হ্যান্ডলের সংখ্যার সাথে মেলে।

আশা করি এটি যথেষ্ট পরিষ্কার। দ্বিতীয় প্রশ্নের উপরে উল্লিখিত থ্রেডে উত্তর দেওয়া হয়েছে ( /server/ পাই ) এবং মনে হয় এটি কোনওভাবেই স্থানান্তরিত হয়েছে

  1. "lsof ব্যবহার করুন" এবং আউটপুট যথাযথভাবে ফিল্টার করুন যদি আপনার কোনও প্রক্রিয়া ব্যবহারের জন্য ফাইল বর্ণনাকারীদের একটি ভাল অনুমানের প্রয়োজন হয় বা,
  2. ফাইল বর্ণনাকারী ব্যবহারের সময় একটি স্ন্যাপশট পেতে / proc ফাইল সিস্টেমে (এবং এখনও আউটপুট ফিল্টার করতে হবে) ব্যবহার করুন।

এটির জন্য সঠিক মেট্রিকগুলি অর্জনের অসুবিধা তাৎপর্যপূর্ণ, কারণ যে কোনও নির্দিষ্ট সময়ে এফডি ব্যবহারের পদ্ধতিটি কোনও সিস্টেমে খুব দ্রুত ওঠানামা করতে পারে।

নিম্নলিখিত থ্রেড 'lsof' পদ্ধতির জন্য ফিল্টারিং স্কিমের পরামর্শ দেয়:

/server/396872/why-or-how-does-the-number-of-open-file-descriptors-in-use-by-root-exceed-ulim


আমার প্রশ্ন আপডেট। তবে সমস্ত তথ্যের জন্য ধন্যবাদ।
বাসন্ত নাগ কেভি

তবে এটি কীভাবে সম্ভব, ulimitআমার চেয়ে আমার কাছে 1024 ফাইল খোলা থাকতে পারে, যদি lsof | wc -lবলি আমার কাছে ইতিমধ্যে 1545 আছে?
নাকিলন

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