OnWorks Linux i Windows Online WorkStation

logo

Darmowy hosting online dla stacji roboczych

<Poprzedni | Spis treści | Następne>

Należy pamiętać, że różne systemy będą zachowywać się inaczej przy takim samym średnim obciążeniu. Na przykład system z kartą graficzną obsługującą akcelerację sprzętową nie będzie miał problemu z renderowaniem obrazów 3D, podczas gdy ten sam system z tanią kartą VGA będzie ogromnie zwalniał podczas renderowania. Mój stary P133 stanie się dość niewygodny, gdy uruchomię serwer X, ale w nowoczesnym systemie prawie nie zauważysz różnicy w obciążeniu systemu.


obraz

4.3.5. Czy jako użytkownik mogę zrobić wszystko?


Duże środowisko może cię spowolnić. Jeśli masz ustawionych wiele zmiennych środowiskowych (zamiast zmiennych powłoki), długie ścieżki wyszukiwania, które nie są zoptymalizowane (błędy w ustawianiu zmiennej środowiskowej path) i więcej ustawień, które zwykle są dokonywane „w locie”, system będzie potrzebował więcej czasu na wyszukiwanie i odczytywanie danych.


W X menedżery okien i środowiska pulpitu mogą pochłaniać dużo procesora. Naprawdę fantazyjny komputer stacjonarny ma swoją cenę, nawet jeśli można go pobrać za darmo, ponieważ większość komputerów stacjonarnych zapewnia dodatki w nieskończoność. Skromność


jest cnotą, jeśli nie kupujesz co roku nowego komputera.


obraz

4.3.5.1. priorytet


Priorytet lub ważność pracy jest określona przez to miło numer. Program o wysokim numerze nice jest przyjazny dla innych programów, innych użytkowników i systemu; nie jest to ważna praca. Im niższa liczba nice, tym ważniejsza jest praca i tym więcej zasobów pochłonie bez dzielenia się nimi.


Ulepszenie zadania poprzez zwiększenie jego liczby nice jest przydatne tylko w przypadku procesów, które zużywają dużo czasu procesora (kompilatory, aplikacje matematyczne i tym podobne). Procesy, które zawsze zużywają dużo czasu we/wy, są automatycznie nagradzane przez system i otrzymują wyższy priorytet (niższą liczbę Nice), na przykład wejście z klawiatury zawsze ma najwyższy priorytet w systemie.


Definiowanie priorytetu programu odbywa się za pomocą miło dowództwo.


Większość systemów zapewnia również BSD nerki polecenie, które pozwala na zmianę uprzejmość uruchomionego polecenia. Ponownie przeczytaj stronę podręcznika, aby uzyskać informacje specyficzne dla twojego systemu.


obrazProgramy interaktywne

NIE jest dobrym pomysłem miło or nerki interaktywny program lub zadanie działające na pierwszym planie.

Korzystanie z tych poleceń jest zwykle zadaniem administratora systemu. Przeczytaj stronę podręcznika, aby uzyskać więcej informacji na temat dodatkowych funkcji dostępnych dla administratora systemu.


obraz

4.3.5.2. Zasoby procesora


W każdym systemie Linux wiele programów chce używać procesora (procesorów) w tym samym czasie, nawet jeśli jesteś jedynym użytkownikiem systemu. Każdy program potrzebuje określonej liczby cykli na procesorze, aby mógł działać. Może się zdarzyć, że nie ma wystarczającej liczby cykli, ponieważ procesor jest zbyt zajęty. The uptime polecenie jest szalenie niedokładne (wyświetla tylko średnie, musisz wiedzieć, co jest normalne), ale nie jest bezużyteczne. Istnieje kilka działań, które możesz podjąć, jeśli uważasz, że procesor jest odpowiedzialny za brak odpowiedzi systemu:


• Uruchamiaj ciężkie programy przy niskim obciążeniu. Może tak być w przypadku twojego systemu w nocy. Zobacz następną sekcję dotyczącą planowania.

• Zapobiegaj wykonywaniu przez system niepotrzebnej pracy: zatrzymuj demony i programy, których nie używasz, używaj ich

zlokalizuj zamiast ciężkiego znaleziska, ...

• Wykonuj duże zadania z niskim priorytetem


Jeśli żadne z tych rozwiązań nie jest możliwe w Twojej konkretnej sytuacji, możesz chcieć zaktualizować swój procesor. Na komputerze z systemem UNIX jest to zadanie dla administratora systemu.


obraz

4.3.5.3. Zasoby pamięci


Gdy aktualnie uruchomione procesy oczekują więcej pamięci, niż fizycznie dostępny system, system Linux nie ulegnie awarii; rozpocznie stronicowanie lub swapping, co oznacza, że ​​proces wykorzystuje pamięć na dysku lub w przestrzeni wymiany, przenosząc zawartość pamięci fizycznej (fragmenty uruchomionych programów lub całe programy w przypadku wymiany) na dysk, odzyskując w ten sposób pamięć fizyczną do obsługi większej liczby procesów. To ogromnie spowalnia system, ponieważ dostęp do dysku jest znacznie wolniejszy niż dostęp do pamięci. The Top polecenia można użyć do wyświetlenia pamięci i użycia wymiany. Systemy korzystające z glibc oferują pamięć i stan pamięci polecenia do wizualizacji użycia pamięci.


Jeśli okaże się, że zużywa się dużo pamięci i miejsca wymiany, możesz spróbować:


• Zabijanie, zatrzymywanie lub odrzucanie tych programów, które zużywają duże ilości pamięci

• Dodanie większej ilości pamięci (aw niektórych przypadkach większej przestrzeni wymiany) do systemu.

• Dostrajanie wydajności systemu, co wykracza poza zakres tego dokumentu. Zobacz listę lektur w Dodatku A, aby uzyskać więcej informacji.


obraz

4.3.5.4. zasoby we/wy


Podczas gdy ograniczenia we/wy są główną przyczyną stresu dla administratorów systemu, system Linux oferuje raczej słabe narzędzia do mierzenia wydajności we/wy. The ps, vmstat i Top narzędzia dają pewne wskazówki dotyczące liczby programów oczekujących na operacje we/wy; netstat wyświetla statystyki interfejsu sieciowego, ale praktycznie nie ma dostępnych narzędzi do pomiaru odpowiedzi wejścia/wyjścia na obciążenie systemu iostat Komenda zawiera krótki przegląd ogólnego użycia wejścia/wyjścia. Istnieją różne nakładki graficzne, które przekazują dane wyjściowe tych poleceń w zrozumiałej dla człowieka formie.


Każde urządzenie ma swoje własne problemy, ale przepustowość dostępna dla interfejsów sieciowych i przepustowość dostępna dla dysków to dwie główne przyczyny wąskich gardeł w wydajności we/wy.


Problemy z wejściem/wyjściem sieciowym:


• Przeciążenie sieci:


Ilość danych przesyłanych przez sieć jest większa niż pojemność sieci, co powoduje powolne wykonywanie każdego zadania związanego z siecią dla wszystkich użytkowników. Można je rozwiązać poprzez oczyszczenie sieci (głównie wyłączenie protokołów i usług, których nie potrzebujesz) lub rekonfigurację sieci (np. wykorzystanie podsieci, zastąpienie koncentratorów przełącznikami, modernizacja interfejsów i sprzętu).

• Problemy z integralnością sieci:


Występuje, gdy dane są przesyłane nieprawidłowo. Rozwiązanie tego rodzaju problemu można wykonać tylko poprzez wyizolowanie wadliwego elementu i jego wymianę.


Problemy z wejściem/wyjściem dysku:


• zbyt niska szybkość transmisji na proces:


Szybkość odczytu lub zapisu dla pojedynczego procesu nie jest wystarczająca.

• łączna szybkość transferu zbyt niska:


Maksymalna łączna przepustowość, jaką system może zapewnić wszystkim uruchomionym programom, nie jest wystarczająca.


Ten rodzaj problemu jest trudniejszy do wykrycia i zwykle wymaga dodatkowego sprzętu w celu ponownego podziału strumieni danych na magistrale, kontrolery i dyski, jeśli przyczyną problemu jest przeciążenie sprzętu. Jednym z rozwiązań tego problemu jest konfiguracja macierzy RAID zoptymalizowana pod kątem operacji wejścia i wyjścia. W ten sposób możesz zachować ten sam sprzęt. Inną opcją jest zwykle aktualizacja do szybszych magistrali, kontrolerów i dysków.


Jeśli przeciążenie nie jest przyczyną, być może twój sprzęt stopniowo zawodzi lub nie jest dobrze podłączony do systemu. Na początek sprawdź styki, złącza i wtyczki.


obraz


4.3.5.5. Użytkownicy


Użytkowników można podzielić na kilka klas, w zależności od ich zachowania przy korzystaniu z zasobów:


• Użytkownicy, którzy wykonują (dużą) liczbę małych zadań: na przykład ty, początkujący użytkownik Linuksa.

• Użytkownicy, którzy wykonują stosunkowo niewiele, ale dużych zadań: użytkownicy uruchamiający symulacje, obliczenia, emulatory lub inne programy, które pochłaniają dużo pamięci i zazwyczaj ci użytkownicy mają towarzyszące duże pliki danych.

• Użytkownicy, którzy wykonują niewiele zadań, ale zużywają dużo czasu procesora (programiści i tym podobne).


Widać, że wymagania systemowe mogą się różnić dla każdej klasy użytkowników i że może być trudno zadowolić wszystkich. Jeśli korzystasz z systemu z wieloma użytkownikami, przydatne (i zabawne) jest poznanie nawyków innych użytkowników i systemu, aby jak najlepiej wykorzystać go do określonych celów.


obraz

4.3.5.6. Narzędzia graficzne


Dla środowiska graficznego dostępna jest cała masa narzędzi monitorujących. Poniżej znajduje się zrzut ekranu monitora systemu Gnome, który ma funkcje wyświetlania i wyszukiwania informacji o procesie oraz monitorowania zasobów systemowych:


Rysunek 4-3. Monitor systemu Gnome


obraz


Istnieje również kilka przydatnych ikon, które można zainstalować na pasku zadań, takich jak monitor dysku, pamięci i obciążenia. xładuj to kolejna mała aplikacja X do monitorowania obciążenia systemu. Znajdź swój ulubiony!


obraz

4.3.5.7. Przerywanie procesów


Jako nieuprzywilejowany użytkownik możesz wpływać tylko na własne procesy. Widzieliśmy już, jak można wyświetlić procesy i odfiltrować procesy należące do konkretnego użytkownika oraz jakie mogą wystąpić ograniczenia. Gdy zauważysz, że jeden z twoich procesów zużywa zbyt dużo zasobów systemowych, możesz zrobić dwie rzeczy:


1. Spraw, aby proces zużywał mniej zasobów bez przerywania go;

2. Całkowicie zatrzymaj proces.


W przypadku, gdy chcesz, aby proces nadal działał, ale chcesz także dać szansę innym procesom w systemie, możesz nerki proces. Oprócz korzystania z miło or nerki polecenia, Top jest łatwym sposobem wykrycia kłopotliwego procesu (procesów) i zmniejszenia priorytetu.


Zidentyfikuj proces w kolumnie „NI”, najprawdopodobniej będzie miał priorytet ujemny. Typ r i wprowadź identyfikator procesu, który chcesz zmienić. Następnie wprowadź wartość nice, na przykład „20”. Oznacza to, że od teraz proces ten zajmie maksymalnie 1/5 cykli procesora.


Przykładami procesów, które chcesz kontynuować, są emulatory, maszyny wirtualne, kompilatory i tak dalej.


obraz

Jeśli chcesz zatrzymać proces, ponieważ zawiesza się lub przechodzi całkowity szał w zakresie zużycia operacji we/wy, tworzenia plików lub korzystania z innych zasobów systemowych, użyj zabić Komenda. Jeśli masz taką możliwość, najpierw spróbuj delikatnie zabić proces, wysyłając go SIGTERM sygnał. Jest to instrukcja zakończenia tego, co robi, zgodnie z procedurami opisanymi w kodzie programu:


Joe: ~> ps-ef | grep mozilla

joe 25822 1 0 11 marca ?

00:34:04 /usr/lib/mozilla-1.4.1/mozilla-

Joe: ~> ps-ef | grep mozilla

joe 25822 1 0 11 marca ?


Joe: ~> zabić -15 25822

Joe: ~> zabić -15 25822

W powyższym przykładzie użytkownik joe zatrzymał swoją przeglądarkę Mozilla, ponieważ się zawiesiła.


obraz

Niektóre procesy są trochę trudniejsze do pozbycia się. Jeśli masz czas, możesz wysłać im sygnał SIGINT, aby im przerwać. Jeśli to też nie zadziała, użyj najsilniejszego sygnału, SIGKILL. W poniższym przykładzie joe zatrzymuje zawieszoną Mozillę:


Joe: ~> ps-ef | grep mozilla

joe 25915 1 0 11 marca ?

00:15:06 /usr/lib/mozilla-1.4.1/mozilla-

Joe: ~> ps-ef | grep mozilla

joe 25915 1 0 11 marca ?


Joe: ~> zabić -9 25915


Joe: ~> ps-ef | grep 25915

joe 2634 32273 0 18:09 pkt/4 00:00:00 grep 25915

Joe: ~> zabić -9 25915


Joe: ~> ps-ef | grep 25915

joe 2634 32273 0 18:09 pkt/4 00:00:00 grep 25915

W takich przypadkach możesz chcieć sprawdzić, czy proces jest naprawdę martwy, używając metody grep przefiltrować ponownie na PID. Jeśli to tylko zwraca grep możesz być pewien, że udało Ci się zatrzymać ten proces.


Wśród procesów, które trudno zabić, jest twoja powłoka. I to dobrze: gdyby można je było łatwo zabić, traciłbyś skorupę za każdym razem, gdy piszesz Ctrl-C przypadkowo w wierszu poleceń, ponieważ jest to równoznaczne z wysłaniem SIGINT.


obrazUNIX bez potoków jest prawie nie do pomyślenia

Używanie kresek (|) do używania danych wyjściowych jednego polecenia jako danych wejściowych innego jest wyjaśnione w następnym rozdziale, rozdziale 5.

Najlepsze przetwarzanie w chmurze dla systemu operacyjnego w OnWorks: