একটি ফাইল বর্ণনাকারী ফাঁস ট্র্যাক কিভাবে?


11

আমার একটি জাভা প্রক্রিয়া রয়েছে (গ্লাসফিশ) যা ফাইলের বর্ণনাকারীদের ফাঁস করে দিচ্ছে। আমি এটি জানি কারণ আমি সহায়ক java.io.IOException: Too many open filesব্যতিক্রম পাই । আমি /proc/PID#/fdসমস্ত খোলা ফাইল বর্ণনাকারী দেখতে এবং দেখতে পাচ্ছি। আমি যখন lsof ব্যবহার করি তখন আমি খুব বেশি সংখ্যক এন্ট্রি পাই:

java 18510 root 8811u sock 0,4 1576079 প্রোটোকল সনাক্ত করতে পারে না
জাভা 18510 রুট 8812u সক 0,4 1576111 প্রোটোকল সনাক্ত করতে পারে না
জাভা 18510 রুট 8813u সক 0,4 1576150 প্রোটোকল সনাক্ত করতে পারে না

আমি প্রতি মিনিটে 12 টি নতুন তৈরি দেখছি। প্রসোকল সনাক্ত করা যায় না এমন সকেট ফাইল বর্ণনাকারীদের ট্র্যাক ডাউন করতে আমি কী বিকল্পগুলি ব্যবহার করতে পারি বা আমার কাছে কী অন্যান্য সরঞ্জাম উপলব্ধ?


//, এই প্রশ্নের প্রচুর দুর্দান্ত প্রতিক্রিয়া হ'ল
নাথান বাসানিজ

উত্তর:


7

প্রক্রিয়াগুলি ব্যবহার করে শীর্ষ 20 ফাইল হ্যান্ডেলটি দেখতে:

for x in `ps -eF| awk '{ print $2 }'`;do echo `ls /proc/$x/fd 2> /dev/null | wc -l` $x `cat /proc/$x/cmdline 2> /dev/null`;done | sort -n -r | head -n 20

প্রক্রিয়াটির জন্য আউটপুটটি হ্যান্ডেল গণনা, পিড, সেমিডলাইন বিন্যাসে রয়েছে

উদাহরণ আউটপুট

701 1216 /sbin/rsyslogd-n-c5
169 11835 postgres: spaceuser spaceschema [local] idle
164 13621 postgres: spaceuser spaceschema [local] idle
161 13622 postgres: spaceuser spaceschema [local] idle
161 13618 postgres: spaceuser spaceschema [local] idle

4

স্ট্রেস কমান্ডের সাথে পরিচিত হন। এটি সিস্টেম কল পর্যবেক্ষণ করে। আমি সম্প্রতি এটি ফাইল বর্ণনাকারী ফাঁসগুলি ট্র্যাক ডাউন করতে ব্যবহার করেছি যা আমাদের ছিনতাই ডিমনকে বারবার ক্র্যাশ করে। এটি ব্যবহার করতে কিছুটা সময় নেয় তবে এটি একটি শক্তিশালী সরঞ্জাম।

আপনি চলমান প্রক্রিয়াতে সংযুক্ত করতে স্ট্রেস ব্যবহার করতে পারেন (শিশু প্রক্রিয়াগুলি অনুসরণ করার জন্য -f পতাকাটি ভুলবেন না)।


1

আপনি ঠিক কী ট্র্যাক করার চেষ্টা করছেন? ফাঁস হওয়া এফডি, ত্রুটিযুক্ত কোড, বা অন্য কোনও কিছুর সাথে সম্পর্কিত রিমোট আইপি ঠিকানা (এস)?

আপনি ইতিমধ্যে সনাক্ত করেছেন যে একটি ফুটো আছে, এই জাভা প্রক্রিয়ার জন্য দায়িত প্রকৌশলীদের সাথে যোগাযোগ করা যুক্তিসঙ্গত পরবর্তী পদক্ষেপের মতো বলে মনে হচ্ছে।


আমি সেই ফাইল বর্ণনাকারীদের সম্পর্কে আমার যে কোনও তথ্য পারি তা ট্র্যাক করার চেষ্টা করছি। can't identify protocolইঞ্জিনিয়ারদের সাথে চালানোর তেমন কিছু দেয় না। Lsof- এ এমন কোন সরঞ্জাম বা বিকল্প রয়েছে যা আমি দেখছি না যা আমার ব্যবহার করা উচিত? সমস্যাটি পরীক্ষার এনভির মধ্যে ঘটে না এবং কেবলমাত্র একটি মন্ত্রিসভা স্থানান্তরিত হওয়ার পরে এই এনভিটিতে শুরু হয়েছিল। মাইগ্রেশনের আগে একই কোডটিতে কোনও সমস্যা ছিল না এবং অ্যাপ্লিকেশন যখন নিযুক্ত হয় তখন গ্লাসফিশটি নিজেরাই ফাঁস হয়। আমার সর্বোত্তম অনুমানটি হ'ল নেটওয়ার্কিং দৃষ্টিভঙ্গি থেকে কিছু ভেঙে গেছে এবং সকেটগুলি আরম্ভ করার চেষ্টা করছে তবে তা করতে পারে না এবং তারপরে তারা ঝুলিয়ে রাখে এবং চারপাশে ছেড়ে যায়।
cclark
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.