Siege هو اختبار انحدار مفتوح المصدر وأداة قياس الأداء. يمكنه التشديد على اختبار عنوان URL واحد مع عدد محدد من المستخدم من المستخدمين المحاكيين، أو يمكنه قراءة العديد من عناوين URL في الذاكرة والتأكيد عليها في وقت واحد. يقوم البرنامج بالإبلاغ عن إجمالي عدد الزيارات المسجلة والبايتات المنقولة ووقت الاستجابة والتزامن وحالة الإرجاع. يدعم Siege بروتوكولي HTTP/1.0 و1.1 وتوجيهات GET وPOST وملفات تعريف الارتباط وتسجيل المعاملات والمصادقة الأساسية. ميزاته قابلة للتكوين على أساس كل مستخدم.
معظم الميزات قابلة للتكوين باستخدام خيارات سطر الأوامر التي تتضمن أيضًا قيمًا افتراضية لتقليل تعقيد استدعاء البرنامج. يتيح لك Siege الضغط على خادم الويب بعدد n من المستخدمين وعدد مرات، حيث يتم تعريف n وt بواسطة المستخدم. يسجل مدة الاختبار وكذلك مدة كل معاملة على حدة. يقوم بالإبلاغ عن عدد المعاملات، والوقت المنقضي، والبايتات المنقولة، ووقت الاستجابة، ومعدل المعاملة، والتزامن، وعدد المرات التي استجاب فيها الخادم بشكل جيد، وهو رمز الحالة 200.
تم تصميم وتنفيذ Siege بواسطة جيفري فولمر في منصبه كمشرف موقع لشركة Armstrong World Industries. لقد تم تصميمه جزئيًا على غرار موقع التعذيب الذي قام به لينكولن ستاين، كما أن تقارير البيانات الخاصة به متطابقة تقريبًا. لكن موقع التعذيب لا يسمح للمرء بالتشديد على العديد من عناوين URL في وقت واحد؛ ومن تلك الحاجة ولد الحصار....
عندما يتم ضرب خادم HTTP بواسطة البرنامج، يُقال إنه "تحت الحصار".
تمت كتابة Siege لكل من مطوري الويب ومسؤولي أنظمة الويب. فهو يسمح لهؤلاء الأفراد باختبار برامجهم وأنظمتهم تحت الإكراه. باعتبارك أحد محترفي الويب، فأنت مسؤول عن سلامة منتجك، ولكن ليس لديك أي سيطرة على من يمكنه الوصول إليه. يمكن أن تحدث طفرات حركة المرور في أي لحظة. كيف تعرف إذا كنت مستعدًا؟
سيسمح لك الحصار بوضع هذه البرامج تحت الإكراه، مما يسمح لك بفهم العبء الذي يمكنها تحمله بشكل أفضل. سوف تنام بشكل أفضل عندما تعلم أن موقعك يمكنه تحمل وزن 400 معاملة متزامنة إذا كان موقعك يصل حاليًا إلى 250 معاملة.
تتميز المعاملة بقيام الخادم بفتح مأخذ توصيل للعميل والتعامل مع الطلب وتقديم البيانات عبر السلك وإغلاق المقبس عند الانتهاء. من المهم ملاحظة أن مستخدمي الإنترنت من البشر يستغرقون وقتًا لاستيعاب البيانات التي تعود إليهم. مستخدمي الحصار لا يفعلون ذلك. من الناحية العملية، وجدت أن 400 من مستخدمي الحصار المتزامنين يترجمون إلى خمسة أضعاف هذا المبلغ على الأقل في جلسات الإنترنت الحقيقية. ولهذا السبب يسمح لك الحصار بضبط التأخير ( --delay=NUM ). عند التعيين، ينام كل مستخدم حصار لعدد عشوائي من الثواني بين 1 وNUM. من خلال سجلات الخادم الخاص بك، يجب أن تكون قادرًا على الحصول على متوسط مقدار الوقت الذي تقضيه في الصفحة. يوصى باستخدام هذا الرقم للتأخير عند محاكاة نشاط الإنترنت.
يمكن الحصول على أحدث نسخة من الحصار عبر FTP مجهول: http://download.joedog.org/siege/siege-latest.tar.gz
يوجد مستودع المصدر على GitHub: git clone https://github.com/JoeDog/siege.git
يمكنك المشاهدة في متصفحك هنا: https://github.com/JoeDog/siege
يتم توزيع التحديثات والإعلانات عبر JoeDog: http://www.joedog.org/
تم بناء الحصار باستخدام GNU autoconf. إذا كنت معتادًا على برنامج GNU، فيجب أن تكون مرتاحًا عند تثبيت الحصار. يرجى الرجوع إلى الملف INSTALL لمزيد من التفاصيل.
لتمكين دعم HTTPS، يجب عليك تثبيت كل من opensl و openssl-devel على نظامك.
لتمكين تشفير نقل gzip، ستحتاج إلى تثبيت كل من zlib وzlib-devel على نظامك.
يجب تثبيت كافة المتطلبات الأساسية في وقت الترجمة. إذا قمت بإضافة المكتبات بعد تجميع الحصار، فسيتعين عليك تشغيل ./configure، وإجراء التثبيت مرة أخرى.
متطلبات الحصار ليست تبعيات. إذا لم تكن هذه المكتبات موجودة، فسيستمر التطبيق في التجميع والعمل. ببساطة لن تحتوي على هذه الوظائف.
الوثائق متاحة في صفحات الرجل Siege(1) Laingsiege(1) تم تضمين دليل HTML مع هذا التوزيع: manual.html
يمكن العثور على الوثائق الكاملة للحصار على www.joedog.org
راجع نسخ الملف للحصول على معلومات الترخيص الكاملة.
حقوق الطبع والنشر (C) 2000-2023 لجيفري فولمر [email protected]
يتم منح الإذن لأي شخص لعمل أو توزيع نسخ حرفية من هذه الوثيقة كما تم استلامها، في أي وسيلة، بشرط الحفاظ على إشعار حقوق النشر وإشعار الإذن هذا، وبالتالي إعطاء المستلم الإذن بإعادة التوزيع بدوره.
يُسمح بتوزيع نسخ معدلة من هذه الوثيقة، أو أجزاء منها، وفقًا للشروط المذكورة أعلاه، بشرط أن تحمل أيضًا إشعارات بارزة توضح من قام بتغييرها آخر مرة.
بالإضافة إلى ذلك، كاستثناء خاص، يمنح أصحاب حقوق الطبع والنشر الإذن بربط كود أجزاء من هذا البرنامج بمكتبة OpenSSL بموجب شروط معينة كما هو موضح في كل ملف مصدر فردي، وتوزيع المجموعات المرتبطة بما في ذلك الاثنين.
يجب عليك الالتزام برخصة GNU العامة في جميع النواحي لجميع التعليمات البرمجية المستخدمة بخلاف OpenSSL. إذا قمت بتعديل الملف (الملفات) مع هذا الاستثناء، فيمكنك توسيع هذا الاستثناء ليشمل إصدار الملف (الملفات) الخاص بك، ولكنك لست ملزمًا بالقيام بذلك.
إذا كنت لا ترغب في القيام بذلك، فاحذف بيان الاستثناء هذا من الإصدار الخاص بك. إذا قمت بحذف بيان الاستثناء هذا من كافة الملفات المصدر في البرنامج، فقم بحذفه هنا أيضًا.