লিনাক্স ডুপ্লিকেট এবং পিএস আউটপুট অতিরিক্ত প্রক্রিয়া


0

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

psডকারের ধারকটির ভিতরে থেকে পুরো আউটপুট এখানে ।

 PID %CPU      RSS Threads COMMAND
   1  0.0     2616       1 sh /test/Build/unittest.sh
   7  3.3    44240       1   /usr/bin/Xvfb :1 -screen 0 ...
  17  1.5    10824       1   /usr/bin/fluxbox
 357  690  6292244     324   java -server -Xmx2g ...
 490  0.4     7852       1     /usr/bin/python /usr/bin/dstat ...
 491  0.7     7812       1     /usr/bin/python /usr/bin/dstat ...
1331  0.0     3040       1     /usr/bin/ps -AHww --format ...
1332  0.0      380       1     /usr/bin/ls --all ...
1333  0.0  6292248       1     [NDR-347]

জাভা প্রক্রিয়া (পিড: 357) স্বল্প-কালীন শিশু প্রক্রিয়াগুলি তৈরি করে। উপরের আউটপুটে আপনি 2 টি স্টায়ট পাইথন প্রসেস, পিএস, এলএস এবং [এনডিআর -347] "দেখতে পাবেন These এগুলি সব জাভা প্রক্রিয়া দ্বারা তৈরি করা হয়েছিল।

কখনও কখনও, আমি একটি সদৃশ শিশু প্রক্রিয়া দেখতে (যেমন একই কমান্ড) কিন্তু বিভিন্ন প্রক্রিয়া আইডি (দেখানো হয় না)। আমি কেন একটি নকল শিশু প্রক্রিয়া দেখতে পাচ্ছি? আমি অনুভব করি এটি লিনাক্স বা ডকার আর্টিফ্যাক্টের এক ধরণের। আর্টিফ্যাক্ট কী?

আমি psএখন এক বছর ধরে আউটপুট নিরীক্ষণ করছি। প্রথমবারের মতো, আমি প্রায় একই আরএসএস সহ একটি অতিরিক্ত প্রক্রিয়া "[এনডিআর -347]" (পিড: 1333) দেখছি। জাভা প্রক্রিয়া (পিড: 357) থ্রেডগুলির নাম রাখে "এনডিআর- #" সুতরাং আমি আশ্চর্যজনকভাবে মনে করি যে একটি শিশু প্রক্রিয়া হ'ল জাভা প্রক্রিয়াটির একটি থ্রেডের নাম। অতিরিক্ত প্রক্রিয়া আরএসএসকে দ্বিগুণ করে এবং একটি সমস্যা ট্রিগার করে। সমস্যা পুনরুত্পাদনযোগ্য নয়। এটি আমার কাছে পরামর্শ দেয় যে পিড 1333 খুব স্বল্পস্থায়ী এবং এর দ্বারা ধরা পড়ে না ps। মোট আরএসএস 12.07 গিগাবাইট এবং অতিরিক্ত প্রক্রিয়া ছাড়াই এটি 6.07 জিবি। এই অতিরিক্ত প্রক্রিয়া কি? কেন এর এত বিশাল আরএসএস আছে?

সম্পাদনা: সঠিক psআদেশটি হ'ল ...

ps -Ahww --format pid,%cpu,rss:8,nlwp=Threads,command

উত্তর:


1

আপনার কাছে একটি জাভা প্রক্রিয়া রয়েছে যা অন্যান্য প্রোগ্রামগুলি চালায়।

অন্য যে কোনও প্রক্রিয়া যা অন্য প্রোগ্রাম চালাতে চায়, তার মতো প্রথম পদক্ষেপটি fork। এই জালিয়াতি প্রক্রিয়া পিতামাতার মেমরি মানচিত্র উত্তরাধিকার সূত্রে প্রাপ্ত। এই মেমরিটি ভাগ করা হয়েছে, সুতরাং এটি সত্যই অতিরিক্ত র‍্যাম ব্যবহার করে না।

পরবর্তী ধাপে পর forkহয় execveনতুন প্রক্রিয়া। execveরিলিজ সব মেমরি এবং নতুন প্রোগ্রাম থেকে মেমরি মানচিত্র তৈরী করে।

সাধারণত এর execveপরে খুব শীঘ্রই নিম্নলিখিতগুলি অনুসরণ করা হয় fork, সুতরাং আপনি এই রাজ্যে কোনও প্রক্রিয়া ধরার সম্ভাবনা নেই তবে মাঝে মাঝে এটি ঘটে।

আপনার বিশেষ ক্ষেত্রে, যদি আপনি জানেন যে কাঁটাযুক্ত জাভা প্রক্রিয়াগুলির নাম রয়েছে NDR-, তবে আপনার কেবল এই প্রক্রিয়াগুলি উপেক্ষা করা উচিত।


ধন্যবাদ! এই প্রক্রিয়াটি উপেক্ষা করার জন্য আমি ইতিমধ্যে কোড পরিবর্তন করেছি। ভারী বোঝাই মেশিনে, এর মধ্যে সময় forkএবং execveদীর্ঘায়িত হতে পারে যাতে আমার এটি দেখার সম্ভাবনা বেশি থাকে।
নাথান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.