Ans 100 হোস্টের বিপরীতে একটি সাধারণ উত্তরযোগ্য প্লেবুকের পক্ষে যুক্তিসঙ্গত পারফরম্যান্স কী?


11

আমরা পুরানো সিফেনজিন 2 ইনস্টলেশনটি প্রতিস্থাপন করতে উত্তরযোগ্যটির দিকে তাকাতে শুরু করি। আমার একটি সহজ প্লেবুক রয়েছে যা:

  • একটি sudoers ফাইল অনুলিপি
  • একটি টেম্প্লেটেটেড রেজোলভকনফ অনুলিপি করে (গ্রুপ_ভারস এবং হোস্ট_ভান্স ডেটা দিয়ে খাওয়ানো)
  • কয়েক দফা সার্ভিস চলছে
  • স্থানীয় ব্যবহারকারীর উপস্থিতি পরীক্ষা করে দেখুন

প্লেবুকটি machines৯ টি মেশিনের বিরুদ্ধে চালানোর জন্য 4 মিনিটের ওয়ালক্লোক সময় নেয় (সমস্ত দ্রুত 1 জিগ বা 10 জিগ নেটওয়ার্কিং, সাব -1 এমএস ল্যান ল্যাটেন্সি সহ সংযুক্ত) এবং যখন আমি 2-কোর 4 জি মেমরি ভিএম তে 50% এর বেশি সিপিইউ গ্রহণ করি এটি চলমান

একক মেশিনের বিরুদ্ধে চালাতে প্রায় 11 সেকেন্ড সময় লাগে, প্রায় 4 সিসি ব্যবহারকারীর + সিএসপিইউর প্রায় 4 সিসি সময় ব্যয় হয়, যা কাজের পরিমাণের জন্য TBH এখনও কিছুটা অতিরিক্ত মনে হয়।

সুস্পষ্ট বিট:

  • আমি পাইপলাইনিং স্পষ্টভাবে একটি প্লেবুক-ডিয়ার স্থানীয় উত্তরযোগ্য cfg এ সক্ষম করেছি
  • আমার কাছে জেসনফাইলে সক্ষম, একই স্থানীয় উত্তরযোগ্য সিএফজি-তে ক্যাসিং রয়েছে
  • আমার কাঁটাচামচ 50 সেট, একই (আমি অন্যান্য মান চেষ্টা করেছি)
  • আমি নিশ্চিত যে উত্তরী এসএসএইচ ব্যবহার করছে প্যারামিকো নয় এবং এটি নিয়মিত নিয়ন্ত্রণের সকেট ব্যবহার করছে - আমি দেখতে পাচ্ছি যে এসএসএইচ প্রক্রিয়াগুলি শুরু হয়েছে এবং রান চলাকালীন স্থির রয়েছে।

পারফরম্যান্সের এই স্তরেরটি কি আমার সেটআপে কিছু ভুল? কীভাবে তা স্থির করতে আমি কীভাবে যেতে পারি?

সম্পাদনা করুন: আগস্ট 2017 পর্যন্ত, আমরা এখনও এই সমস্যাটি দেখছি। উত্তরীয় সংস্করণটি ২.২.১ এবং প্লেবুকের আকার এখন বেড়েছে। আপ টু ডেট নম্বর:

  • 98 হোস্ট
  • ansible -m ping all ৪.s এস বাস্তব, ৩.২ সেকেন্ড ব্যবহারকারী, 2.5 সেকেন্ড সময় লাগে
  • একটি পূর্ণ প্লেবুক চালাতে 4 মিনিট সময় লাগে, 100% ব্যবহারকারী এবং 35% সিস্টেম সিপিইউ ব্যবহার করার সময় এটি (2-কোর ভিএম ডিপ্লোয়মেন্ট সেভারে, 100% সম্পূর্ণ সিপিইউ হয়ে থাকে)
  • লক্ষ্যযুক্ত ওএস হ'ল মূলত সেন্টোস 7, কিছু সেন্টোস 6
  • প্রোফাইলিং কোনও স্পেসিফিক টাস্ক হটস্পটস এএএএফসিটি প্রকাশ করে না

যদিও প্লেবুক এখন অনেক বড়, তবুও আমি মনে করি না যে প্লেবুক সার্ভারে সিপিইউ লোডের সেই স্তরটিকে ন্যায়সঙ্গত করার জন্য সেখানে কিছু রয়েছে - দেয়ালক্লক সময়, সম্ভবত, তবে ডিপ্লোমেন্ট সার্ভারটি বেশিরভাগ রানের জন্য অলস থাকতে হবে, আমি যতদূর দেখতে পাচ্ছি, এটি বেশিরভাগ ফাইলের অনুলিপি এবং কিছু টেম্পলেট বিস্তৃত।

নোট করুন আমরা হোস্ট / গ্রুপভারের বেশ বিস্তৃত ব্যবহার করছি

বেশ কিছু লোকেরা প্রোফাইলিং, রৌপকে লিখিত লেখার বিষয়ে জিজ্ঞাসা করেছেন:

Tuesday 01 August 2017  16:02:24 +0100 (0:00:00.539)       0:06:22.991 ******** 
=============================================================================== 
yumrepo : centos repos -------------------------------------------------- 9.77s
sshd : copy CentOS 6 sshd config ---------------------------------------- 7.41s
sshd : copy CentOS 7 sshd config ---------------------------------------- 6.94s
core : ensure core packages are present --------------------------------- 6.28s
core : remove packages on VM guests ------------------------------------- 5.39s
resolv : stop NetworkManager changing resolv.conf ----------------------- 5.25s
yumrepo : epel6 gpg key ------------------------------------------------- 3.94s
yumrepo : epel7 gpg key ------------------------------------------------- 3.71s
yumrepo : nsg gpg key --------------------------------------------------- 3.57s
resolv : build resolv.conf ---------------------------------------------- 3.30s
yumrepo : nsg repo ------------------------------------------------------ 2.66s
resolv : check NetworkManager running ----------------------------------- 2.63s
yumrepo : psp repo ------------------------------------------------------ 2.62s
yumrepo : ucs repo ------------------------------------------------------ 2.44s
yumrepo : epel repo ----------------------------------------------------- 2.27s
resolv : check for nmcli ------------------------------------------------ 2.08s
core : remove various unwanted files ------------------------------------ 1.42s
telegraf : write telegraf.conf file ------------------------------------- 1.13s
core : copy sudoers in place -------------------------------------------- 0.94s
core : ensure sshd is running ------------------------------------------- 0.90s

4
ANSIBLE_CALLBACK_WHITELIST=profile_tasksআরও পুঙ্খানুপুঙ্খ ডিবাগিংয়ের সাথে এবং এর জন্য কিছু প্রোফাইল তৈরি করুন ANSIBLE_DEBUG=1। প্রাথমিক এসএস-সংযোগের গতিতেও মনোযোগ দিন।
কনস্ট্যান্টিন সুভেরভ 20

@ কনস্টান্টিনসোভরভের মন্তব্যের সাথে একমত - একটি নির্দিষ্ট কাজের ক্ষেত্রে যথেষ্ট সময় নিচ্ছে এমন একটি জায়গায় হোস্টও থাকতে পারে। একবার আপনি প্রোফাইল_ টাস্কের সাহায্যে টাস্কটি বিচ্ছিন্ন করে ফেললে আপনি আপনার হোস্টগুলিতে কেবল সেই কাজগুলি চালানো এবং কোনটি সবচেয়ে দীর্ঘ কাজটি দেখে তা পরীক্ষা করতে পারেন। আপনি সমস্ত হোস্টের বিরুদ্ধে "কমান্ড: ডাব্লু" এর মতো একটি তুচ্ছ কাজও দেখতে পারেন এটি দেখতে প্রত্যাশিত সময় লাগে।
অ্যান্ডহকি

1
এনট্রপি অনাহার পরীক্ষা করুন। watch cat /proc/sys/kernel/random/entropy_availপ্লেবুক চলছে যখন। এটি যদি 1000 বলার চেয়ে কম হয় তবে আপনার একটি সম্ভাব্য সমস্যা রয়েছে; যদি এটির 64 বলার চেয়ে কম হয় এবং পুনরুদ্ধার না হয় তবে আপনার কাছে একটি নির্দিষ্ট এনট্রপি অনাহার সমস্যা রয়েছে। (কিছু ভিএম পরিবেশে সাধারণ)। এটি আপনার পরিচালনা সার্ভার এবং আপনি পরিচালনা করছেন নোডগুলিতেও প্রযোজ্য।
ক্যামেরন কের

4 জিবি র‌্যাম সহ আমার পরিচালনা ভিএম-এ আমার কাঁটাচামড়া = 20 এবং পাইপলাইনিং = সত্য True ansible -i all all -m ping300 টিরও বেশি হোস্টের (বেশিরভাগ ভিএম) বিপরীতে 1 মিনিটেরও কম সময় লেগেছিল। আপনার প্লেবুক ব্যবহারকারী (পরিবর্তন / sudo / ইত্যাদি) পরিবর্তন করতে কিছু করছে। '-ম পিং' এর মতো কী সম্পাদন করে? আমি অভিজ্ঞতার ভিত্তিতে বলব যে আপনি 50 টি কাঁটাচামচ বেশি স্মৃতি রাখতে চান।
ক্যামেরন কের

আপনার লক্ষ্য অপারেটিং সিস্টেম কি?
xddsg

উত্তর:


1

আপনার ansible.cfgসেটটিতে নিম্নলিখিত:

[defaults]

# profile each task
callback_whitelist = profile_tasks

# [don't validate host keys](http://docs.ansible.com/ansible/intro_configuration.html#host-key-checking)
host_key_checking = False

[ssh_connection]
pipelining = True

এছাড়াও, আপনার প্লেবুকে, কৌশলটিকে 'ফ্রি' হিসাবে সেট করুন

- hosts: all
  strategy: free
  tasks: [...]

অবশেষে, আপনার নাটকটিতে সত্য জমায়েত অক্ষম করুন: gather_facts: false

যদি, প্রোফাইল দেওয়ার পরে, আপনি এটি অনেক কিছু দেখতে পাচ্ছেন:

TASK [pip foo]
ok: [10.192.197.252] => (item=ansible)
ok: [10.192.197.252] => (item=boto)
ok: [10.192.197.252] => (item=boto3)
ok: [10.192.197.252] => (item=passlib)
ok: [10.192.197.252] => (item=cryptography)

ansible.cfg[ডিফল্ট] অধীনে এই ক্রিয়াগুলি স্কোয়াশ করুন :

যেমন squash_actions = yum,pip,bar


জবাবের জন্য ধন্যবাদ. আমরা ইতিমধ্যে কৌশল ব্যবহার করছি: ফ্রি এবং ফ্যাক্ট জমায়েত করা সম্পর্কে আমার ভয় হয় যে প্লেবুকগুলির প্রয়োজনীয় কিছু এটি যাতে কার্যকর হয় না। আমার উত্তরে উল্লিখিত হিসাবে আমি ইতিমধ্যে পাইপলাইনিং করছি।
ব্যবহারকারী53814

@ ব্যবহারকারী 53814 প্রোফাইলিং চালু আছে, সবচেয়ে বেশি সময় নিচ্ছে কি? আপনি যে প্রশ্নটি উত্তর ব্যবহার করছেন তার সংস্করণ দিয়ে আপনি কী নিজের প্রশ্ন আপডেট করতে পারবেন?
xddsg
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.