Mój nowy komputerek sprawuje się znakomicie. Wszystko działa, nic się nie
sypie. Nawet 3D wreszcie działa znakomicie (potestowałem trochę w Enemy
Territory). Coś mi się zdaje, że moje poprzednie problemy z kartami ATI
związane były z walniętą płytą główną. Zresztą, nie tylko to. Na nowej płycie
wreszcie prawidłowo działa nagrywanie z mikrofonu. Na starej ciężko było
złapać cokolwiek poza szumem i to niezależnie od tego, czy używałem wejścia
audio z samej płyty, czy z dodatkowej karty muzycznej.
Dzisiaj postanowiłem zrobić porządek z czytnikiem kart i urządzeniami USB,
bo ciężko byłoby się w tym połapać – czy mój pendrive wyląduje pod
/dev/sdb1
, czy /dev/sdf1
… Ale od czego mamy takie
wynalazki jak udev i hal. Zrobiłe upgrade
tych ustrojstw no najnowszych wersji z PLD, ale domyślne zachowanie mnie nie
zadowoliło – wszystkie karty, pendrive’y i aparat lądowały pod
/media/usbdisk*
. Więc spłodziłem sobie taki oto plik
konfiguracyjny (/etc/hal/fdi/policy/10-local-storage-policy.fdi
,
na podstawie analogicznego w /usr/share
):
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- --> <deviceinfo version="0.2"> <device> <match key="block.is_volume" bool="true"> <match key="volume.fsusage" string="filesystem"> <!-- skip for drives with the no partitions hint (they are handled somwhere else) --> <match key="@block.storage_device:storage.no_partitions_hint" bool="false"> <merge key="volume.policy.should_mount" type="bool">true</merge> <match key="@block.storage_device:storage.drive_type" string="compact_flash"> <merge key="volume.policy.desired_mount_point" type="string">cf</merge> </match> <match key="@block.storage_device:storage.drive_type" string="sd_mmc"> <merge key="volume.policy.desired_mount_point" type="string">sd</merge> </match> <match key="@block.storage_device:storage.drive_type" string="smart_media"> <merge key="volume.policy.desired_mount_point" type="string">sm</merge> </match> <match key="@block.storage_device:storage.drive_type" string="memory_stick"> <merge key="volume.policy.desired_mount_point" type="string">ms</merge> </match> <match key="@block.storage_device:storage.model" contains="CAMERA"> <merge key="volume.policy.desired_mount_point" type="string">camera</merge> </match> </match> </match> </match> </device> </deviceinfo>
Teraz kartę CF mam pod /media/cf
, aparat pod
/media/camera
, a pendrive pod /media/usbdisk
. Montuję
i odmontowuję to ręcznie, ale tu żadnej automatyki nie potrzebuję.
Kolejną sprawą którą chciałem załatwić, było zwolnienie obrotów
wentylatorów, gdy nie jest potrzebna ich pełna moc. Z Linuksa kontrolować mi się tego nie udało,
ale wystarczyło włączyć odpowiednią opcję w BIOSie, żeby to się robiło
samo
. Niestety nie spowodowało to żadnego wyciszenia komputera –
prawie cały hałas produkuje zasilacz, a chwilami dysk. To już będzie trzeba
jakoś sprzętowo załatwić.
Kolejna sprawa to benchmarki. Przed zmianą sprzętu zrobiłem na starym
komputerze, teraz trzeba było spróbować na nowym. Już wczoraj je zrobiłem, ale
w systemie 32-bitowym. Dzisiaj jednak ciekawość już zżerała mnie na tyle, że
postanowiłem zrobić sobie bajzel w systemie i spróbować odpalić coś w 64 bitach…
Chciałem odpalić tylko nbench-byte
w 64 bitach, ale do tego
potrzeba, jak do każdej innej 64-bitowej aplikacji, 64-bitowego kernela.
Zrobiłem więc backup obecnego i nadinstalowałem wersję amd64, wraz ze
wszystkimi używanymi dodatkowymi modułami. Wcześniej jeszcze wcisnąłem w
system 64-bitowe glibc. Wszystko z --ignorearch
. Prawdę mówiąc
nie liczyłem na to, że to wystartuje, a nawet na to, że initrd się poprawnie
wygeneruje… Initrd się wygenerował, system wystartował. Tylko skrypt od
firewalla nie zadziałał, bo najwyraźniej 32-bitowe iptables z 64-bitowym
kernelem nie działają. Doinstalowałem 64-bitowe iptables (z
--ignorearch
) i firewall też ruszył.
Zanim odpaliłem benchmarka, postanowiłem sprawdzić, czy sobie systemu
zbytnio nie rozwaliłem. Najbardziej obawiałem się o Xy, o to, czy 64-bitowy
sterownik ATI w kernelu dogada się z 32-bitowymi Xami. Nie dogadywał się –
Xy się niby odpaliły, ale ani nie wyglądały dobrze (przesunięty, migoczący obraz),
ani nie były stabilne (wszystko się sypło przy próbie przełączenia się na
konsolę). Wyłączenie VesaFB niewiele zmieniało. Trzeba było więc i Xserver
zainstalować w wersji 32-bitowej…
Miałem już trochę dość
, więc--ignorearch --replacepkgs
postanowiłem zainstalować 64-bitowego Poldka z RPMem… Niestety jak
zainstalowałem 64-bitowego RPMa, to Poldek przestał działać. Skopiowałem
więc ręcznie wszystkie potrzebne binarki (poldek i biblioteki) z pewnego
64-bitowego serwera i już tak naprawionym poldkiem zainstalowałem to samo
z RPMów.
już więcej nie było--ignorearch --replacepkgs
potrzebne, ale okazało się, że Poldek wcale sobie dobrze z mieszanym systemem (32/64
bit) najlepiej nie radzi. Jednak doświadczony PLDowiec jakoś nad tym
zapanuje. W każdym razie Xserver ze wszystkimi potrzebnymi modułami i
sterownikami udało się zainstalować. Cała reszta systemu pozostała 32-bitowa
(poza, oczywiście, bibliotekami, z których wiele mam teraz w obu wersjach). Co
więcej, Xy ruszyły i działają niegorzej niż w 32-bitach. :-)
Wszystko działa, więc mogłem zrobić te swoje benchmarki… Oto wyniki:
-
hdparm -t -T
To najprostszy test, którym można
coś sprawdzić
. Niby do
dysku, ale pokazuje też przepustowość pamięci, jak i drobny wpływ
innych części systemu na komunikację z dyskiem.Test przeprowadziłem po kilka razy, poniżej wkleiłem
środkowy
wynik.- Na starym kompie:
/dev/sda: Timing buffer-cache reads: 808 MB in 2.00 seconds = 403.17 MB/sec Timing buffered disk reads: 148 MB in 3.03 seconds = 48.81 MB/sec
- Na nowym, w 32-bitach:
/dev/sda: Timing buffer-cache reads: 3364 MB in 2.00 seconds = 1681.89 MB/sec Timing buffered disk reads: 160 MB in 3.02 seconds = 52.91 MB/sec
- Na nowym, w 64-bitach:
/dev/sda: Timing cached reads: 3084 MB in 2.00 seconds = 1541.90 MB/sec Timing buffered disk reads: 158 MB in 3.02 seconds = 52.25 MB/sec
Widać, że zmiana kompa spowodowała prawie czterokrotne
przyspieszenie cache dysku, a także niewielkie przyspieszenie transferu
z dysku. Jest z czego się cieszyć.:-)
Niespodzianką jest odrobinę gorszy wynik w systemie 64-bitowym na
tej samej maszynie, ale różnica ta raczej nie ma znaczenia. - Na starym kompie:
-
nbench-byte
To pakiecik do benchmarków, jaki znalazłem w PLD. Coś on tam mądrego
liczy i w ten sposób mierzy wydajność maszyny. Cokolwiek to jest, to do
moich celów się nada.;-)
- Na starym kompie:
CPU : AuthenticAMD AMD Athlon(tm) processor 1004MHz L2 Cache : 256 KB OS : Linux 2.6.14.7-2 C compiler : i686-pld-linux-gcc MEMORY INDEX : 5.565 INTEGER INDEX : 4.729 FLOATING-POINT INDEX: 9.567
- Na nowym kompie, w 32-bitach:
CPU : AuthenticAMD AMD Athlon(tm) 64 Processor 3200+ 2011MHz L2 Cache : 512 KB OS : Linux 2.6.14.7-5 C compiler : i686-pld-linux-gcc MEMORY INDEX : 11.805 INTEGER INDEX : 10.001 FLOATING-POINT INDEX: 20.263
- Na nowym kompie, 32-bitowo, pod 64-bitowym kernelem:
CPU : AuthenticAMD AMD Athlon(tm) 64 Processor 3200+ 2010MHz L2 Cache : 512 KB OS : Linux 2.6.14.7-5 C compiler : i686-pld-linux-gcc MEMORY INDEX : 12.047 INTEGER INDEX : 10.116 FLOATING-POINT INDEX: 19.884
- Na nowym kompie, 64-bitowo, pod 64-bitowym kernelem:
CPU : AuthenticAMD AMD Athlon(tm) 64 Processor 3200+ 2010MHz L2 Cache : 512 KB OS : Linux 2.6.14.7-5 C compiler : amd64-pld-linux-gcc MEMORY INDEX : 13.785 INTEGER INDEX : 13.313 FLOATING-POINT INDEX: 19.262
Widać, że sama zmiana komputera przyspieszyła te testy
mniej-więcej dwa razy. Uruchomienie 64-bitowego kernela
poprawiło odrobinęmemory index
iinteger index
jednocześnie odrobinę psującfloating-point index
.
Skompilowanie testów na 64 bity wyraźniej poprawia wydajność
pamięci i liczb całkowitych, ale operacjom zmiennoprzecinkowym nie
pomaga. Wniosek z tego taki, że jak komuś zależy na wydajności
operacji zmiennoprzecinkowych, to 64 bity mu są co najmniej zbędne.
W innych przypadkach można conieco zyskać (pewnie sporo więcej niż w
powyższym teście, jeśli kod jest odpowiednio przygotowany), ale i w 32
bitach Athlon 64 ma moc. Z drugiej strony, wydaje się od mojego
starego Athlona szybszy o tyle, o ile ma szybszy zegar… mogłoby być
lepiej. Jednak w normalnej pracy pewnie będzie lepiej – w
przeciwieństwie do tego testu, w praktyce więcej się wykorzysta
przepustowości pamięci i I/O. - Na starym kompie:
Wow, muszę za to wypić 😉
PolubieniePolubienie
Ciekawy ten nbench.
Z domyślnymi CFLAGS, jakie są w tym nbench:
MEMORY INDEX : 14.013
INTEGER INDEX : 10.910
FLOATING-POINT INDEX: 19.557
Po dodaniu -march=athlon-xp -fstrength-reduce -floop-optimize2 -funroll-loops:
MEMORY INDEX : 16.566
INTEGER INDEX : 14.035
FLOATING-POINT INDEX: 21.178
System: Athlon-XP 2800+ mobile, 768M ramu DDR 333MHz.
PolubieniePolubienie
mcv: wygląda na to, że to bardziej kompilator testuje niż maszynę 🙂 No i trochę smutne, że Twój, niby słabszy system, wypadł lepiej…
PolubieniePolubienie
No dziwne. Ja używam GCC 4, jeśli masz starszego to może to jest przyczyną? Chociaż wydaje mi się, że przy teście pamięci nie powinno być takiej różnicy…
PolubieniePolubienie
AuthenticAMD – to mi się podoba 😀
PolubieniePolubienie
Jeśli ten Athlon Mobile jest podobnie zbudowany co Pentium M to nie jest tak bardzo słabszy, czasem potrafią te procki nieźle wymiatać w porównaniu do analogicznych desktopowych kości…
PolubieniePolubienie
Jajcuś: Miło było pomóc 😉
Popatrzyłeś może na tego poldka, czy da się go zmusić aby równomiernie aktualizował pakiety dla obu architektur, czy dalej chce jedną wyrzucać?
PolubieniePolubienie
Co do wyciszania PC:
http://www.4max.pl/default.asp?g=42&gg=18&produkt=1883
drogie, ale działa dobrze. Wycisza kadłubek, choć warkot z tyłu z zasilacza słychać nadal. Ja przykręciłem do obudowy zasilacz na takich śrubkach z gumowymi podkładkami między zasiłką<->obudową, zatem drgań na kadłubek nie przenosi. No i założyłem naprawdę ciche wentylatory.. (PAPST rulez!)
PolubieniePolubienie