টিসিপি লুপব্যাক সংযোগ বনাম ইউনিক্স ডোমেন সকেটের কর্মক্ষমতা


116

অ্যান্ড্রয়েড এবং আইওএস ভিত্তিক অ্যাপ্লিকেশনটিতে কাজ করা যার জন্য একই ডিভাইসে চলমান একটি সার্ভারের সাথে যোগাযোগের প্রয়োজন। অ্যাপ্লিকেশন এবং সার্ভারের সাথে যোগাযোগের জন্য বর্তমানে টিসিপি লুপব্যাক সংযোগ ব্যবহার করছেন (ব্যবহারকারী লেয়ারে লেখা অ্যাপ্লিকেশন, অ্যান্ড্রয়েড এনডিকে ব্যবহার করে সি ++ এ লিখিত সার্ভার)

আমি ভাবছিলাম যে ইউনিক্স ডোমেন সকেটের সাথে আন্ত যোগাযোগের পরিবর্তনের ফলে পারফরম্যান্সের উন্নতি হবে?

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


3
মনে রাখবেন যে স্থানীয় সকেটগুলির (ইউনিক্স ডোমেন সকেট) ফাইল সিস্টেমে একটি ফাইল দরকার। টিসিপি লুপব্যাক ঠিকানা ব্যবহার করে এগুলি সমস্ত স্মৃতিতে থাকে। এবং যদি আপনাকে রিমোট টিসিপি সকেট ব্যবহার করতে হয় তবে নতুন সকেট এবং অ্যাড্রেস পরিবারের সাথে ফিডিংয়ের পরিবর্তে অন্য টিসিপি সকেট সংহত করা আরও সহজ হতে পারে।
কিছু প্রোগ্রামার ড্যুড

1
@ জোয়াচিমপাইলবার্গ যখন কেবল লিনাক্স (অ্যান্ড্রয়েড) এর জন্য বিকাশ করতে পারে তখন অ্যাবস্ট্রাক্ট ইউএনআইএক্স ডোমেন সকেট অ্যাড্রেস ব্যবহার করার বিকল্প রয়েছে, যা ফাইল সিস্টেমে কোনও ফাইলের প্রয়োজন হয় না।
থুইভিলা

অ্যান্ড্রয়েড সংযোগের জন্য stackoverflow.com/questions/14643571/… উল্লেখ করুন ।
আরডিএক্স

8
@ সোমেপ্রোগ্রামারডুড তাদের ফাইল সিস্টেমে একটি ফাইল দরকার, তবে এর অর্থ এই নয় যে সমস্ত কিছু ডিস্কে ফিরে যায়।
লার্নের মারকুইস

3
@ সোমেপ্রোগ্রামারডুড কেবল ফাইল নাম, মালিকানা এবং অনুমতি সম্পর্কিত তথ্যই ফাইল সিস্টেমে সংরক্ষণ করা যায়। সমস্ত আসল ডেটা স্থানান্তর সম্পূর্ণরূপে মেমরিতে ঘটে।
জেসিন

উত্তর:


105

হ্যাঁ, ইউনিক্স ডোমেন সকেটের স্থানীয় আন্তঃসম্পর্কীয় যোগাযোগটি লুপব্যাক লোকালহোস্ট সংযোগগুলির মাধ্যমে যোগাযোগের চেয়ে দ্রুত হওয়া উচিত কারণ আপনার টিসিপি ওভারহেড কম, এখানে দেখুন


12
প্রথম লিঙ্কটি দ্বিতীয় লিঙ্কটি উদ্ধৃত করছে, যা ২০০৫ সালের (পুরানো)। এবং এটি কেবল ফ্রিবিএসডি
জেনাস ট্রয়লসন

7
এই উত্তরটি ভুল, যখন আধুনিক লিনাক্সে লুপব্যাক টিসিপি পরীক্ষা করা হয় তখন ইউডিএসের চেয়েও দ্রুত এবং কখনও কখনও দ্রুত। প্রয়োজনে
বেনমার্ক সরবরাহ

10
এই উত্তরটি একেবারে সঠিক। লুপব্যাক ইন্টারফেসটি এখনও টিসিপি, এর অর্থ আপনার এখনও টিসিপির ওভারহেড রয়েছে (যানজট নিয়ন্ত্রণ, প্রবাহ নিয়ন্ত্রণ, স্ট্রিম ম্যানেজমেন্ট (আইপি প্যাকেট অর্ডারিং, রিট্রান্সমিশন ইত্যাদি))। ইউনিক্স ডোমেন সকেট উপরের কোনওটিই করে না কারণ এটি স্থানীয়ভাবে চালানোর জন্য গ্রাউন্ড থেকে তৈরি করা হয়েছিল, যার অর্থ কোন যানজটের সমস্যা নেই, সার্ভার / ক্লায়েন্টের মধ্যে কোনও প্রবাহ নিয়ন্ত্রণের প্রয়োজন নেই, কোনও ড্রপ প্যাকেট ইত্যাদি নেই Google সন্দেহ হলে সন্দেহ করে , একটি নতুন জিনিস না।
JSON

4
স্থানীয় ইউডিপি সম্পর্কে কী?
সিএমসিডিগ্রাগনকাই

2
প্রদত্ত যে প্রথম লিঙ্কটি মারা গেছে (HTTP 404) ... এজন্যই স্ট্যাকওভারফ্লো সেরা অনুশীলন হ'ল উত্তর লেখার সময় উত্স URL থেকে কমপক্ষে একটি সংক্ষিপ্ত / সংক্ষিপ্ত প্রাসঙ্গিক উদ্ধৃতি প্রদান করা হবে (তারপরে লিঙ্কটি নীচে নেমে গেলে সংক্ষিপ্তসারগুলি এখনও উপলব্ধ)।
ট্রেভর বয়ড স্মিথ

80

এই বেঞ্চমার্ক: https://github.com/rigtorp/ipc-bench টিসিপি সকেট, ইউনিক্স ডোমেন সকেট (ইউডিএস), এবং পিআইপিই জন্য বিলম্ব এবং থ্রুপুট পরীক্ষা সরবরাহ করে।

Here you have the results on a single CPU 3.3GHz Linux machine :

TCP average latency: 6 us

UDS average latency: 2 us

PIPE average latency: 2 us

TCP average throughput: 0.253702 million msg/s

UDS average throughput: 1.733874 million msg/s

PIPE average throughput: 1.682796 million msg/s

66% বিলম্বিতা হ্রাস এবং প্রায় 7X আরও থ্রুপুট ব্যাখ্যা করে যে কেন বেশিরভাগ পারফরম্যান্স-সমালোচনামূলক সফ্টওয়্যারগুলির নিজস্ব আইপিসি কাস্টম প্রোটোকল রয়েছে।


7
আমার কাছে তাদের পণ্যগুলি মনে হচ্ছে সমস্যার একটি উত্তর! সম্ভবত সে কারণেই তারা এই প্রশ্নগুলির জবাব দিচ্ছে; কারণ তারা একটি উত্তর জানে।
গ্রিনরাইপার

এটি একটি দুর্দান্ত উত্তর কারণ এর কিছু নম্বর রয়েছে। টিসিপি থেকে ইউনিক্সের মাধ্যমে থ্রুপুট 350% ভাল, ইউনিক্স থেকে পিআইপিই 40% আইআই-তে উন্নত।
স্কেলওয়িলিয়াম

13
@ গ্রিনআরপিটার উত্তরটি অবশ্যই প্রাসঙ্গিক, তবে আমাদের টরাসওয়্যার স্পিডাস পণ্যটি ... 2 টি সংস্করণ নিয়ে এসেছে, স্পিডাস লাইট এবং স্পিডাস এক্সট্রিম পারফরম্যান্স (ইপি) নয় এবং এটি পুরো জিনিসটিকে একটি সস্তা বিজ্ঞাপনের মতো সাবলীল করে তোলে।
দিমিত্রি গ্রিগরিয়েভ

3
স্প্যাম। এবং না, টিসিপি এবং ইউনিক্স সকেটের মধ্যে তুলনা করে তাঁর পণ্যটি প্রাসঙ্গিক নয়। সেখানে সাধারণ জ্ঞান বিকল্প প্রচুর প্রতিটি বাহিরে কি ওপি জিজ্ঞাসা করা হয় sockets- এর
তাদেরকে JSON

এই সরঞ্জামটির ব্যবহার যথেষ্টভাবে ব্যাখ্যা করা হয়নি। ক্লায়েন্ট এবং সার্ভারকে কল করতে কীভাবে কোনও পৃষ্ঠা ব্যাখ্যা করছে?
ফ্যালকব

40

রেডিস বেঞ্চমার্ক দেখায় ইউনিক্স ডোমেন সকেট টিসিপি লুপব্যাকের চেয়ে দ্রুততর হতে পারে।

যখন সার্ভার এবং ক্লায়েন্ট বেঞ্চমার্ক প্রোগ্রামগুলি একই বাক্সে চলে, তখন টিসিপি / আইপি লুপব্যাক এবং ইউনিক্স ডোমেন সকেট উভয়ই ব্যবহার করা যায়। প্ল্যাটফর্মের উপর নির্ভর করে, ইউনিক্স ডোমেন সকেটগুলি টিসিপি / আইপি লুপব্যাকের (উদাহরণস্বরূপ লিনাক্সে) চেয়ে প্রায় 50% বেশি থ্রুপুট অর্জন করতে পারে। রেডিস-বেঞ্চমার্কের ডিফল্ট আচরণ হ'ল টিসিপি / আইপি লুপব্যাক ব্যবহার করা।

তবে এই পার্থক্যটি কেবল তখনই গুরুত্বপূর্ণ যখন থ্রুপুট বেশি থাকে।

ডাটা আকারের মাধ্যমে থ্রুপুট


8

ইউনিক্স ডোমেন সকেট টিসিপি সকেটের চেয়ে দ্বিগুণ দ্রুত হয় যখন উভয় সমবয়সী একই হোস্টে থাকে। ইউনিক্স ডোমেন প্রোটোকলগুলি কোনও আসল প্রোটোকল স্যুট নয়, তবে একই হোস্টে ক্লায়েন্ট / সার্ভার যোগাযোগের একই উপায় ব্যবহার করে যা বিভিন্ন হোস্টের ক্লায়েন্ট এবং সার্ভারের জন্য ব্যবহৃত হয়। ইউনিক্স ডোমেন প্রোটোকল হ'ল আন্তঃসম্পর্ক যোগাযোগ (আইপিসি) পদ্ধতির বিকল্প।

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