تسعى مجموعة الوثائق لهذا المنتج جاهدة لاستخدام لغة خالية من التحيز. لأغراض مجموعة الوثائق هذه، يتم تعريف "خالية من التحيز" على أنها لغة لا تعني التمييز على أساس العمر، والإعاقة، والجنس، والهوية العرقية، والهوية الإثنية، والتوجه الجنسي، والحالة الاجتماعية والاقتصادية، والتمييز متعدد الجوانب. قد تكون الاستثناءات موجودة في الوثائق بسبب اللغة التي يتم تشفيرها بشكل ثابت في واجهات المستخدم الخاصة ببرنامج المنتج، أو اللغة المستخدمة بناءً على وثائق RFP، أو اللغة التي يستخدمها منتج الجهة الخارجية المُشار إليه. تعرّف على المزيد حول كيفية استخدام Cisco للغة الشاملة.
ترجمت Cisco هذا المستند باستخدام مجموعة من التقنيات الآلية والبشرية لتقديم محتوى دعم للمستخدمين في جميع أنحاء العالم بلغتهم الخاصة. يُرجى ملاحظة أن أفضل ترجمة آلية لن تكون دقيقة كما هو الحال مع الترجمة الاحترافية التي يقدمها مترجم محترف. تخلي Cisco Systems مسئوليتها عن دقة هذه الترجمات وتُوصي بالرجوع دائمًا إلى المستند الإنجليزي الأصلي (الرابط متوفر).
يصف هذا وثيقة كيف أن يتحرى إنتاج قطرات على المادة حفازة 9000 sery منصة.
لاستكشاف أخطاء جودة الخدمة (QoS) وإصلاحها على الأنظمة الأساسية من السلسلة Catalyst 9000، يجب أن تفهم ما يلي:
أسست المعلومة في هذا وثيقة على هذا جهاز وبرمجية صيغة، غير أن المنهجية وأغلب الأمر يستطيع كنت طبقت إلى آخر مادة حفازة 9000 sery مفتاح على آخر رمز:
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
ملاحظة: راجع دليل التكوين المناسب للأوامر التي يتم إستخدامها لتمكين هذه الميزات على منصات Cisco الأخرى.
للحصول على شرح متعمق لجودة الخدمة (QoS) على الأنظمة الأساسية من السلسلة Catalyst 9000 Series، والتي تتضمن تكوينات جودة الخدمة الافتراضية وهيكل قائمة الانتظار وتفسيرات المخزن المؤقت، راجع التقرير الرسمي لجودة الخدمة (QoS) الخاص بقائمة الانتظار راجع دليل الإصدار الموصى به لضمان تواجدك على أحدث البرامج الموصى بها لمنصة عملك. تضمن هذه التوصيات دعم البرامج الخاصة بك، وتساعد على تجنب الأخطاء المعروفة في الرموز القديمة. الإصدارات الموصى بها للمحولات
يمكن أن تساعدك معرفة تخصيص المخزن المؤقت على فهم كيفية حدوث إزدحام مخزن مؤقت في عمليات إسقاط الإخراج. يحدث الازدحام عندما يكون لواجهة الوجهة عدد من الحزم التي تتجاوز معدل الإخراج الخاص بها. يجب تخزين هذه الحزم في المخزن المؤقت حتى يمكن إرسالها. ضع في الاعتبار أن هذه المحولات تحتوي على 36 ميجابايت على الأكثر من المخازن المؤقتة لكل ASIC، والتي يتم مشاركتها بعد ذلك بين جميع المنافذ على ASIC. بينما مخرج قارن يستطيع كنت أفرغت أن مصد عند خط معدل، أي سيناريو أن يسبب أن خزنت الحزم بمعدل أكبر يمكن أن يسبب إزدحام. يمكن أن يحدث الازدحام حتى إذا استمر انفجار حركة المرور تلك لجزء من الثانية فقط، ويمكن أن يتسبب في تأخير حركة المرور، أو سقطت المخرجات إذا كان المخزن المؤقت سيتم تعبئته بالكامل.
ملاحظة: يتم عرض عداد إسقاط الإخراج المعروض في show interface بالبايت بشكل افتراضي. في الإصدار 16.9.3 والإصدارات الأحدث، تكون هذه العدادات حزم بشكل افتراضي.
كما هو موضح في الصورة 1، هناك نوعان من الازدحام.
الصورة 1. أنواع الازدحام
النوعان من الازدحام الموضحان في الصورة 1 هما:
يمكن أن تتسبب انفجارات حركة المرور في حدوث حالات انخفاض في المخرجات حتى عندما يكون معدل إخراج الواجهة أقل بشكل ملحوظ من الحد الأقصى لسعة الواجهة. بشكل افتراضي، يتم متوسط معدلات الإخراج في أمر show interface خلال خمس دقائق، وهو ما لا يكفي لاحتجاز أي دفعات نارية قصيرة العمر. من الأفضل أن تقوم بمتوسط كل منها خلال 30 ثانية، بالرغم من أنه حتى في هذا السيناريو قد ينتج عن تدفق الحركة خلال مللي ثانية إنخفاضات في المخرجات لا تتسبب في زيادة متوسط معدل 30 ثانية. يمكن إستخدام هذا المستند لاستكشاف أخطاء أي نوع آخر من الازدحام الذي تراه على محول Catalyst 9000 Series switch وإصلاحها.
هناك أمران يستخدمان للتحقق من إزدحام المخزن المؤقت. الأمر الأول هو show platform hardware fed switch active qoS queue config interface <interface>. يتيح لك هذا الأمر أن ترى تخصيص المخزن المؤقت الحالي على المنفذ، كما هو موضح في الصورة 2.
9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48
Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1
AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383
DrainFast:Disabled PortSoftStart:2 - 1800
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
----- -------- -------- -------- -------- ---------
0 1 6 200 7 800 19 475 0 0 3 2400
1 1 5 0 8 1200 19 712 8 300 3 2400
2 1 5 0 6 0 0 0 0 0 3 2400
3 1 5 0 6 0 0 0 0 0 3 2400
4 1 5 0 6 0 0 0 0 0 3 2400
5 1 5 0 6 0 0 0 0 0 3 2400
6 1 5 0 6 0 0 0 0 0 3 2400
7 1 5 0 6 0 0 0 0 0 3 2400
الصورة 2. تخصيص مخزن قائمة الانتظار المؤقت
تريد بشكل خاص النظر في عمود Hardmax و Softmax الذي يظهر عدد المخازن المؤقتة المتوفرة في قوائم الانتظار. للحصول على معلومات حول ما هي هذه المخازن المؤقتة وكيف يتم تخصيصها بشكل افتراضي، راجع التقرير الرسمي لقائمة انتظار وترقية جودة خدمة Catalyst 9000.
والأمر الثاني هو show platform hardware fed switch active qoS queue stats interface <interface>. يتيح لك هذا الأمر الاطلاع على إحصائيات كل قائمة انتظار على واجهة، والتي تتضمن عدد وحدات البايت التي تم وضعها في المخازن المؤقتة، وعدد وحدات البايت التي تم إسقاطها بسبب نقص المخازن المؤقتة المتاحة.
9300#show platform hardware fed switch active qos queue stats interface Gig 1/0/1
DATA Port:0 Enqueue Counters
---------------------------------------------------------------------------------------------
Q Buffers Enqueue-TH0 Enqueue-TH1 Enqueue-TH2 Qpolicer
(Count) (Bytes) (Bytes) (Bytes) (Bytes)
- ------- -------------------- -------------------- -------------------- --------------------
0 0 0 0 384251797 0
1 0 0 0 488393930284 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
5 0 0 0 0 0
6 0 0 0 0 0
7 0 0 0 0 0
DATA Port:0 Drop Counters
-------------------------------------------------------------------------------------------------------------------------------
Q Drop-TH0 Drop-TH1 Drop-TH2 SBufDrop QebDrop QpolicerDrop
(Bytes) (Bytes) (Bytes) (Bytes) (Bytes) (Bytes)
- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------
0 0 0 0 0 0 0
1 0 0 192308101 0 0 0
2 0 0 0 0 0 0
3 0 0 0 0 0 0
4 0 0 0 0 0 0
5 0 0 0 0 0 0
6 0 0 0 0 0 0
7 0 0 0 0 0 0
الصورة 3. إحصائيات المخزن المؤقت لقائمة الانتظار مع عمليات الإسقاط
كما هو موضح في الصورة 3، تحتوي كل من قائمة الانتظار 0 وقائمة الانتظار 1 على وحدات بايت تم وضعها في قائمة الانتظار، ولكن قائمة الانتظار 1 هي التي تواجه عمليات الإسقاط في عمود Drop-TH2. تشير هذه المعلومات إلى أن حركة مرور قائمة الانتظار 0 لم تتأثر بهذا الازدحام، وأن سبب الازدحام هو حركة مرور قائمة الانتظار 1 بشكل خاص.
لزيادة عدد المخازن المؤقتة يمكن لكل قائمة انتظار أن تطلب من التجمع المشترك، قم بزيادة حد SoftMax باستخدام المضاعف <100 - 1200> الخاص بتكوين قائمة انتظار QoS. القيمة الأعلى هي 1200، وتزداد بمقدار مضاعف 12، مما يعني قدرة قائمة انتظار واحدة ذات منفذ على إستيعاب الموجات الدقيقة. يزيد هذا الأمر من حدود قائمة انتظار المنافذ حتى يمكن لقائمة انتظار المنافذ إستهلاك وحدات تخزين مؤقت إضافية من التجمع المشترك. كما هو موضح في الصورة 4، التكوين والتخصيص الزائد للمخزن المؤقت.
9300(config)#qos queue-softmax-multiplier 1200
9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48
Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1
AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383
DrainFast:Disabled PortSoftStart:3 - 14400
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
----- -------- -------- -------- -------- ---------
0 1 6 200 9 9600 2 600 0 0 1 15000
1 1 5 0 10 14400 2 900 1 450 1 15000
2 1 5 0 6 0 0 0 0 0 1 15000
3 1 5 0 6 0 0 0 0 0 1 15000
4 1 5 0 6 0 0 0 0 0 1 15000
5 1 5 0 6 0 0 0 0 0 1 15000
6 1 5 0 6 0 0 0 0 0 1 15000
7 1 5 0 6 0 0 0 0 0 1 15000
الصورة 4. تكوين قائمة الانتظار باستخدام مضاعف SoftMax من 1200
يستخدم هذا التكوين الشائع كطريقة سريعة لحل حالات إسقاط الإخراج. في الصورة 4، ينطبق هذا التكوين على جميع قوائم الانتظار غير ذات الأولوية عبر جميع الواجهات. يفترض تخصيص المخزن المؤقت نفسه أن لا يحدث التفتيشات الدقيقة، على كل ميناء، على المفتاح في نفس الوقت. إذا حدثت انفجارات صغيرة في لحظات عشوائية، يمكن للمخزن المؤقت المشترك تخصيص وحدات إضافية لمخزن مؤقت لامتصاصها.
يمكن الاستفادة من تعديل المخزن المؤقت لكل قائمة انتظار لسيناريوهات لا يمكنك فيها إستخدام مضاعف SoftMax، أو في سيناريوهات تحاول فيها ضبط المخازن المؤقتة لتلائم ملف تعريف حركة مرور البيانات. لتعديل تخصيص مخزن قائمة الانتظار المؤقت، المحول على أساس كل واجهة، يجب إستخدام خرائط النهج. في معظم الظروف، تقوم بتعديل خريطة السياسة الحالية لواجهة ما وتغيير المخازن المؤقتة على أساس كل فئة.
في هذا المثال، شهدت الواجهة GigabitEthernet1/0/48 عمليات إسقاط للإخراج. كما هو موضح في الصورة 5، خريطة سياسة الخروج التي يتم تطبيقها على هذه الواجهة.
policy-map MYPOL
class Voice
priority level 1 percent 20
class Video
priority level 2 percent 10
class Control
bandwidth percent 10
class Data
bandwidth percent 5
class class-default
الصورة 5. مثال على مخطط النهج
تحتوي خريطة السياسة هذه على 5 خرائط فئات، مما ينتج عنه إجمالي 5 قوائم انتظار خروج على الواجهة. تحتوي كل فئة على عدد افتراضي من المخازن المؤقتة المخصصة لها استنادا إلى مستوى الأولوية الخاص بها.
تعرض الصورة 6 عمليات تخصيص المخزن المؤقت الحالية.
9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48
Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1
AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383
DrainFast:Disabled PortSoftStart:3 - 600
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
----- -------- -------- -------- -------- ---------
0 1 7 100 9 100 0 0 0 0 3 800
1 1 7 100 10 400 19 237 0 0 3 800
2 1 5 0 10 400 19 237 8 100 3 800
3 1 5 0 10 400 19 237 8 100 3 800
4 1 5 0 10 400 19 237 8 100 3 800
5 1 5 0 6 0 0 0 0 0 3 800
6 1 5 0 6 0 0 0 0 0 3 800
7 1 5 0 6 0 0 0 0 0 3 800
الصورة 6. تكوين مخزن قائمة الانتظار المؤقت باستخدام مثال النهج
ونظرا لأن هذه الواجهة قد شهدت عمليات إسقاط إخراج، فراجع إحصائيات قوائم الانتظار الخاصة بالواجهة لمعرفة مكان الازدحام.
9300#show platform hardware fed switch active qos queue stats interface gigabitEthernet 1/0/48
DATA Port:0 Enqueue Counters
---------------------------------------------------------------------------------------------
Q Buffers Enqueue-TH0 Enqueue-TH1 Enqueue-TH2 Qpolicer
(Count) (Bytes) (Bytes) (Bytes) (Bytes)
- ------- -------------------- -------------------- -------------------- --------------------
0 0 0 0 489094 0
1 0 0 0 4846845 0
2 0 0 0 89498498 0
3 0 0 0 21297827045 0
4 0 0 0 74983184 0
5 0 0 0 0 0
6 0 0 0 0 0
7 0 0 0 0 0
DATA Port:0 Drop Counters
-------------------------------------------------------------------------------------------------------------------------------
Q Drop-TH0 Drop-TH1 Drop-TH2 SBufDrop QebDrop QpolicerDrop
(Bytes) (Bytes) (Bytes) (Bytes) (Bytes) (Bytes)
- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------
0 0 0 0 0 0 0
1 0 0 0 0 0 0
2 0 0 0 0 0 0
3 0 0 3854484 0 0 0
4 0 0 0 0 0 0
5 0 0 0 0 0 0
6 0 0 0 0 0 0
7 0 0 0 0 0 0
الصورة 7. إحصائيات المخزن المؤقت لقائمة الانتظار مع عمليات السقوط باستخدام مثال النهج
توضح الصورة 7 أن قائمة الانتظار 3 بها عدد أكبر من حركة مرور البيانات التي تم إدخالها في قائمة الانتظار الأخرى، كما أنها الوحيدة التي شهدت عمليات إسقاط للإخراج. بما أن رقم قائمة الانتظار يبدأ من 0، فإن قائمة الانتظار 3 تخطط لخريطة الفئة الرابعة، بيانات الفئة.
لتخفيف حالات السقوط على قائمة الانتظار هذه، قم بتخصيص المزيد من المخازن المؤقتة لقائمة الانتظار 3. لتغيير تخصيص المخزن المؤقت هذا، أستخدم تكوين مخزن الانتظار المؤقت <0-100> في خريطة السياسة. إذا تم تكوينها على كل فئة في النهج، فيجب أن تضيف ما يصل إلى 100. إذا قمت بتكوين فئة واحدة فقط باستخدام هذا الأمر، فسيحاول النظام طرح المخازن المؤقتة من قوائم الانتظار الأخرى بشكل متساو.
في الصورة 8، تم تكوين فئة البيانات باستخدام نسبة المخازن المؤقتة للصفوف 40.
policy-map MYPOL
class Voice
priority level 1 percent 20
class Video
priority level 2 percent 10
class Control
bandwidth percent 10
class Data
bandwidth percent 5
queue-buffers ratio 40
الصورة 8. مثال على مخطط النهج مع المخازن المؤقتة المعدلة لقائمة الانتظار
في الصورة 9، يمكنك رؤية أن فئة البيانات تحتوي الآن على 40٪ من المخازن المؤقتة للواجهة، إجمالي 800 مخزن مؤقت.
9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48
Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1
AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383
DrainFast:Disabled PortSoftStart:3 - 1200
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
----- -------- -------- -------- -------- ---------
0 1 7 75 9 75 0 0 0 0 3 1600
1 1 7 75 10 300 19 178 0 0 3 1600
2 1 5 0 10 300 19 178 8 75 3 1600
3 1 5 0 7 800 19 475 8 200 3 1600
4 1 5 0 10 300 19 178 8 75 3 1600
5 1 5 0 6 0 0 0 0 0 3 1600
6 1 5 0 6 0 0 0 0 0 3 1600
7 1 5 0 6 0 0 0 0 0 3 1600
الصورة 9. تكوين مخزن قائمة الانتظار المؤقت باستخدام نهج المثال المحدث
وهذا يتسبب أيضا في أن يكون لقوائم الانتظار الأخرى مخزونات Softmax مؤقتة أقل. من المهم إجراء تغييرات المخزن المؤقت هذه بزيادات صغيرة لضمان ألا تؤدي التغييرات إلى حالات سقوط للمخرجات على قوائم الانتظار الأخرى.
ومع إجراء هذا التغيير، تحقق من إحصائيات قائمة الانتظار وانظر ما إذا كانت لا تزال زيادة في عدد حالات السقوط في قائمة الانتظار هذه أو أي قائمة انتظار أخرى. إذا إستمرت عمليات الإسقاط، فقم بتعديل تكوين مخزن الانتظار المؤقت حتى يتم حل عمليات إسقاط المخرجات.
جودة الخدمة هي في المقام الأول طريقة لترتيب حركة المرور حسب الأولوية، وهي ليست حلا لكل سيناريو إسقاط إخراج. هناك بعض السيناريوهات التي لا يكون فيها تعديل المخازن المؤقتة للصفوف كافيا لحل جميع عمليات إسقاط المخرجات. في هذه السيناريوهات، يمكنك إدارة الإزدحام بعدة طرق أخرى:
ويتضمن ذلك الأساليب التي تزيد من عرض النطاق الترددي لمخرجك مثل قنوات المنفذ أو المسارات المتعددة للتكلفة المتساوية (ECMP)، ولكن يمكن أن يتطلب أيضا تكوينات أكثر تدخلا مثل هندسة حركة مرور البيانات.
بينما لا تتوقف أداة جدولة قوائم الانتظار عن الازدحام، فإنها تحمي حركة المرور الهامة من التأثير الناجم عن الازدحام
يعتبر Wireshark أداة مفيدة لتعريف دفعات حركة المرور التي تتسبب في إزدحام المخزن المؤقت وحالات السقوط. إذا قمت بفسحة بين دعامتين واجهة في إتجاه المخرج بينما هي تختبر عمليات إسقاط، يمكن أن يقوم Wireshark بتمثيل معدل المخرجات ليرى متى وأي حركة مرور أطلقت عمليات الإسقاط. ويكون هذا مفيدا بشكل خاص عند تحديد حالات انخفاض المخرجات في سيناريوهات الإنتاج المنخفض.
بمجرد فتح الفسحة بين دعامتين التقاط باستخدام Wireshark، حدد إحصائيات، ثم I/O Graph، كما هو موضح في الصورة 10.
الصورة 10. قم بتحديد رسم I/O البياني
بمجرد تحديد ذلك، يقوم Wireshark بتوليد رسم بياني لحركة المرور بوحدات بت في الثانية. تعرض الصورة 11 رسما بيانيا لمثال لواجهة ما أثناء إختبارها لعمليات إسقاط مخرجات.
الصورة 11. وحدات بت/ميللي ثانية للرسم البياني للإدخال/الإخراج
يشير الرسم البياني للصورة 11 إلى أن الواجهة كان بها معدل إخراج أقصى يتجاوز 80 ميجابت في الثانية بالكاد. طريقة عرض الرسم البياني الافتراضية غير قابلة للتعديل بشكل كاف لتحديد الدفعات الصغيرة لحركة المرور التي تتسبب في حالات إسقاط الحزمة. انه معدل معدل معدل حركة المرور في الثانية الواحدة. لفهم كيف يمكن أن يتسبب هذا المعدل في إزدحام المخزن المؤقت، ضع في الاعتبار الخرج على مقياس مللي ثانية.
يمكن لواجهة جيجابت إعادة توجيه 1،000،000،000 بت في الثانية. وبمجرد تحويلها إلى مللي ثانية، فهذا يعادل 1،000،000 بت (أو 10^6) لكل مللي ثانية.
عندما يتجاوز معدل الواجهة سرعة إعادة التوجيه تلك للواجهة، يجب أن تعمل المحولات على تخزين هذه الحزم مؤقتا، مما ينتج عنه إزدحام البيانات وانخفاضات في المخرجات.
يتيح Wireshark للمستخدم تمثيل معدل الإدخال/الإخراج كوحدات بت لكل مللي ثانية. للقيام بذلك، قم بتقليل الفاصل الزمني من 1 ثانية إلى 1 مللي ثانية، ثم انقر فوق إعادة ضبط لعرض الرسم البياني بشكل صحيح. تظهر هذه الخطوة في الصورة 12.
الصورة 12. تقليل الفاصل الزمني إلى 1 مللي ثانية وإعادة ضبط الرسم البياني
يعرض الرسم البياني المحدث بشكل أكثر دقة معدل الإدخال/الإخراج الحقيقي للواجهة. عندما يلتقي المعدل أو يتجاوز 10^6 بت لكل مللي ثانية، يواجه المحول إزدحام أو حالات انخفاض في المخرجات. تعرض الصورة 13 رسم I/O البياني المحدث لواجهة شهدت عمليات إسقاط للإخراج.
الصورة 13. وحدات بت/ميللي ثانية للرسم البياني للإدخال/الإخراج
توضح الصورة 13 أن هناك ذرى حركة مرور متعددة تطابق أو تتجاوز الحد الأدنى 10^6. ستخضع حركة المرور للتخزين المؤقت ويتم إسقاطها إذا تجاوزت حجم مخزن الخروج المؤقت.
ملاحظة: إذا كان الفسحة بين دعامتين غاية متصل بواجهة 1 Gbps، فإن معدل الإدخال/الإخراج في Wireshark لا يمكن أن يتجاوز ذلك 10^6 بت لكل مللي ثانية معدل، بغض النظر عن معدل واجهة المصدر. الفسحة بين دعامتين غاية قارن بدلا من يخزن أو يسقط أن ربط. من الشائع رؤية مستوى الرسم البياني للإدخال والإخراج عند هذا الحد الأقصى من الإنتاجية أو تقديم متوسط معدل نقل البيانات الذي يبدو أنه يتجه إلى الأعلى.
المراجعة | تاريخ النشر | التعليقات |
---|---|---|
3.0 |
22-Aug-2023 |
SEO المحدث ومتطلبات العلامة التجارية وإخلاء المسؤولية القانوني ومتطلبات النمط والتنسيق. |
2.0 |
20-Jul-2022 |
الإصدار الأولي |
1.0 |
10-Nov-2020 |
الإصدار الأولي |