تيز رفتار جوابي

تيز رفتار جوابي
اهو ڪو راز ناهي ته ڊفالٽ سيٽنگن سان جواب ڏيڻ وارو پنهنجو ڪم تمام جلدي نٿو ڪري سگهي. آرٽيڪل ۾ آئون هن لاء ڪيترن ئي سببن جي نشاندهي ڪندس ۽ هڪ مفيد گهٽ ۾ گهٽ سيٽنگون پيش ڪندس، جيڪي ممڪن طور تي، توهان جي منصوبي جي رفتار کي وڌائي سگهندا.

هتي ۽ هيٺ اسان جوابي 2.9.x تي بحث ڪندا آهيون، جيڪو توهان جي پسنديده انداز ۾ تازو ٺهيل ورچوئلن ۾ نصب ڪيو ويو آهي.

انسٽال ڪرڻ کان پوءِ، پنهنجي پلے بڪ جي اڳيان ”ansible.cfg“ فائل ٺاهيو - هي مقام توهان کي پروجيڪٽ سان گڏ اهي سيٽنگون منتقل ڪرڻ جي اجازت ڏيندو، ان سان گڏ اهي خود بخود لوڊ ٿي ويندا.

پائپ لائننگ

ڪجھ شايد اڳ ۾ ئي پائپ لائننگ استعمال ڪرڻ جي ضرورت جي باري ۾ ٻڌو آهي، اهو آهي ته ماڊلز کي ٽارگيٽ سسٽم جي فائل سسٽم ڏانهن نقل نه ڪيو وڃي، پر بيس 64 ۾ لپي هڪ زپ آرڪائيو کي سڌو سنئون پيٿون مترجم جي اسٽڊين ڏانهن منتقل ڪرڻ، پر ٻيا شايد نه، پر حقيقت. هڪ حقيقت رهي ٿو: هن سيٽنگ اڃا تائين گهٽجي رهي آهي. بدقسمتي سان، ڪجهه مشهور لينڪس ڊسٽريبيوشن استعمال ڪيا ويا آهن ترتيب ڏيڻ لاءِ sudo بلڪل چڱي طرح ڊفالٽ نه آهي - انهي ڪري ته هن ڪمانڊ کي tty (ٽرمينل) جي ضرورت آهي، تنهن ڪري جوابي هن تمام مفيد سيٽنگ کي ڊفالٽ طور بند ڪري ڇڏيو.

pipelining = True

حقيقتون گڏ ڪرڻ

ڇا توهان کي خبر آهي ته ڊفالٽ سيٽنگن سان، هر راند لاءِ جواب ڏيڻ سڀني ميزبانن لاءِ حقيقتن جو مجموعو شروع ڪري ٿو جيڪي ان ۾ حصو وٺندا آهن؟ عام طور تي، جيڪڏهن توهان کي خبر ناهي، هاڻي توهان ڄاڻو ٿا. ھن کي ٿيڻ کان روڪڻ لاءِ، توھان کي چالو ڪرڻو پوندو يا ته واضح درخواست واري موڊ کي حقيقتون گڏ ڪرڻ لاءِ (واضح) يا سمارٽ موڊ. ان ۾ صرف انهن ميزبانن کان حقيقتون گڏ ڪيون وينديون جيڪي اڳئين ڊرامن ۾ سامهون نه آيون هيون.
يو پي ڊي. ڪاپي ڪرڻ وقت، توهان کي انهن سيٽنگن مان هڪ کي چونڊڻو پوندو.

gathering = smart|explicit

ssh ڪنيڪشن ٻيهر استعمال ڪندي

جيڪڏهن توهان ڪڏهن به ڊيبگنگ موڊ ۾ جواب ڏنو آهي ("v" آپشن، هڪ کان نو ڀيرا ورجايو)، توهان شايد محسوس ڪيو هوندو ته ssh ڪنيڪشن مسلسل ٺاهيا ۽ ٽوڙيا ويندا آهن. تنهن ڪري، هتي پڻ ڪجهه ذيلي ذوق آهن.

توهان هڪ ڀيرو ٻه سطحن تي ssh ڪنيڪشن کي ٻيهر قائم ڪرڻ جي قدم کان پاسو ڪري سگهو ٿا: ٻئي سڌو ssh ڪلائنٽ ۾، ۽ جڏهن فائلن کي مئنيجر کان منظم ميزبان ڏانهن منتقل ڪرڻ.
کليل ssh ڪنيڪشن کي ٻيهر استعمال ڪرڻ لاءِ، بس ضروري ڪنجيون پاس ڪريو ssh ڪلائنٽ ڏانهن. پوءِ اھو ھيٺين ڪم ڪرڻ شروع ڪندو: جڏھن پھريون ڀيرو ssh ڪنيڪشن قائم ڪيو ويندو، اھو اضافي طور تي ھڪ نام نہاد ڪنٽرول ساکٽ ٺاھيندو، بعد ۾ تنصيب تي، اھو ان ئي ساکٽ جي وجود کي جانچيندو، ۽ جيڪڏھن ڪامياب ٿيو، ته وري استعمال ڪريو. موجوده ssh ڪنيڪشن. ۽ اهو سڀ ڪجهه سمجهڻ لاءِ ، اچو ته ڪنيڪشن کي برقرار رکڻ لاءِ وقت مقرر ڪريون جڏهن غير فعال. توھان وڌيڪ پڙھي سگھوٿا ۾ ssh دستاويز، ۽ جوابي جي حوالي سان اسان صرف استعمال ڪريون ٿا "فارورڊنگ" ضروري اختيارن کي ssh ڪلائنٽ ڏانهن.

ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"

اڳ ۾ ئي کليل ssh ڪنيڪشن کي ٻيهر استعمال ڪرڻ لاءِ جڏهن فائلن کي منظم ميزبان ڏانهن منتقل ڪيو وڃي، صرف هڪ ٻي نامعلوم سيٽنگ بيان ڪريو ssh_tranfer_method. هن موضوع تي دستاويز انتهائي آهي بخيل ۽ گمراهه ڪندڙ، ڇاڪاڻ ته هي اختيار تمام سٺو ڪم ڪري ٿو! پر پڙهڻ سورس ڪوڊ توهان کي سمجهڻ جي اجازت ڏئي ٿي ته ڇا ٿيندو: ڊي ڊي ڪمانڊ منظم ميزبان تي شروع ڪيو ويندو، سڌو سنئون گهربل فائل سان ڪم ڪندي.

transfer_method = piped

رستي ۾، "ترقي" برانچ ۾ هي سيٽنگ پڻ موجود آهي ڪٿي به نه وڃڻ.

چاقو کان نه ڊڄو، ڪانٽي کان ڊڄو

ٻي مفيد سيٽنگ آهي فورڪ. اهو ڪم ڪندڙ عملن جو تعداد طئي ڪري ٿو جيڪو هڪ ئي وقت ميزبانن سان ڳنڍيندو ۽ ڪم انجام ڏيندو. پٿون جي خصوصيتن جي ڪري هڪ ٻولي طور، پروسيس استعمال ڪيا ويندا آهن، نه ٿريڊز، ڇاڪاڻ ته جوابي اڃا تائين پٿون 2.7 کي سپورٽ ڪري ٿو - توهان لاءِ ڪو به asyncio، هتي غير مطابقت واري رويي کي متعارف ڪرائڻ ۾ ڪو به مقصد ناهي! ڊفالٽ جوابي رنسون پنج ڪارڪنن، پر جيڪڏهن صحيح پڇيو، اهو وڌيڪ لانچ ڪندو:

forks = 20

مان توهان کي فوري طور تي ڊيڄاريان ٿو ته ڪنٽرول مشين تي موجود ميموري جي مقدار سان لاڳاپيل هتي ڪجهه مشڪلاتون ٿي سگهن ٿيون. ٻين لفظن ۾، توهان، يقينا، سيٽ ڪري سگهو ٿا فورڪس = 100500، پر ڪير چيو ته اهو ڪم ڪندو؟

اهو سڀ ڪجهه گڏ ڪرڻ

نتيجي طور، ansible.cfg (ini فارميٽ) لاءِ، ضروري سيٽنگون هن طرح نظر اچن ٿيون:

[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped

۽ جيڪڏھن توھان چاھيو ٿا لڪائڻ چاھيو ٿا ھر شيءِ کي عام YaML-انوینٽري ۾ ھڪڙو صحتمند ماڻھو، پوءِ اھو ڪجھ ھن طرح نظر اچي سگھي ٿو:

---
all:
  vars:
    ansible_ssh_pipelining: true
    ansible_ssh_transfer_method: piped
    ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m

بدقسمتي سان، هي سيٽنگن سان ڪم نه ڪندو "گڏيل = سمارٽ / واضح" ۽ "فورڪس = 20": انهن جي YaML برابري موجود ناهي. يا ته اسان انهن کي ansible.cfg ۾ سيٽ ڪريون ٿا، يا اسان انهن کي ماحولياتي تبديلين ANSIBLE_GATHERING ۽ ANSIBLE_FORKS ذريعي منتقل ڪريون ٿا.

Mitogen جي باري ۾
- اهو ڪٿي آهي Mitogen بابت؟ - توهان کي پڇڻ جو حق آهي، پيارا پڙهندڙ. هن مضمون ۾ ڪٿي به نه. پر جيڪڏهن توهان واقعي ان جو ڪوڊ پڙهڻ لاءِ تيار آهيو ۽ اهو معلوم ڪرڻ لاءِ تيار آهيو ته توهان جو پلے بڪ Mitogen سان حادثو ڇو ٿئي ٿو، پر وينلا انسيبل سان ٺيڪ ڪم ڪري ٿو، يا ڇو ته ساڳيو ئي پلے بڪ اڳ ٺيڪ ڪم ڪري رهيو هو، پر هڪ تازه ڪاري کان پوءِ عجيب شيون ڪرڻ شروع ڪيون - خير، Mitogen ٿي سگهي ٿو توهان جو اوزار. ان کي لاڳو ڪريو، ان کي سمجھو، آرٽيڪل لکو - مان ان کي دلچسپي سان پڙھندس.

مان ذاتي طور تي Mitogen ڇو نه استعمال ڪريان؟ ڇاڪاڻ ته gladiolus اهو صرف ان وقت تائين ڪم ڪري ٿو جيستائين ڪم بلڪل سادو آهن ۽ سڀ ڪجهه ٺيڪ آهي. تنهن هوندي، جيڪڏهن توهان ٿورو کاٻي يا ساڄي طرف ڦيرايو - اهو ئي آهي، اسان پهچي چڪا آهيون: جواب ۾، ڪجهه غير معمولي استثنا توهان ڏانهن پرواز ڪن ٿا، ۽ تصوير کي مڪمل ڪرڻ لاء، جيڪو غائب آهي اهو عام جملو آهي "سڀني جي مهرباني. هرڪو آزاد آهي. عام طور تي، مان صرف وقت ضايع ڪرڻ نه ٿو چاهيان ايندڙ "زير زميندار" جي سببن کي ڳولڻ ۾.

انهن مان ڪجهه سيٽنگون پڙهڻ جي عمل دوران دريافت ڪيا ويا سورس ڪوڊ ڪنيڪشن پلگ ان خود وضاحتي نالو "ssh.py" تحت. مان پڙهڻ جي نتيجن کي اميد سان حصيداري ڪريان ٿو ته اهو ڪنهن ٻئي کي حوصلا افزائي ڪندو ذريعن کي ڏسڻ، انهن کي پڙهڻ، عمل جي جانچ ڪرڻ، دستاويزن سان مقابلو ڪرڻ - آخرڪار، جلد يا بعد ۾ اهو سڀ ڪجهه توهان کي مثبت نتيجا آڻيندو. سدا خوشقسمت رهو!

صرف رجسٽرڊ استعمال ڪندڙ سروي ۾ حصو وٺي سگهن ٿا. سائن ان ڪريو، توهان جي مهرباني.

توھان ھيٺ ڏنل جوابي سيٽنگن مان ڪھڙو استعمال ڪندا آھيو توھان پنھنجي منصوبن کي تيز ڪرڻ لاءِ؟

  • 69,6٪پائپ لائننگ = سچ 32

  • 34,8٪گڏ ڪرڻ = سمارٽ/ واضح 16

  • 52,2٪ssh_args = "-o ControlMaster=auto-o ControlPersist=..."24

  • 17,4٪منتقلي_طريقه = پائپ 8

  • 63,0٪فورڪس = XXX29

  • 6,5٪هن مان ڪو به نه، صرف Mitogen3

  • 8,7٪Mitogen + مان نوٽ ڪندس ته انهن مان ڪهڙيون سيٽنگون 4

46 صارفين ووٽ ڏنو. 21 استعمال ڪندڙ روڪيو.

جواب ڏيڻ بابت وڌيڪ مواد چاهيو ٿا؟

  • 78,3٪ها، يقيناً54

  • 21,7٪ها، مان صرف وڌيڪ سخت شيون چاهيان ٿو! 15

  • 0,0٪نه، ۽ اهو ضروري ناهي ته ڪجھ به نه

  • 0,0٪نه، اهو پيچيده آهي!!!0

69 صارفين ووٽ ڏنو. 7 استعمال ڪندڙن کي روڪيو ويو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو