CPU Load кога да започнете да се тревожите
Тази бележка е превод на статия от блога Scout. Статията дава просто и визуално обяснение на такова нещо като средно натоварване. Статията е насочена към начинаещи Linux администратори, но може да бъде полезна и за по-опитни администратори. Заинтересованите добре дошли под кат.
Вероятно вече сте запознати с понятието средно натоварване. Средното натоварване е трите числа, показани, когато се изпълнят командите за най-високо ниво и време на работа. Те изглеждат по следния начин:
Повечето интуитивно разбират, че тези три числа представляват средно използване на процесора за прогресивно по-дълги периоди от време (една, пет и петнадесет минути) и колкото по-ниска е стойността, толкова по-добре. Големите числа показват твърде голямо натоварване на сървъра. Но какви са граничните стойности? Кои стойности са "лоши" и кои са "добри"? Кога трябва да се тревожите само за средните стойности на натоварването и кога трябва да изоставите други неща и да разрешите проблема възможно най-бързо? Първо, нека разберем какво означава средно натоварване. Помислете за най-простия случай: да предположим, че имаме един сървър с едноядрен процесор.
аналогия на трафика
Едноядрен процесор е като еднолентов път. Представете си, че карате коли по мост. Понякога вашият мост е толкова натоварен, че колите трябва да чакат на опашка, за да го пресекат. Искате да уведомите хората колко дълго трябва да чакат, за да стигнат до другия бряг на реката. Добър начин да направите това е да покажетеколко коли чакат на опашка в даден момент. Ако няма коли на опашката, приближаващите шофьори ще разберат, че те са веднагаможе да мине по моста. В противен случай те ще разберат, че ще трябва да чакат своя ред. И така, Bridge Manager, каква нотация ще използвате? Какво ще кажете за това:
- 0.00 означава, че на моста няма коли. Всъщност стойности от 0,00 до 1,00 означават липса на опашка. Приближаваща кола може да използва моста без да чака;
- 1,00 означава, че на моста има точно толкова коли, колкото може да побере. Все още всичко върви добре, но ако има увеличение на трафика, може да има проблеми;
- Стойности по-големи от 1,00 означават, че има опашка на входа. Колко голям? Например, стойност от 2,00 показва, че има толкова коли в опашката, колкото има на моста. 3.00 означава, че мостът е напълно зает и на опашката има два пъти повече чакащи коли, отколкото може да побере. И така нататък.
средно натоварване = 1,00 средно натоварване = 0,50 средно натоварване = 1,70 Ето базовото натоварване на процесора. „Машините“ се обработват с помощта на времеви интервали на процесора („преминете моста“) или се поставят на опашка. В Unix това се наричаДължина на опашката за изпълнение: броят на всички процеси, изпълнявани в момента плюс броя на процесите, чакащи в опашката. Като мостов мениджър искате процесните машини никога да не чакат на опашка. Поради това е за предпочитане използването на процесора винаги да е под 1,00. Периодично са възможни изблици на трафика, когато натоварването надвишава 1.00, но ако постоянно надвишава тази стойност, това е причина да започнете да се притеснявате.
Значи казвате, че 1,00 е идеалното средно натоварване?
Не точно. Проблемът със стойност 1,00 е, че не ви остава никакъв марж. НаНа практика много системни администратори теглят чертата на 0,70:
- Основно правило „Изисква се надзор“: 0,70. Ако средното натоварване постоянно надвишава 0,70, трябва да разберете причината за това поведение на системата, за да избегнете проблеми в бъдеще;
- Основно правило „Поправи го сега!“: 1.00. Ако средното натоварване на системата надвишава 1,00, спешно е да се намери причината и да се отстрани. В противен случай рискувате да бъдете събудени посред нощ и определено няма да е забавно;
- Основно правило „В момента е 3 сутринта. ШОЗАНА. »: 5.00. Ако средното ви използване на процесора е над 5,00, имате сериозни проблеми. Сървърът може да замръзне или да работи много бавно. Най-вероятно това ще се случи в най-лошия възможен момент. Например посред нощ или когато изнасяте презентация на конференция.
Какво ще кажете за многопроцесорните системи? Моят сървър показва зареждане 3.00 и всичко е наред!
Имате ли 4 процесорна система? Добре е, ако средното натоварване е 3,00. В многопроцесорните системи натоварването се изчислява спрямо броя на наличните процесорни ядра. 100% използване се обозначава с 1,00 за едноядрена машина, 2,00 за двуядрена машина, 4,00 за четириядрена машина и т.н. За да се върнем към нашата аналогия с моста, 1.00 означава "една лента с пълен товар". Ако на моста има само една лента, 1.00 означава, че мостът е натоварен 100%, ако има две ленти, той е само 50% натоварен. Същото и с процесорите. 1.00 означава 100% използване на едноядрен процесор. 2.00 - 100% двуядрен товар и т.н.
Многоядрени срещу. многопроцесорност
Кое е по-добре: един процесор с две ядра или два отделни процесора? По отношение на производителността и двететези решения са приблизително равни. Да, около. Тук има много нюанси, свързани с размера на кеша, превключването на процеси между процесори и т.н. Въпреки това, единствената характеристика, която е важна за промяна на натоварването на системата, е общият брой ядра, независимо от това на колко физически процесора са. Което ни води до още две основни правила:
- „Брой ядра = максимално натоварване.“ При многоядрена система натоварването не трябва да надвишава броя на наличните ядра;
- "Ядра - те също са ядра в Африка." Няма значение как са разпределени ядрата между процесорите. Два четириядрени = четири двуядрени = осем едноядрени процесора. Има значение само общият брой ядра.
Нека съберем всичко заедно
Нека да разгледаме средните стойности на натоварването с помощта на командата uptime:
Ето цифрите за система с четириядрен процесор и можем да видим, че има голямо пространство за натоварване. Дори няма да мисля за това, докато средното натоварване не надхвърли 3,70.
Каква средна стойност трябва да наблюдавам? За една, пет или 15 минути?
За стойностите, за които говорихме по-рано (1,00 - поправете го незабавно и т.н.), трябва да се вземат предвид интервали от време от пет и 15 минути. Ако натоварването на вашата система надвиши 1.00 за интервал от една минута, всичко е наред. Ако натоварването надвиши 1.00 в интервал от пет или 15 минути, трябва да започнете да предприемате действия (разбира се, трябва да вземете предвид и броя на ядрата във вашата система).
Броят на ядрата е важен за правилното разбиране на средното натоварване. Как мога да го позная?
Командата cat /proc/cpuinfo показва информация за всички процесори във вашата система. За да разберете броя на ядрата, "захранете" гоgrep изход: