ইউনিক্স / লিনাক্সে ইন্টারপ্রেস যোগাযোগকে বাধা দেওয়ার কোনও উপায় আছে কি?


15

নেটওয়ার্ক ট্র্যাফিককে বাধা / বিশ্লেষণ করার জন্য, আমাদের ওয়ায়ারশার্ক নামে একটি ইউটিলিটি রয়েছে ।

ইউনিক্স / লিনাক্সের যে কোনও দুটি প্রক্রিয়ার মধ্যে সমস্ত ইন্টারপ্রোসেস যোগাযোগকে বাধা দেওয়ার জন্য আমাদের কি একই রকম ইউটিলিটি রয়েছে?

আমি স্মৃতিতে কিছু প্রক্রিয়া তৈরি করেছি এবং তারা একে অপরের সাথে কীভাবে যোগাযোগ করে তা আমাকে প্রোফাইল করা দরকার।


1
যোগাযোগের জন্য আপনি কোন আইপিসি মেকানিজম ব্যবহার করছেন?
axel_c

@ অ্যাক্সেল_সি: প্রক্রিয়া উত্সটি আমার সাথে নেই তবে আমি মনে করি ডকুমেন্টেশনের কোথাও "শেয়ার্ড মেমোরি" পড়েছি।
লেজার

উত্তর:


19

এটি যোগাযোগ ব্যবস্থার উপর অনেক নির্ভর করে।

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

  • একটি মধ্যবর্তী স্তরে, পাইপ এবং ইউনিক্স সকেটের ট্র্যাফিক truss/ strace/ trace/ ... দিয়ে পর্যবেক্ষণ করা যায় , সিস্টেম ট্রেসিংয়ের সুইস আর্মি চেইনসো। এটি প্রক্রিয়াগুলি উল্লেখযোগ্যভাবে ধীর করতে পারে, তবে এটি প্রোফাইলিংয়ের জন্য উপযুক্ত নাও হতে পারে।

  • বর্ণালীটির সবচেয়ে অস্বচ্ছ প্রান্তে, ভাগ করা স্মৃতি রয়েছে। ভাগ করা মেমরির প্রাথমিক অপারেটিং নীতিটি হ'ল প্রতিটি জড়িত প্রক্রিয়াতে অ্যাক্সেসগুলি সম্পূর্ণ স্বচ্ছ হয়, ভাগ করা মেমরি অঞ্চলগুলি সেট আপ করার জন্য আপনার কেবলমাত্র সিস্টেম কল প্রয়োজন। বাইরে থেকে এই মেমরি অ্যাক্সেসগুলি সন্ধান করা শক্ত হবে, বিশেষত যদি আপনার সময়টির প্রতিরোধ না করার জন্য পর্যবেক্ষণের প্রয়োজন হয়। আপনি লিনাক্স ট্রেস টুলকিট (কার্নেল প্যাচ প্রয়োজন) এর মতো সরঞ্জামগুলি ব্যবহার করে দেখতে পারেন যে আপনি দরকারী তথ্য বের করতে পারেন কিনা; এটি এমন এক ধরণের ক্ষেত্র যেখানে আমি সোলারিসের আরও ভাল সরঞ্জামের আশা করতাম (তবে আমার এটি সম্পর্কে কোনও জ্ঞান নেই)।

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


6

এটি একটি প্রক্রিয়া কী পড়বে এবং লিখবে তা দেখিয়ে দেবে:

strace -ewrite -p $PID

এটি পরিষ্কার আউটপুট নয় (যেমন লাইনগুলি দেখায়: লিখুন (#,)), কিন্তু কাজ করে! (এবং একক-লাইন: ডি) আপনি এই সত্যটিও অপছন্দ করতে পারেন, যে যুক্তি সংক্ষিপ্ত হয়। ব্যবহারের -S পরামিতিটি নিয়ন্ত্রণ করতে যা প্রদর্শিত স্ট্রিংয়ের সর্বাধিক দৈর্ঘ্য নির্ধারণ করে।

এটি সমস্ত স্ট্রিম ক্যাচ করে, তাই আপনি কোনওভাবে এটি ফিল্টার করতে চাইতে পারেন।

আপনি এটি ফিল্টার করতে পারেন:

strace -ewrite -p $PID 2>&1 | grep "write(1"

কেবল বর্ণনাকারী 1 টি কল দেখায়। 2> & 1 হ'ল স্ট্ডারকে স্টডআউটে পুনর্নির্দেশ করা, যেমন স্ট্রেস ডিফল্টরূপে স্ট্ডারকে লিখে।

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