Pzdr, OMSON
Na początek przesuwa Norton Speed Disk i robi to on-line.
Sposób chałupniczy - jeśli masz miejsca w pamięci tyle, że możesz obyć
się bez swapa, to wyłącz swapa, przewal na koniec dysku wszystko, co się
da, w razie czego podopychać zapchajdziurek tak, aby został CIĄGŁY
kawałek wolnego miejsca jak najbliżej początku, o wielkości nieco
przekraczającej żądany rozmiar pliku wymiany, najlepiej stały. To ważne,
inaczej mogą być nici i swap się pokawałkuje.
Jak masz odpowiedni kawałek wolnego nie przerwany NICZYM, to włączasz
swapa i już, nawet nie trzeba restartować (co jest konieczne przy
wyłączaniu swapfile).
Defragmentację off-line robi O&O Defrag, tyle, że nie rusza swapa jeśli
jest w jednym kawałku, oraz jeśli go przesunie, to w przez siebie
wybrane miejsce, niekoniecznie w tę stronę, co chcemy. PageDefrag
podobnie. Zostaje chyba NSD. Niestety, program jest płatny, choć są
triale.
Jeśli RAM masz za mało do wyłączania swapa, to także dopychasz wszystko
co się da na koniec (odpowiednią komendę zaraz podam), a z konsoli
odzyskiwania, lub w inny sposób, gdzie off-line dobierasz się do systemu
plików, kasujesz pagefile.sys (w konsoli nieco naokoło), restart, daję
70-80% szans, że swap odtworzy się na początku. Tu także ważne jest,
żeby w interesującym nas obszarze był ciągły kawałęk wolnego miejsca.
Zapchajdziury są po to, aby system nie odtworzył go sobie pośrodku, tam
gdzie nie chcemy.
Jeszcze można tak, że skopiować istniejący swap (oczywiście, nie spod
działąjącego własnego systemu) do jakiegoś innego pliku. Bardzo wskazane
jest, aby mieć bieżący, lub choćby bardzo ułatwiony podgląd na zajętość
poszczególnych obszarów dysku, ułatwi nam to korygowanie w razie
potrzeby. Po skopiowaniu zobaczyć, czy położył się tam, gdzie chcemy i
czy jest w jednym kawałku. Jeśli tak, to zwyczajnie, wymuszamy zmianę
jego nazwy na pagefile.sys, i restart... Zapchajdziury można skasować
teraz, albo nawet po restarcie (nie zapomnieć, bo miejsca zabraknie).
W miarę daje się to zrobić w XP, we wcześniejszych systemach jest to
trudniejsze.
Ja sobie tak radzę w chałupniczy sposób, nie mam NSD. Na przeszkodzie
mogą stanąć metadane, z nimi jest trudno.
Po udanym przesunięciu swapa na początek można także poprzesuwać na
początek pozostałe, zepchnięte na koniec pliki - system będzie nieco
żwawiej chodził.
--
((o))
((+))
Windows XP, podobnie jak większość współczesnych systemów operacyjnych,
wykorzystuje pamięć wirtualna. System może przydzielić pewien obszar
pamięci dla aplikacji, ale nie zawsze taki przydzielony obszar fizycznej
pamięci operacyjnej będzie dla aplikacji wystarczający. Zamiast tego
Windows monitoruje odwołania aplikacji do pamięci, a następnie w
odpowiedni sposób reorganizuje strukturę wykorzystania pamięci
operacyjnej.
Analizując kolejne odwołania poszczególnych aplikacji do pamięci, system
operacyjny pozwala na prace komputera ze znacznie mniejsza ilością pamięci
- odpowiednio przewidując i optymalizując kombinacje pamięci fizycznej i
wirtualnej w taki sposób, aby zapewnić poprawna i wydajna prace aplikacji.
Windows XP regularnie sprawdza, czy pamięć fizyczna przydzielona dla danej
aplikacji jest w danej chwili wykorzystywana, oraz na bieżąco stara się
przewidywać zapotrzebowanie poszczególnych aplikacji na pamięć i określić
ilość pamięci, która może byc w danej chwili zwolniona bez wyraźnego
wpływu na wydajność poszczególnych aplikacji oraz całego systemu.
Zaoszczędzona w ten sposób pamięć jest traktowana jako swego rodzaju
rezerwa i wykorzystywana w miarę potrzeb.
Kiedy rezerwa pamięci maleje, to jest uzupełniania przez zapisywanie
nieużywanych chwilowo obszarów pamięci do specjalnego pliku
(stronicowania) na dysku.
Jeśli tylko, to możliwe, staraj się unikać umieszczenia pliku wymiany na
tym samym dysku co pliki systemu operacyjnego.
Jeśli decydujemy się na plik wymiany z ustawieniem ręcznym (stały), to
powinien być w jednym kawałku, więc przed założeniem nowego pliku
dokonajmy defragmentacji dysku - dobrze by było przenieść go na początek
dysku np. robi to Speed Disk z pakietu z pakietu Norton Utilities.
Najpierw należy ustawić wielkość pamięci wirtualnej na 0 (tak, zero!).
Następnie powinna zostać uruchomiona defragmentacja twardego dysku
(Start/Programy/ Akcesoria/Narzędzia systemowe/Degramentator dysków). Po
jej zakończeniu ponownie przejdź do opcji pamięci wirtualnej i ustaw
zarówno minimalny, jak i maksymalny jej rozmiar na tę samą wartość, np.
500 MB. Jaka jest korzyść z takiej operacji? Pamięć wirtualna o stałym
rozmiarze jest przechowywana na twardym dysku w postaci pojedynczego pliku
i dostęp do jej różnych części jest szybszy. Po tej operacji uruchamiamy
wspomniane narzędzie Speed Disk, aby przenieść plik na początek dysku
Sposób ten ma jednak nieusuwalna wadę, ponieważ dostęp do dysku jest o
wiele wolniejszy niż dostęp do pamięci, korzystanie z pliku wymiany może
spowodować spowolnienie pracy systemu. Jeśli jednak alternatywą jest
niemożność uruchomienia aplikacji z powodu braku pamięci, rozwiązanie to
przestaje być tak złe.
Powinieneś więc ręcznie dobrać ustawienia pliku wymiany, czy pozostawić to
systemowi? Osobiście polecam, aby zajął się tym system. Zwykle dynamiczne
sterowanie plikiem wymiany powoduje najefektowniejsze wykorzystanie
zasobów systemu.
Ze wzgledow bezpieczenstwa mozna wymusic czyszczenie pliku wymiany przy
kazdym zamykaniu systemu. W pliku tym skladowane sa chwilowo strony
pamieci zawierajace niekiedy informacje o krytycznym znaczeniu, np.
nieszyfrowane hasla, numery kart kredytowych itp.., gdyby nie czyszczenie
pliku wymiany, informacja ta moglaby byc przechwycona przez
nieuprawnionych uzytkownikow po ponownym uruchomieniu systemu.
Czyszczenie to wydłuża jednak czas zamykania systemu, jesli wiec nie jest
uzasadnione potrzebami bezpieczenstwa, mozna rozwazyc rezygnacje z tej
funkcji.
Odpowiada za nia pozycja/wartosc "ClearPageFileAtShutdown" (1-
czyszczony, 0- nie czysz.) w kluczu:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\
Memory Management
--
Piotr Palusiński [Microsoft MVP - Windows Desktop Experience]
https://mvp.support.microsoft.com/profile/Piotr.Palusinski
http://social.answers.microsoft.com/Forums/pl-pl/category/answersplpl
Nigdy nie kłóć się z głupcem, bo ludzie mogą nie dostrzec różnicy
A możesz rozjaśnić jeszcze w jakim celu? Bo raczej nie jest
to w normalnych zastosowaniach potrzebne ani wskazane (a na-
wet możliwe, biorąc pod uwagę partycje NTFS).
--
|""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|
| Radosław Sokół | http://www.grush.one.pl/ |
| | Politechnika Śląska |
\........................................................../
O ile ma się >1 dysk...
> Najpierw należy ustawić wielkość pamięci wirtualnej na 0 (tak, zero!).
Nie wystarczy wyłączenie? (Opcja "Bez pliku stronicowania") Łatwiej tak
chyba...?
Tylko, że jeśli ramki mało, a programów ładuje się dużo, to albo system
się wywali, albo skorzysta z awaryjnego pliku wymiany.
> Następnie powinna zostać uruchomiona defragmentacja twardego dysku
> (Start/Programy/ Akcesoria/Narzędzia systemowe/Degramentator dysków).
> Po
Ja używam JkDefrag i robię tak:
W miarę możliwości najpierw wszystko przerzucam na koniec komendą
jkdefrag -a 6 -l "" -u disabledefaults
(wtedy nie sortuje po używaniu)
Wyłączam swapa i jeszcze raz zadaję powyższą komendę.
> jej zakończeniu ponownie przejdź do opcji pamięci wirtualnej i ustaw
> zarówno minimalny, jak i maksymalny jej rozmiar na tę samą wartość,
> np.
Ja tak uczyniłem, chyba dobrze?
> 500 MB. Jaka jest korzyść z takiej operacji? Pamięć wirtualna o stałym
> rozmiarze jest przechowywana na twardym dysku w postaci pojedynczego
> pliku
> i dostęp do jej różnych części jest szybszy. Po tej operacji
> uruchamiamy
> wspomniane narzędzie Speed Disk, aby przenieść plik na początek dysku
SpeedDisk nie potrzebuje takich uprzednich zabiegów, by dokonać
defragmentacji swapa, poradzi sobie nawet z bardzo pokawałkowanym,
testowane własnoręcznie. A przełączyć rozmiar na stały można i bez
kasowania przecież, sam się przy restarcie odpowiednio ustawi...
>
> Sposób ten ma jednak nieusuwalna wadę, ponieważ dostęp do dysku jest o
> wiele wolniejszy niż dostęp do pamięci, korzystanie z pliku wymiany
> może
> spowodować spowolnienie pracy systemu. Jeśli jednak alternatywą jest
> niemożność uruchomienia aplikacji z powodu braku pamięci, rozwiązanie
> to
> przestaje być tak złe.
Ja bym też sugerował sprawdzić, jaki transfer jest przypisany dyskowi ze
swapem, jeśli PIO, to przecież tragedia... Miałem taki problem i hehe,
poradziłem sobie nawet bez odinstalowania portu, google plus własna
inwencja zdziałały cuda, zamiast PIO mam UDMA4 :) Jak kto chętny,
chętnie się podzielę :)
> Powinieneś więc ręcznie dobrać ustawienia pliku wymiany, czy
> pozostawić to
> systemowi? Osobiście polecam, aby zajął się tym system. Zwykle
> dynamiczne
> sterowanie plikiem wymiany powoduje najefektowniejsze wykorzystanie
> zasobów systemu.
Ale właśnie, czy nie kosztem ponownej fragmentacji?
> Ze wzgledow bezpieczenstwa mozna wymusic czyszczenie pliku wymiany
> przy
...
> nieszyfrowane hasla, numery kart kredytowych itp.., gdyby nie
> czyszczenie
I wirusy jakimś cudem nie ubite do końca :) To również przetestowane
osobiście i nie trafiłbym, gdyby klientce dysk nie padł :) Co się dało
sczytać, zostało sczytane, na szczsęście padł tylko wpis jakichś mało
ważnych metaplików - przeskanowane, wirek był w swapfile...
--
((o))
((+))
Zwykle na początku dysku transfer jest szybszy, więc szybsze swapowanie,
to krótsze swapowanie, a co za tym idzie, mniejsze mulenie. Rodzaj
partycji chyba nie ma znaczenia, natomiast zgadzam się, aby swapa
wyrzucić na osobny dysk.
--
((o))
((+))
Transfer, ale nie pozycjonowanie. Więc swapowanie nie będzie
wyraźnie szybsze, bo plik wymiany jest silnie wewnętrznie
sfragmentowany.
> partycji chyba nie ma znaczenia, natomiast zgadzam się, aby swapa
> wyrzucić na osobny dysk.
Wyrzucenie na osobny dysk poprawni charakterystykę czasu po-
zycjowania głowic, więc pozytywnie wpłynie na wydajność.
Przeniesienie na początek partycji da bardzo niewiele, więc
radzę się tym nie przejmować. Takie rady (robienie osobnej
partycji FAT12/FAT16 z klastrami 4 KiB na początku nośnika)
miały sens w erze komputerów z 16 MiB pamięci i wolnymi dy-
skami.
Jeszcze dodatkowo polecam w ramach dodatkowego wyjaśnienia
dlaczego duży transfer (co wynika zresztą z tytułowej
defragmentacji w tym artykule) nie jest aż taki ważny w
przypadku operacji stronicowania:
http://www.grush.one.pl/article.php?id=defrag
To, że najlepiej, aby swap (jeśli jeden dysk) leżał gdzieś w
geometrycznym środku systemu plików (mam na myśli większość "aktywnych"
danych) jest logiczne. Zwykle też one leżą blisko początku, więc powinno
jednak być szybciej. Ja jednak w środek geometryczny zapakowałbym
$MFT... Niechby były sąsiadami...
>
>> partycji chyba nie ma znaczenia, natomiast zgadzam się, aby swapa
>> wyrzucić na osobny dysk.
>
> Wyrzucenie na osobny dysk poprawni charakterystykę czasu po-
> zycjowania głowic, więc pozytywnie wpłynie na wydajność.
> Przeniesienie na początek partycji da bardzo niewiele, więc
Ja bym to jednak zrobił. Zwłaszcza, gdy jest osobny dysk. I przypiąłbym
dysk do osobnego portu... Myślałem też o skorzystaniu z SSD, kupię za
stówkę 16 GB, wyrzucę badziewie co mam teraz.
> radzę się tym nie przejmować. Takie rady (robienie osobnej
> partycji FAT12/FAT16 z klastrami 4 KiB na początku nośnika)
> miały sens w erze komputerów z 16 MiB pamięci i wolnymi dy-
> skami.
Też fakt. Może łatwiej zapanować nad taką partycją, ale... robiłem próby
i nie stwierdziłem wyraźnej różnicy między tym, czy FAT, czy NTFS. Choć
sprawdzę, czy jeśli partycja NTFS jest dziewicza, ile zajmuje jej MFT,
jeśli jedynym plikiem jest pagefile.sys, w końcu $MFT rozrasta się wraz
z filesystemem (znaczy się, w miarę przybywania mu zawartości), partycja
FAT16 o pełnym rozmiarze (65520 j.a.), to ok. 256 kB - 2*128, bo dwie
kopie FAT. Choć dla NT4 stawiałem FAT12 a 64KB, wyrabiało. Taki
eksperyment. Ale już badziewiasty 486 wyrabiał się doskonale z NTFS-em.
Poza tym, NTFS czyni mniejsze kłopoty, jeśli jest duża migracja danych.
W laptopie swapa mam na samiutkim początku dysku/partycji, opłaciło się,
wyraźnie ożył, a jak jeszcze pamięci dodałem, to tylko ślimacza obsługa
teledysków przypomina, że w środku mam tylko 500 MHz procka. Poszukam
jeszcze szybszego procka, jak najszybszy na szynie 66 MHz, S370.
--
((o))
((+))
> A możesz rozjaśnić jeszcze w jakim celu? Bo raczej nie jest
> to w normalnych zastosowaniach potrzebne ani wskazane (a na-
> wet możliwe, biorąc pod uwagę partycje NTFS).
>
Zwykle dbam tylko o to, aby plik wymiany był w jednym kawałku (ustawiam
na sztywno a w razie potrzeby defragmentuje za pomocą pagedfrg) i nie
ingeruję w jego położenie (no chyba, że mam podłączone dwa fizyczne
dyski, wtedy ustawiam swap identycznie na obydwu - czytałem gdzieś, że
system potrafi to optymalnie wykorzystać).
Wykoncypowałem obecnie, że można by spróbować wymusić położenie swapa w
najszybszym miejscu na dysku... przynajmniej pomysł wydawał mi się
dobry... :)
Pzdr, OMSON
> radzę się tym nie przejmować. Takie rady (robienie osobnej
> partycji FAT12/FAT16 z klastrami 4 KiB na początku nośnika)
> miały sens w erze komputerów z 16 MiB pamięci i wolnymi dy-
> skami.
>
Poza tym, ponoć FAT jest rzeczywiście wydajny w przypadku partycji w
okolicach 300MB max (kiedyś wyczytałem u źródła tj. na stronie M$).
Pzdr, OMSON
Pzdr, OMSON
Jeśli przez "pozycjonowanie" rozumiesz odpowiednik "czasu
dostępu" to u mnie HDTune pokazuje że jest on (czas dostępu)
prawie 2 razy *krótszy na początku dysku* niż na końcowych
obszarach.
Osobiście mam osobną partycję tylko na "Swap" na drugim
(niesystemowym) dysku, na jego początku. Rozmiar tak jak w
poście Piotra Palusińskiego kontrolowany przez system.
w NU 2002 też tak jest?
czyli: NSDisk -> wybor partycji -> start optimizing i przeniesie
pagefile.sys na pocz. partycji??
(pytam,bo jakos nie widze tego w opcjach; skąd wiadomo, że NSD przesuwa na
początek?)
> Jeszcze można tak, że skopiować istniejący swap (oczywiście, nie spod
> działąjącego własnego systemu) do jakiegoś innego pliku.
dokladnie o co chodzi? - jest pagefile.sys na partycji E:\ i co konkretnie
oznacza "skopiowanie do innego pliku"?
> Po skopiowaniu zobaczyć, czy położył się tam, gdzie chcemy
czyli: czy na początku partycji?
> Zwykle na początku dysku transfer jest szybszy, więc szybsze swapowanie,
> to krótsze swapowanie, a co za tym idzie, mniejsze mulenie. Rodzaj
> partycji chyba nie ma znaczenia, natomiast zgadzam się, aby swapa
> wyrzucić na osobny dysk.
Chyba że chcesz dać windowsowi szansę na zapisanie plików zrzutu pamięci
(nawet minidumpów), żeby móc to potem przeanalizować albo komuś dać do
przeanalizowania... Na stronie microsoftu jest napisane że takie
ograniczenie dotyczy XP i wcześniejszych, ale mnie się nie udało na
wiście uzyskać dumpa jeśli przynajmniej mały pagefile nie był obecny na
partycji systemowej. Dlatego mam 1 GB pagefile na partycji systemowej, i
8 GB na innym dysku (na RAID nawet, ale to akurat nie ma większego
znaczenia). Co ciekawe, windows używa sobie wszystkich tych plików, mimo
że pamięci jest sporo i zawsze zostaje wolna. Widać lubi grzebać.
--
Saiko Kila
Unregistered Windows User #7.29581131e8
Rozumiem średni czas dostępu, a nie czas dostępu do sąsied-
niej ścieżki czy sektora na tej samej ścieżce.
Ruch głowicy trwa mniej więcej tak samo długo niezależnie od
numeru cylindra. Jedynie opóźnienie dostępu do sektora się
troszkę skraca na początku nośnika.
To aplikacje lubią grzebać. Mało który programista martwi się
w ogóle czymś takim jak zestaw roboczy procesu. A Windows do
XP włącznie jest dosyć restrykcyjny w utrzymywaniu limitów
rozmiaru zestawów roboczych (od Visty w górę troszkę to roz-
luźniono, dostosowując się do realiów, gdy komputer 2 GiB
RAMu jest "marnie wysposażony").
Te sprawy załatwia od dawna buforowanie, a od niedawna -- SSD.
> Ja bym to jednak zrobił. Zwłaszcza, gdy jest osobny dysk. I przypiąłbym
> dysk do osobnego portu... Myślałem też o skorzystaniu z SSD, kupię za
> stówkę 16 GB, wyrzucę badziewie co mam teraz.
A ja bym po prostu używał lepszych aplikacji, które nie mają
tak obszernego kodu i nie wymagają tak wielkich stosu i ster-
ty. Na przykładzie Windows 7 widać, że nowsze nie musi być
większe.
> Też fakt. Może łatwiej zapanować nad taką partycją, ale... robiłem próby
> i nie stwierdziłem wyraźnej różnicy między tym, czy FAT, czy NTFS. Choć
Dzisiaj takiej różnicy nie ma. Dlatego piszę: *kiedyś* takie
rady miały sens, dzisiaj nie ma co szaleć, bo swapowanie zaw-
sze jest wolne -- może być tylko bardzo wolne albo diabelnie
wolne, ale różnica jest niewielka.
Nie ma to prawie żadnego znaczenia.
> dyski, wtedy ustawiam swap identycznie na obydwu - czytałem gdzieś, że
> system potrafi to optymalnie wykorzystać).
Optymalnie? Wątpię. Ale wykorzystać potrafi.
> Wykoncypowałem obecnie, że można by spróbować wymusić położenie swapa w
> najszybszym miejscu na dysku... przynajmniej pomysł wydawał mi się
> dobry... :)
Niewiele to da. Należy dążyć do ograniczenia liczby wymian
stron pamięci z pamięcią masową, a nie do przyspieszania
tego procesu.
W zasadzie nieopłacalne -- RAID 0 nie zmniejsza zbytnio
czasu dostępu, a transfer sekwencyjny w przypadku stroni-
cowania ma znaczenie co najmniej drugorzędne. Jakiś przy-
rost wydajności może być, ale lepiej mieć plik wymiany na
całkiem oddzielnym dysku, niż na obciążonej już innymi
operacjami we/wy macierzy RAID 0.