নেটওয়ার্ক ল্যাটেন্সি পরিমাপ (লিনাক্স)


8

আমি এসএনএমপি জিইটি অনুরোধের জন্য নেটওয়ার্ক বিলম্বিতা পরিমাপ করতে চাই। এখানে একটি ফ্রি কমান্ড লাইন সরঞ্জাম রয়েছে timeযা বিভিন্ন কমান্ডের টাইমিংয়ের পরিসংখ্যান খুঁজে পেতে ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ এটি snmpgetনিম্নলিখিত উপায়ে ব্যবহার করা যেতে পারে :

$ time snmpget -v 2c -c public 192.168.1.3 .1.3.6.1.2.1.2.2.1.10.2
IF-MIB::ifInOctets.2 = Counter32: 112857973

real    0m0.162s
user    0m0.069s
sys 0m0.005s

ম্যানুয়াল অনুসারে, পরিসংখ্যানগুলি এতে গঠিত:

  • অনুরোধ এবং সমাপ্তির মধ্যে অতিবাহিত আসল সময়,

  • ব্যবহারকারীর সিপিইউ সময় (
    একটি স্ট্রাক্ট টিএমএসে tms_utime এবং tms_cutime মানের সমষ্টি
    সময় (2)) হিসাবে ফিরে আসে ,

  • সিস্টেম সিপিইউ সময় (
    একটি স্ট্রাক্ট টিএমএসে tms_stime এবং tms_cstime মানের যোগফলগুলি
    (2) দ্বারা ফিরে আসে )।

আপনি দেখতে পাচ্ছেন, এই বিকল্পগুলির মধ্যে কোনও আসল নেটওয়ার্কের বিলম্বের সময় (বাদ দেওয়া অন্যান্য প্রোগ্রামের প্রয়োগের সময়সংখ্যার সাথে) মাপতে দেয় না। এটি করার কোনও উপায় আছে? হয়তো সময় সরঞ্জাম ব্যবহার না করে বরং কিছু কার্নেল হ্যাক ব্যবহার করছেন?

আমি জিজ্ঞাসা করতে চেয়েছিলাম, আমি নিজের প্রোগ্রাম লিখতে শুরু করার আগেই।

ধন্যবাদ, পাইওটার

উত্তর:


5

tcpdump(8)প্রোগ্রামের -tttপতাকা মাত্র হতে পারে আপনার যা প্রয়োজন:

00:00:00.000031 IP haig.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 1.0.168.192.in-addr.arpa. (42)
00:00:01.897031 IP haig.45240 > stackoverflow.com.www: Flags [F.], seq 866615166, ack 62506321, win 123, options [nop,nop,TS val 6026371 ecr 419296939], length 0
00:00:00.000030 IP haig.45242 > stackoverflow.com.www: Flags [F.], seq 853537650, ack 61102072, win 123, options [nop,nop,TS val 6026371 ecr 419296939], length 0
00:00:00.000019 IP haig.45243 > stackoverflow.com.www: Flags [F.], seq 863535366, ack 62086489, win 123, options [nop,nop,TS val 6026371 ecr 419296939], length 0

লাইনের শুরুতে টাইমস্ট্যাম্পটি পূর্ববর্তী প্যাকেটের পরে মাইক্রোসেকেন্ডে সময় দেখায়। -tকমান্ড লাইনে বিভিন্ন নম্বর দিয়ে আপনি প্রথম প্যাকেটের পর থেকে যথার্থ সময়, আপেক্ষিক সময় বা প্যাকেটের মধ্যে আপেক্ষিক সময় পেতে পারেন।

আমি কেবল এলোমেলো mdns এবং ওয়েব ট্র্যাফিক দেখিয়েছি কারণ এটিই আমার সিস্টেমে খুঁজে পাওয়া সহজ; আপনার tcpdump(8)আগ্রহী কেবল প্যাকেটগুলি পেতে আপনি সহজেই এসএনএমপি ট্র্যাফিকের জন্য ফিল্টার করতে পারেন ((যা বেশ ভাল ধারণা হবে, কারণ ব্যস্ত সিস্টেমগুলি থেকে সমস্ত ট্র্যাফিক ডাম্পিং করা একটি বিশাল বোঝা তৈরি করতে পারে ))


-tttttএছাড়াও কার্যকর হতে পারে - শেষ প্যাকেট থেকে মাইক্রোসেকেন্ডগুলি প্রদর্শন করার পরিবর্তে, এটি ট্রেসের শুরু থেকেই মাইক্রোসেকেন্ডগুলি দেখায়।
অ্যালেক্স ডি

8

পিং চেষ্টা করুন:

$ ping -U 192.168.1.3

পিং ম্যানুয়াল থেকে:

-উ পুরো ব্যবহারকারী-থেকে-ব্যবহারকারী প্রচ্ছন্নতা (পুরানো আচরণ) মুদ্রণ করুন । সাধারণত পিিং প্রিন্টগুলি নেটওয়ার্কের রাউন্ড ট্রিপ টাইমের সময় হয় যা ডিএনএস ব্যর্থতার কারণে বিভিন্ন ফে হতে পারে।


উত্তরের জন্য ধন্যবাদ, তবে আমি এসএনএমপি-র অনুরোধ পাওয়ার জন্য নির্দিষ্ট ল্যাটেন্সি পরিমাপ করতে চাই।

5

আপনার প্রোগ্রাম চালান এবং এরই মধ্যে tcpdumpবা সাথে নেটওয়ার্ক ট্র্যাফিক ক্যাপচার করুন wireshark। অনুরোধের সময় এবং জবাবের সময়টি পরীক্ষা করুন এবং একটি সাধারণ বিয়োগফল করুন।

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