🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.sys.pc-unix
Article #1232

Re: Obliczanie ilosc swap'a

#1232
From: Wojciech Myszka
Date: Wed, 12 Mar 1997 19:57
139 lines
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
Technical Details
Message-ID: <01bc2f14$e2335e80$LocalHost@myszka.ppp.wcss.wroc.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!uw.edu.pl!ict.pwr.wroc.pl!not-for-mail
References: <3325034F.1813@ml.put.poznan.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!uw.edu.pl!ict.pwr.wroc.pl!not-for-mail
From: "Wojciech Myszka" <W.Myszka@immt.pwr.wroc.pl>
Newsgroups: pl.comp.sys.pc-unix,pl.comp.os.hp-ux
Subject: Re: Obliczanie ilosc swap'a
Followup-To: pl.comp.sys.pc-unix
Date: 12 Mar 1997 19:57:42 GMT
Organization: Prosto z domu
Lines: 139
Message-ID: <01bc2f14$e2335e80$LocalHost@myszka.ppp.wcss.wroc.pl>
References: <3325034F.1813@ml.put.poznan.pl>
NNTP-Posting-Host: myszka.slip.wcss.wroc.pl
Mime-Version: 1.0
X-Newsreader: Microsoft Internet News 4.70.1155
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit