سؤال

أنا حاليا أقوم ببعض اختبار الأداء مع المعجنات DHT.Freepastry هو مفتوح المصدر DHT به في جافا.

والهدف من ذلك هو رصد تأثير على DHT عند عدد معين من العقد يذهب إلى أسفل.مشكلتي أني غير متأكد حول أفضل طريقة للقضاء على العقد.في هذه اللحظة كل عقدة يعمل بطريقة مختلفة بورت على الجهاز الخاص بي.أنا تدمير هذه العقد باستخدام الأسلوب تدمير() من المعجنات API http://www.freepastry.org/FreePastry/javadoc21a3/rice/pastry/PastryNode.html#destroy()

أنا قلق من أن هذا قد يكون غير واقعي في محاكاة عقدة الفشل ما إذا كان ينبغي قتل العقد بطريقة مختلفة مثل استخدام tcpkill?

أنا تشغيل نظام التشغيل Mac OS X سنو ليوبارد و قد تكون مهتمة في السمع أي اقتراحات ؟

هل كانت مفيدة؟

المحلول

هناك أشكال مختلفة من عقدة الفشل.

الأكثر شيوعا هو ببساطة عقدة يجري حاليا لأن التطبيق الذي يعمل DHT هو إيقاف.

تغيير دينامية الملكية الفكرية المحلية بالإنترنت أساسا لديه مهارة تأثير مختلف كما يبطل كل القائمة إدخالات جدول التوجيه حول هذا الموضوع ولكن على كل عقدة العد لا تذهب إلى أسفل.تفقد واحد و يمكنك الحصول على واحدة جديدة.

مسألة مشتركة أخرى هي وسائل الأتصال مشاكل بسبب ناتس.الرؤية من تلك العقدة قد تعتمد على NAT type وما إذا كان الاتصال الأخير مع ذلك.

الناتجة عن آثار التغير في الواقع يمكن أن تكون معقدة جدا.أولا وقبل كل شيء ، الجهوزية العقد الفردية عموما يتبع التوزيع الأسي.كثيرة هي متاحة فقط لفترة قصيرة و عدد قليل جدا من البقاء مستقرة لعدة أيام أو أشهر.

افترض أن لديك مستقرة الأساسية من متوسطة إلى طويلة الأجل العقد التي في الواقع يشكلون 90% من الشبكة.10% من نفس العقد باستمرار ظهرت في الوجود سوف يسبب بعض النفقات العامة حركة المرور ولكن لن تضر شبكة بكثير.لديك الكثير من زبد ولكن تأثير يذكر.

إذا كان 10% من عقدة السكان غير متصل بعد 10 دقائق و يتم استبدال العلامة التجارية الجديدة مجموعة من العقد من غير نشطة تجمع ثم أنت أساسا فقدان 10% من التكرار الخاص بك كل 10 دقائق.إذا كانت البيانات النسخ المتماثل بين العقد لا يبقى مع ذلك أو لا وجود لها حتى البيانات الخاصة بك سوف تسوس أضعافا مضاعفة.لديك أيضا الكثير من زبد ولكن لها تأثير كبير.

أنا حتى لست متأكدا أي نوع من المحاكاة أن تعكس الواقع أفضل طريقة.أعتقد أن الأكثر واقعية القيد هو ببساطة وجود ثابت بركة المحتملة العقد.أن أجهزة الكمبيوتر التي دهت تنفيذ تثبيت.

كل عقدة ثم لمحة من الزمن متى يبقى تصل في المتوسط و متى ستكون في المتوسط (حيث تلك المعلمتين جزئيا المترابطة مع بعضها البعض.طويلة الجهوزية العقد عموما لم يكن لديك طويلة جدا الأعطال كما انهم ربما دائما-على).و كل عقدة الأفعال على هذه المعلمات بشكل مستقل.في الواقع الوقت من اليوم أيضا يلعب دورا كما يمكن أن ينظر إليه بسهولة من هنا: http://dsn.tm.uni-karlsruhe.de/english/2936.php

لذا...قصة قصيرة طويلة, تشغيل فقط و قتل عدد قليل من العقد بشكل عشوائي لن تعطيك نتائج واقعية حول قدرة دهت ، كما أثر تختلف على نطاق واسع.

أما عن الجزء التقني, ربما كنت سوف ترغب في تشغيل كل منهم في نفس java VM استخدام خاصية تعدد أو nonblocking IO إلى تقليل النفقات العامة من تشغيل كل حالة منفصلة VM.وهذا من شأنه أيضا أن تسمح لك لجدولة يصل بهم و الأعطال في أكثر واقعية الطريقة.

حيث يمكنك تعيين عدة IPs إلى جهاز كمبيوتر واحد يجب أن تكون قادرة على تشغيل hundredthousands العقد على جهاز كمبيوتر يستند ببساطة على IP/ميناء العد.ولكن استهلاك الموارد العملية في نهاية المطاف سوف تعثر حتى أسرع نظام قليلة جدا DHT تطبيقات يتم تنفيذها فعليا على نطاق جيد.

لذلك عليك ربما تحتاج إلى تشغيل على الشبكة مع بضعة آلاف من العقد في الكمبيوتر للحصول على أي شيء قريب إلى واقعية.

إما هذا وإما اللجوء إلى أكثر الرياضية المحاكاة بدلا من تشغيل الفعلية تطبيقات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top