Въпреки че Linux е много надежден, мъдрите системни администратори трябва да намерят начин да следят поведението и използването на системата по всяко време. Осигуряване на продължителност на работа възможно най -близо до 100% колкото е възможно и наличието на ресурси са критични нужди в много среди. Изследването на миналото и настоящото състояние на системата ще ни позволи да предвидим и най -вероятно да предотвратим възможни проблеми.
Представяме програмата за сертифициране на Linux Foundation
В тази статия ще представим списък с няколко инструмента, които са налични в повечето дистрибуции нагоре по веригата за проверка на състоянието на системата, анализ на прекъсвания и отстраняване на текущи проблеми. По -конкретно, от безбройните налични данни, ние ще се съсредоточим върху процесора, мястото за съхранение и използването на паметта, основното управление на процесите и анализа на дневника.
Има 2 добре известни команди в Linux, които се използват за проверка на използването на място за съхранение:
df и du.Първият, df (което означава свободен диск), обикновено се използва за отчитане на общото използване на дисковото пространство по файлова система.
Без опции, df отчита използването на дисково пространство в байтове. С -ч флаг, той ще показва същата информация, използвайки вместо това MB или GB. Обърнете внимание, че този отчет включва и общия размер на всяка файлова система (в 1-K блокове), свободните и наличните пространства и точката на монтиране на всяко устройство за съхранение.
# df. # df -h.
Това със сигурност е хубаво - но има още едно ограничение, което може да направи файловата система неизползваема, и това изчерпва inodes. Всички файлове във файлова система са картографирани в индекс, който съдържа неговите метаданни.
# df -hTi.
можете да видите количеството използвани и налични inodes:
Според горното изображение има 146 използвани inodes (1%) in /home, което означава, че все още можете да създавате 226K файлове в тази файлова система.
Имайте предвид, че можете да изчерпите място за съхранение много преди да изчерпите inodes и обратно. Поради тази причина трябва да наблюдавате не само използването на пространството за съхранение, но и броя на inodes, използвани от файловата система.
Използвайте следните команди, за да намерите празни файлове или директории (които заемат 0B), които използват inodes без причина:
# find /home -type f -empty. # find /home -type d -празна.
Също така можете да добавите -Изтрий флаг в края на всяка команда, ако искате също да изтриете тези празни файлове и директории:
# find /home -type f -empty --delete. # find /home -type f -empty.
Предишната процедура изтри 4 файла. Нека отново проверим броя на използваните / наличните възли отново в / home:
# df -hTi | grep у дома.
Както виждате, има 142 използвани иноди сега (4 по -малко от преди).
Ако използването на определена файлова система е над предварително определен процент, можете да използвате du (съкращение от използване на диск), за да разберете кои са файловете, които заемат най -много място.
Примерът е даден за /var, който, както можете да видите на първото изображение по -горе, се използва при своите 67%.
# du -sch /var /*
Забележка: Че можете да превключите към някоя от горните поддиректории, за да разберете какво точно има в тях и колко всеки елемент заема. След това можете да използвате тази информация, за да изтриете някои файлове, ако не са необходими, или да разширите размера на логическия том, ако е необходимо.
Прочетете също
Класическият инструмент в Linux, който се използва за цялостна проверка на използването на процесора / паметта и управлението на процесите, е топ команда. В допълнение, отгоре показва изглед в реално време на работеща система. Има и други инструменти, които биха могли да се използват за същата цел, като напр htop, но аз се задоволих с топ, защото е инсталиран нестандартно във всяка дистрибуция на Linux.
За да започнете отгоре, просто въведете следната команда в командния ред и натиснете Enter.
# Горна част.
Нека разгледаме типичен най -висок изход:
В редове 1 до 5 се показва следната информация:
1. Текущият час (20:41:32 ч.) И продължителността (7 часа и 41 минути). Само един потребител е влязъл в системата и средното натоварване през последните 1, 5 и 15 минути съответно. 0.00, 0.01 и 0.05 показват, че през тези интервали от време системата е била в бездействие за 0% от времето (0.00: няма процеси в очакване на процесора), след това той беше претоварен с 1% (0,01: средно 0,01 процеса чакаха процесора) и 5% (0.05). Ако е по -малко от 0 и е по -малкото число (0,65 например), системата е била бездействаща 35% през последните 1, 5 или 15 минути, в зависимост от това къде се появява 0,65.
2. Понастоящем са изпълнени 121 процеса (можете да видите пълния списък в 6). Само 1 от тях работи (в този случай отгоре, както можете да видите в колоната %CPU), а останалите 120 чакат във фонов режим, но „спят“ и ще останат в това състояние, докато не ги извикаме. Как? Можете да проверите това, като отворите mysql подкана и изпълните няколко заявки. Ще забележите как се увеличава броят на работещите процеси.
Като алтернатива можете да отворите уеб браузър и да отидете до всяка страница, която се обслужва от Apache, и ще получите същия резултат. Разбира се, тези примери предполагат, че и двете услуги са инсталирани на вашия сървър.
3. us (времеви потребителски процеси с немодифициран приоритет), sy (времеви процеси на ядрото), ni (времеви потребителски процеси с променен приоритет), wa (време в очакване на I/O завършване), здравей (време, прекарано в обслужване на хардуерни прекъсвания), si (време, прекарано в обслужване на софтуерни прекъсвания), st (време, откраднато от текущия vm от хипервизора - само при виртуализиран среди).
4. Използване на физическа памет.
5. Размяна на използването на пространство.
За да проверите RAM паметта и използването на суап, можете също да използвате Безплатно команда.
# Безплатно.
Разбира се, можете да използвате и -м (MB) или -g (GB) превключва за показване на същата информация в разбираема от човека форма:
# безплатно -м.
Така или иначе, трябва да сте наясно с факта, че ядрото запазва възможно най -много памет и я прави достъпна за процесите, когато те я поискат. По -специално, „-/+ буфери/кеш”Ред показва действителните стойности след като се вземе предвид този I/O кеш.
С други думи, количеството памет, използвано от процесите, и количеството, достъпно за други процеси (в този случай, 232 MB използвани и 270 MB налични съответно). Когато процесите се нуждаят от тази памет, ядрото автоматично ще намали размера на I/O кеша.
Прочетете също: 10 Полезна „безплатна“ команда за проверка на използването на паметта на Linux
Във всеки един момент в нашата Linux система се изпълняват много процеси. Има два инструмента, които ще използваме, за да следим отблизо процесите: пс и pstree.
Използвайки -е и -f опции, комбинирани в едно (-еф) можете да изброите всички процеси, които в момента се изпълняват във вашата система. Можете да насочите този изход към други инструменти, като например греп (както е обяснено в Част 1 от поредицата LFCS), за да стесните изхода до желания от вас процес (и):
# ps -ef | grep -i калмари | grep -v grep.
Списъкът на процеса по -горе показва следната информация:
собственик на процеса, PID, родителски PID (родителски процес), използване на процесора, време на стартиране на командата, tty (? показва, че това е демон), натрупаното време на процесора и командата, свързана с процеса.
Може би обаче не се нуждаете от цялата тази информация и бихте искали да покажете на собственика на процеса, командата, която го стартира, неговите PID и PPID, и процентът на паметта, която в момента използва - в този ред и сортирайте по използване на паметта в низходящ ред (имайте предвид, че ps по подразбиране е сортирано по PID).
# ps -eo потребител, comm, pid, ppid,%mem -сортиране -%mem.
Където знакът минус пред %mem показва сортиране в низходящ ред.
Ако по някаква причина процесът започне да отнема твърде много системни ресурси и е вероятно да застраши цялостното функционалността на системата, ще искате да спрете или поставите на пауза нейното изпълнение, като предадете един от следните сигнали, като използвате на убивам програма към него. Други причини, поради които бихте помислили да направите това, са, когато сте стартирали процес на преден план, но искате да го поставите на пауза и да възобновите на заден план.
Име на сигнала | Номер на сигнала | Описание |
SIGTERM | 15 | Убийте процеса грациозно. |
ПОДПИСАНЕ | 2 | Това е сигналът, който се изпраща, когато натискаме Ctrl + C. Той има за цел да прекъсне процеса, но процесът може да го игнорира. |
SIGKILL | 9 | Този сигнал също прекъсва процеса, но го прави безусловно (използвайте внимателно!), Тъй като процесът не може да го игнорира. |
СИГУП | 1 | Съкратено от „Hang UP“, този сигнал инструктира демоните да препрочетат конфигурационния си файл, без действително да спрат процеса. |
SIGTSTP | 20 | Поставете на пауза изпълнението и изчакайте, за да продължите. Това е сигналът, който се изпраща, когато въведем комбинацията от клавиши Ctrl + Z. |
SIGSTOP | 19 | Процесът е поставен на пауза и не получава повече внимание от циклите на процесора, докато не се рестартира. |
SIGCONT | 18 | Този сигнал указва на процеса да възобнови изпълнението след получаване на SIGTSTP или SIGSTOP. Това е сигналът, който се изпраща от черупката, когато използваме командите fg или bg. |
Когато нормалното изпълнение на определен процес предполага, че никакъв изход няма да бъде изпратен на екрана, докато е при стартиране, може да искате да го стартирате във фонов режим (добавяне на амперсанд в края на команда).
process_name &
или,
След като започне да работи на преден план, поставете го на пауза и го изпратете на заден план с
Ctrl + Z.
# kill -18 PID.
Моля, обърнете внимание, че всяка дистрибуция предоставя инструменти за грациозно спиране / стартиране / рестартиране / презареждане на общи услуги, като например обслужване в системи, базирани на SysV или systemctl в системи, базирани на systemd.
Ако процесът не реагира на тези помощни програми, можете да го убиете със сила, като му изпратите сигнала SIGKILL.
# ps -ef | grep apache. # убий -9 3821.
Когато е имало някакъв вид прекъсване в системата (било то прекъсване на захранването, хардуерен отказ, планирано или непланирано прекъсване на процес или изобщо някаква аномалия), регистрите в /var/log са вашите най -добри приятели, за да определите какво се е случило или какво би могло да причини проблемите, пред които сте изправени.
# cd /var /log.
Някои от елементите в /var/log са обикновени текстови файлове, други са директории, а трети са компресирани файлове с ротирани (исторически) дневници. Ще искате да проверите тези с думата грешка в името си, но проверката на останалите също може да бъде полезна.
Представете си този сценарий. Вашите LAN клиенти не могат да печатат на мрежови принтери. Първата стъпка за отстраняване на тази ситуация е /var/log/cups директория и вижте какво има там.
Можете да използвате опашка команда за показване на последните 10 реда от файла error_log, или tail -f error_log за преглед на дневника в реално време.
# cd/var/log/чаши. # ls. # опашка error_log.
Горната снимка на екрана предоставя полезна информация, за да разберете какво може да причини проблема ви. Обърнете внимание, че следването на стъпките или коригирането на неизправността на процеса все още може да не реши цялостния проблем, но ако започнете да използвате от самото начало, за да проверявате регистрационните файлове всеки път, когато възникне проблем (било то локален или мрежов), определено ще бъдете вдясно писта.
Въпреки че хардуерните повреди могат да бъдат трудни за отстраняване на неизправности, трябва да проверите dmesg и съобщения в дневници и греп за свързани думи към хардуерна част, която се счита за дефектна.
Изображението по -долу е взето от /var/log/messages след като потърсите думата грешка, използвайки следната команда:
# по -малко/var/log/messages | грешка -i грешка.
Можем да видим, че имаме проблем с две устройства за съхранение: /dev/sdb и /dev/sdc, което от своя страна причинява проблем с RAID масива.
В тази статия ние изследвахме някои от инструментите, които могат да ви помогнат винаги да сте наясно с цялостното състояние на вашата система. Освен това трябва да се уверите, че вашата операционна система и инсталираните пакети са актуализирани до последните им стабилни версии. И никога, никога не забравяйте да проверите дневниците! Тогава ще се насочите в правилната посока, за да намерите окончателното решение на всички проблеми.
Не се колебайте да оставите вашите коментари, предложения или въпроси - ако имате такива - като използвате формата по -долу.