Thread View: pl.comp.os.hp-ux
2 messages
2 total messages
Started by Krzysztof Murkowski
Tue, 11 Mar 1997 07:01
Obliczanie ilosc swap'a
Author: Krzysztof Murkowski
Date: Tue, 11 Mar 1997 07:01
Date: Tue, 11 Mar 1997 07:01
22 lines
1606 bytes
1606 bytes
Czesc, troche szkoda, ze jednak nie powstala grupa zajmujaca sie UNIX'em w ogolnosci, gdyz moje pytanie jest wlasnie tej natury : spotkalem sie z roznymi funkcjami i podejsciami w planowaniu wielkosci swap'a jako funkcji zainstalowanej pamieci. Oczywiscie moglo to wynikac z roznic miedzy systemami, ale zdarzali sie rozni guru, ktorzy podawali rozne wielkosci dla takiego samego system. Rozumiem, ze glownym zadaniem swapa jest mozliwosc zapisania obrazu pamieci w wypadku upadku systemu, (w zwiazku z tym musi miec conajmniej wielkosc pamieci, chyba ze mamy 2GB RAMu) oraz udostepnianie przestrzeni dyskowej pod stronicowanie i wymiatanie. Jak wielkosc swapu wplywa na wydajnosc systemu i jakie rozumowanie powinno byc uzyte przy jej planowaniu ? Interesuja mnie przemyslenia ogolne i zwiazane z konkretnym systemem. Pozdrawiam : -- Krzysztof Murkowski mailto:murek@ml.put.poznan.pl http://www.ml.put.poznan.pl/~murek
Re: Obliczanie ilosc swap'a
Author: Wojciech Myszka
Date: Wed, 12 Mar 1997 19:57
Date: Wed, 12 Mar 1997 19:57
139 lines
6887 bytes
6887 bytes
Krzysztof Murkowski <murek@ml.put.poznan.pl> wrote in article
<3325034F.1813@ml.put.poznan.pl>...
| spotkalem sie z roznymi funkcjami i podejsciami w planowaniu
| wielkosci swap'a jako funkcji zainstalowanej pamieci.
| Oczywiscie moglo to wynikac z roznic miedzy systemami, ale
| zdarzali sie rozni guru, ktorzy podawali rozne wielkosci dla
| takiego samego system.
[...]
Nie czuję się żadnym guru, niestety. Ale pozwole sobie i ja na kilka
uwag na ten temat. Wszystkie one oparte są na doświadczeniach
zdobytych podczas administowania stacjami roboczymi HP. Z tego co
zdołałem zauważyć u każdego jest to trochę inaczej, ale jak Unix to
standard - to już tak musi być.
Najpierw fakty:
1. Każdy uruchamiany program (zadanie) do swej pracy potrzebuje
pamięci operacyjnej.
2. Inaczej niż w systemie DOS (ta jednoprogramowość) w wielu innych
systemach pamięć operacyjna może byc zadaniu odebrana. Aby mogło się
ono jednak dalej wykonywać (po powrocie do RAM) obraz zadania musi
być gdzieś zapisany. I to włąśnie jest główną funkcją swapu.
3. Każdy program składa się z czterech zasadniczych "części":
+ kod programu (z angielska text),
+ dane (data),
+ niezainicjowane obszary przeznaczone na dane (w skrócie po
angielsku BSS),
+ dodatkowe obszary danych, których zażąda program podcza swojej
pracy.
Generalnie na sprawy patrząc nie ma potrzeby zapisywania do obszaru
swap pierwszego z elementów (pomijamy patologiczne sytuacje kodów
samomodyfikujących). Następne dwie pozycje mogą być dokładnie
określone na etapie pisania programu. Czwarta składowa zależy
zazwyczaj od złożoności rozwiązywanego problemu.
Polecenie size pozwala zbadać wymagania programu jeżeli chodzi o
pierwsze trzy składniki.
W jaki sposób określić zapotrzebowanie na swap? To zależy...
Podstawowe zasady ("rule of thumb"; NB jak to przetłumaczyć ładnie i
dowcipnie na nasze? "reguła kciuka" brzm nieco śmiesznie...):
+ jako minimum przyjąć należy zainstalowaną wielkość RAM,
+ w rozważanich należu uwzględnić poprawkę na "najgorszy
przypadek": maksymalne sumaryczne zapotrzebowanie na pamięć
wszystkich zadań, które zostaną (mogą być) uruchomione w godzinach
szczytu. Korzystac można ze wzmiankowanego polecenia size, czytać
trzeba dokumentację programów, szcować maksymalną liczbę równocześnie
włączonych użytkowników...
Przyjmuje się zatem, że obszar ten powinien być od dwu do czterech
razy większy niż zainstalowana pamięć RAM.
Dodatkową funkcją obszru swap jest możliwość zapisania obrazu pamięci
(dump) operacyjnej w przypadku upadku systemu (panic) do późniejszej
analizy, ale kto dziś takie analizy robi? Trzeba mieć źródła jądra i
całkiem niezłą w nim orientację.
Można sobie zażyczyć, żeby takie zrzut były robione i gdzie indziej,
ale...
W systemie HP-UX można się natknąć na swap trzech rodzajów:
+ device swap (wolumen logiczny, osobna partycja lub wydzielony
dysk specjalnie w tym celu),
+ file system swap (obszar dostępnego systemu plików lokalnego lub
dostępnego przez NFS),
+ pseudoswap (taka teoretyczna konstrukcja pozwalająca wykorzystać
aż do 7/8 zainstalowanej pamięci - nic tam nie zapisujac - jako
swap).
Każdy z nich ma swoje zady i walety:
+ device swap jest znacznie szybszy (bezpośredni dostęp za
pośrednictwem DMA z pominięciem wielu narzutów systemu plików), ale
jest to obszar praktcznie w całości i "na zawsze" stracony.
+ filesystem swap - znacznie wolniejszy, ale łatwiejszy do
odzyskania; w wielu przypadkach nie jest on nawet używany - systemowi
wystarczy "świadomość", że w razie czego może gdzieś nadmiarowe
zadania zrzucić...
Tworząc swap należy kierować się następującymi dodatkowymi
wskazówkami:
+ jeżeli mamy kilka dysków - rozdzielamy go równomiernie pomiędzy
wszystke dyski,
+ najlepiej sprawują się obszary jednakowej wielkości (są one
zapełniane równomiernie), później tracimy wszystkie zalety związane z
kilku napędami,
+ swap należy lokować na tych urządzeniach, gdzie jest najmniejszy
"ruch",
+ gdy korzystamy z możliwości nadawania priorytetów poszczególnym
fragmentom swapu - szbsze albo mniej obciążone urządzenie powinno
mieć wyższy priorytet, urządzenia zbliżone co do ruchu/parametrów
powinny mieć jednakowe priorytety.
Warto też (zwłaszcza w godzinach szczytu) obserwować co się w
systemie dzieje. Służą do tego programy:
+ glance i gpm (bardzo dobre, ale niestety komercyjne) programy
monitorowania systemu. Można zaglądać w różne dziwne miejsca i
zbierać
niesamowite dane o programach i całym systemie,
+ top (albo ten dostarczany z systemem, albo darmowy dostępny w
sieci),
+ yamm (znakomity program, dostępny też chyba w wersji dla Linuxa),
+ dmon
+ sar
+ ipcs
+ swapinfo
Na koniec jak jest u mnie: stacja robocza HP 9000/735, 176 M RAM:
swapinfo -t
Kb Kb Kb PCT START/ Kb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 102400 31176 71224 30% 0 - 1
/dev/vg00/lvol2
dev 307200 33240 273960 11% 0 - 1
/dev/vg00/lvol3
dev 106615 31744 74752 30% 309960 - 1
/dev/dsk/c0t6d0
reserve - 136876 -136876
memory 135788 31836 103952 23%
total 652003 264872 387012 41% - 0 -
Na trzech urządzeniach mam w sumie ok 515 MB. Zapełnione są one
bardzo sprawiedliwie (po ok 30M).
Z powodu używania dosyć pamięciożernych aplikacji CADowskich - zdarza
się, że dochodzę do 75 - 80 % zapełnienia.
Długo wyszło, przepraszam.
Wojtek
--
Wojciech A. Myszka W.Myszka@immt.pwr.wroc.pl
Technical University of Wroclaw, Institute of Material Science
and Applied Mechanics, Smoluchowskiego str. 25
50-370 Wroclaw, Poland, tel. (+48 71) 21-50-28, fax () 21-12-35
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads