Zabaw nowym sprzętem ciąg dalszy...
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
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. --ignorearch --replacepkgs
już więcej nie było
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. --ignorearch --replacepkgs:-)
Wszystko działa, więc mogłem zrobić te swoje benchmarki... Oto wyniki:
-
hdparm -t -TTo 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-byteTo 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:
Śledzenie komentarzy (RSS)
14 maja 2006 22:27:43
Wow, muszę za to wypić ;-)