আরআরডিগ্রাফ প্রজন্ম উচ্চ আইও লোডে ব্যর্থ হয়


8

আমাদের কাছে একটি ৪ টি মূল সিপিইউ উত্পাদন ব্যবস্থা রয়েছে যা প্রচুর ক্রোনজগুলি করে, ধ্রুবক ক্রোক সারিতে এবং an 1.5 এর স্বাভাবিক বোঝা having

রাতের সময় আমরা পোস্টগ্রিস সহ কিছু আইও নিবিড় স্টাফ করি। আমরা লোড / মেমরির ব্যবহার (rrd-updates.sh) দেখাচ্ছে এমন একটি গ্রাফ তৈরি করি যা কখনও কখনও উচ্চ আইও লোডের পরিস্থিতিতে "ব্যর্থ" হয়। এটি প্রায় প্রতি রাতে ঘটছে, তবে প্রতিটি উচ্চ আইও পরিস্থিতিতে নয়।

আমার "সাধারণ" সমাধানটি পোস্টগ্র্যাস স্টাফটি সুন্দর এবং আয়নিকে করা এবং গ্রাফ জেনারেশনের প্রিও বাড়িয়ে তোলা উচিত। তবে এটি এখনও ব্যর্থ। গ্রাফ জেনারেশন পশুর সহ আধা-থ্রেড-প্রমাণ। আমি ফাঁসির সময়টি লগ করি এবং গ্রাফ উত্পন্নকরণের জন্য উচ্চ আইও লোডের সময় এটি 5 মিনিট অবধি আপাতদৃষ্টিতে 4 মিনিট অবধি গ্রাফিকের জন্য অনুপস্থিত থাকে।
টাইমফ্রেমটি পোস্টগ্রিস ক্রিয়াকলাপের সাথে হুবহু মিলে যায় (এটি প্রায়শই দিনের বেলা হয়ে থাকে, যদিও প্রায়ই তা হয় না) রিয়েলটাইম প্রিও (সি 1 এন 6 গ্রাফ ক্রোন বনাম সি 2 এন 3 পোস্টগ্রিজ) পর্যন্ত পোস্ট করা হয়, পোস্টগ্রাসের উপরে -2 গ্রাফ_ক্রোন বনাম 10 পোস্টগ্রাস ) সমস্যাটি সমাধান করেনি।

ধরে নিই যে ডেটা সংগ্রহ করা হয়নি, অতিরিক্ত সমস্যাটি হচ্ছে আয়নিস / দুর্দান্ত কোনওরকম এখনও কাজ করছে না।
এমনকি 90% আইওয়েট এবং 100 এর বেশি লোড সহ আমি এখনও 5 সেকেন্ড বিলম্ব ছাড়াই ডেটা জেনারেশন কমান্ডটি বিনামূল্যে ব্যবহার করতে সক্ষম হয়েছি (কমপক্ষে পরীক্ষার সময়)।

দুঃখের বিষয় আমি পরীক্ষার মাধ্যমে ঠিক এটি পুনরুত্পাদন করতে সক্ষম হইনি (কেবলমাত্র একটি ভার্চুয়ালাইজড ডি সিস্টেম রয়েছে)

সংস্করণ:

কার্নেল 2.6.32-5-686-bigmem
দেবিয়ান স্কিজে আরআরডটোল 1.4.3 হার্ডওয়্যার: হার্ডওয়্যার RAID1
মাউন্ট বিকল্পগুলিতে LVM সহ এসএএস 15 কে আরপিএম এইচডিডি: আরডাব্লু সহ ext3 , ত্রুটিগুলি = পুনরুক্ত-র
শিডিয়ুলার: সিএফকিউ
ক্রোনটব:

* * * * *               root    flock -n /var/lock/rrd-updates.sh nice -n-1 ionice -c1 -n7 /opt/bin/rrd-updates.sh

Rrdcache- এর জন্য গিথুবটিতে মিস্টার ওটিকারের কাছ থেকে সম্ভবত একটি সামান্য সম্ভাব্য বিইউজি রয়েছে বলে মনে হচ্ছে:
https://github.com/oetiker/rrdtool-1.x/issues/326

এটি আসলে আমার সমস্যা হতে পারে (সমবর্তী লেখক) তবে এটি ক্রোনজব ব্যর্থ না হওয়ার ব্যাখ্যা দেয় না। এই পদক্ষেপে আমার কাছে ২ টি সমবর্তী লেখাগুলি flock -nপ্রস্থান কোড 1 ফিরে আসবে (প্রতি পুরুষ পৃষ্ঠাতে, পরীক্ষায় নিশ্চিত হওয়া) যেহেতু আমি আউটপুট সহ কোনও ইমেল পাই না এবং পর্যবেক্ষণ করি যে ক্রোনজব আমি অন্য সময় আছি ঠিকঠাক চালাই do একরকম হেরে গেল

উদাহরণ আউটপুট: হারিয়ে যাওয়া লাইনের সাথে সিপিইউ লোড গ্রাফ

মন্তব্যের ভিত্তিতে আমি আপডেট স্ক্রিপ্টের গুরুত্বপূর্ণ উত্স যুক্ত করেছি।

rrdtool update /var/rrd/cpu.rrd $(vmstat 5 2 | tail -n 1 | awk '{print "N:"$14":"$13}')
rrdtool update /var/rrd/mem.rrd $(free | grep Mem: | awk '{print "N:"$2":"$3":"$4}')
rrdtool update /var/rrd/mem_bfcach.rrd $(free | grep buffers/cache: | awk '{print "N:"$3+$4":"$3":"$4}')

আমি কী মিস করি বা আমি আরও কোথায় পরীক্ষা করতে পারি?

মনে রাখবেন: উত্পাদনশীল সিস্টেম তাই কোনও দেব, কোনও স্ট্যাকট্র্যাস বা সিম্পায়ার্ড উপলভ্য বা ইনস্টলযোগ্য।


1
এমআরটিজি আরআরডিগ্রাফ দ্বারা প্রতিস্থাপন করা হয়েছিল যখন ফিরে। পুরানো থেকে নতুনতে দুর্দান্ত এক পরিবর্তন হ'ল আরআরডিগ্রাফিক আসলেই যখন চিত্র দেখার অনুরোধ থাকে তখন চিত্রগুলি উত্পন্ন করে। পুরানো এমআরটিজি প্রতি পাঁচ মিনিটে প্রতিটি ডাটা পয়েন্টের জন্য পুরো নতুন গ্রাফ তৈরি করে। আপনার সমস্যা ডেটা সংগ্রহের সাথে, গ্রাফ রেন্ডার নয়।
এরিক্স

@ এরিকেক্স আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ। আমি ডেটা উত্পন্ন করার উত্স যুক্ত করেছি। আপনি কি এখনও মনে করেন যে সমস্যাটি আইওনিসের পরিবর্তে vmstat কমান্ড / সুন্দর কোনওভাবে সঠিকভাবে কাজ করছে না? যদি তাই হয় তবে আপনি কেন এমনভাবে ভাবেন?
ডেনিস নোল্টে

আপনার cronক্যাপচার STDERR কোথাও আছে? ফ্রিবিএসডি-তে আমি সাধারণত এগুলি চালিত করি periodic every5এবং আমার এমন একটি থাকে /var/log/periodic.every5যা সাধারণত কোনও ত্রুটি ক্যাপচার করে। আমি তিনটি স্ক্রিপ্টও আটকে দেব এবং বিশেষত কোনওটি ঝুলছে কিনা তা দেখতে সম্ভবত ক্রমটি ঘোরানো হবে। আমার আরআরডিটুলের বেশিরভাগ অভিজ্ঞতা ছিল cricketযার নিজস্ব লগিং ছিল। cricketলগ কষ্ট খোঁজার জন্য ছিল চমৎকার। আপনি কি প্রতি মিনিটে সত্যই সংগ্রহ করছেন? (* * * * * * * / 5 * * * * এর পরিবর্তে) গ্রাফের গ্রানুলারিটি কী? আরআরডি 5 মিনিটের ব্যবধানে ডিফল্ট হয়।
এরিক্স

এটি হ'ল কমান্ড যা প্রাথমিকভাবে তাদের তৈরি করতে ব্যবহৃত হয়েছিল: cpu.rrd --step 300 ডিএস তৈরি করুন: সিএস: গেজ: 70: ইউ: ইউ ডিএস: ব্যবহারকারী: গাজি: 70: ইউ: ইউ আরআরএ: গড়: 0.01: 1: 6351 সুতরাং এর অর্থ আপনি সবেমাত্র একটি অন্য বাগ খুঁজে পেয়েছেন, আপনাকে ধন্যবাদ। আমি পরীক্ষার জন্য সেই স্ক্রিপ্টটির জন্য STDOUT এবং STDERR পুনর্লিখন করেছি, এমন কোনও লগইন হয়নি যা প্রথমবার চেষ্টা করার পরে আমাকে ফিরে আসতে সহায়তা করেছিল। আমি আগামীকাল আউটপুটটি যুক্ত করব
ডেনিস নল্টে

1
"ব্যর্থতা" অবলম্বনের শর্তে, rrdtool এর প্রদর্শন 5 মিনিটের পোলিং চক্রের উপর ভিত্তি করে। যদি আপনি পরবর্তী শুরু হওয়ার আগে একটি চক্র প্রক্রিয়াকরণ শেষ না করেন এবং যদি আপনার ডেটা সংগ্রহ এবং গ্রাফ উত্পাদন একই প্রসেসিং অপারেশনের অংশ হয়, তবে আপনি একটি গায়েবিষ্ট তথ্য পয়েন্ট পাবেন।
এমসি 0 ই

উত্তর:


2

আমি অনুমান করি যে এটি rrdtool নয় যা গ্রাফটি আপডেট করতে পারে না, বরং এই মুহুর্তে ডেটা মাপা যায় না। যাইহোক, আপনার সিপিইউ এবং মেমরির পরিসংখ্যান পরিমাপ করার পদ্ধতিটি কেবল ভুল, কারণ এটি আপনাকে তাত্ক্ষণিক ফলাফল দেয়। সিপিইউ এবং মেমোরি লোড 60 সেকেন্ডের ব্যবধানের সাথে সাথে মারাত্মকভাবে পরিবর্তন করতে পারে তবে আপনি কেবল একটি মান নিবেন। আপনার সত্যিকারের এসএনএমপি ডেটা নেওয়ার বিষয়টি বিবেচনা করা উচিত, যা একটি বিরতিতে গড় ডেটা দেয়। এছাড়াও, পুরো পাইপটি আরও ব্যয়বহুল এবং ধীর বলে মনে হচ্ছে যা একটি স্ন্যাপগেট কল। শূন্যস্থানগুলির মূল কারণ হতে পারে।


ঠিক অনুসরণ হিসাবে, এটি ছিল। একবার আমরা কিছু সংস্থান ক্ষুধার্ত প্রক্রিয়াগুলি অন্য সার্ভারে স্থানান্তরিত করতে সক্ষম হয়ে গেলে গ্রাফগুলি সূক্ষ্ম উত্পন্ন হয়।
ডেনিস নোল্টে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.