sobota, 28 marca 2009

kernel: PAE vs. x86_64

Jakiś czas temu, na liście pld-devel-pl@lists.pld-linux.org zagościła dyskusja, o domyślnym włączeniu obsługi PAE (Physical Address Extension) w kernelu dystrybucyjnym w Th. Pomijając fakt, że wiele modeli procesorów nie obsługuje PAE, to pewne wątpliwości wprowadza fakt, że obłsuga PAE spowalnia działanie pamięci, postanowiłem więc zrobić mały test.

W maszynie testowej siedzi Intel C2D E8400, 4GiB RAM-u, kernel 2.6.28.9. Procedura testowa:

- hdparm -T /dev/sda
- pomiar czasu obliczania sumy sha512 dla pliku o wielkości 431MiB
- program nbench-byte-2.2.2

i686 + PAE

- hdparm: 7056MB/s
- sha512sum: 18,3s
- nbench:
* MEMORY INDEX: 18,7
* INTEGER INDEX: 20,6
* FLOATING-POINT INDEX: 38,8

x86_64

- hdparm: 7625MB/s
- sha512sum: 16,9s
- nbench:
* MEMORY INDEX: 18,7
* INTEGER INDEX: 20,5
* FLOATING-POINT INDEX: 38,9

Różnica w szybkości działania pamięci zmierzona programem hdparm wynosi ~8% na korzyść kernela 64bit, co jest niemałą wartością. Widać to też dla programu sha512sum. W teście nbench różnica jest minimalna, jednak biorąc pod uwagę, że program ten używa bardzo mało pamięci, więc cache procesora niweluje różnicę w szybkości.

Nie ma sensu używania opcji PAE, zwłaszcza jeśli samemu musimy budować kernel, lepiej już użyć kernela z archa x68_64, zwłaszcza że w PLD jest to dosyć proste. Zaczynamy od dodania do pliku do pliku /etc/rpm/platform wiersza:
x86_64-[^-]*-[Ll]inux(-gnu)?

teraz dodajemy źródło do Poldka, które nazwiemy sobie th64, do pliku /etc/poldek/repos.d/pld.conf dodajemy następujące wiersze:
[source]
type = %{_type}
name = th64
path = %{_prefix}/PLD/x86_64/RPMS/
auto = no

Uruchamiany Poldka:
$ poldek -n th64

Teraz tylko pozostaje przeinstalować kernel
install -F kernel* --reinstall

i reboot

niedziela, 15 marca 2009

Paskudny zbieg okoliczności..

W firmie ponad miesiąc temu zaczęły się problemy z łączem, objawiające się całkowitym zanikiem ruchu. Po sprawdzeniu całego naszego ustrojstwa, okazało się, że restart urządzenia sieciowego dostawcy naprawia problem. Urządzenie owo to małe czarne pudełko, do którego wchodzą trzy kable: UTP do anteny na dachu, UTP do routera i kabel zasilający.

Szukając źródła problemu, wymieniłem patchcord, sieciówkę w routerze i kabel zasilający. Przewód zasilający, to taki zwykły kabelek, jaki można spotkać w sprzęcie RTV. Z braku pewnego na 100% kabla, podmieniłem kabel z radia w biurze, które od lat działa 24/7 bez problemów. Kiedy powyższe nie poskutkowało, zadzwoniłem do naszego ISP i zgłosiłem problem. Technicy od ISP odkryli, że na dachu jacyś robotnicy uszkodzili kabel UTP prowadzący do anteny. Wymienili kabel na jakiś porządniejszy i puścili go w peszli dla pewności.

Jakiś czas potem okazało się, że jeden z UPS-ów, do którego podłączone jest m.in. owe "czarne pudełko" pada co jakiś czas na amen, zero ostrzeżeń, zero działania na baterii. Po prostu się wyłącza (razem z serwerem, który jest do niego wpięty). Podejrzewaliśmy baterię akumulatorów, która była od jakiegoś czasu na granicy żywotności, o czym UPS regularnie nam przypominał rozdzierającym skowytem. Tydzień temu padł na amen i pojechał do serwisu.

Miałem nadzieję, że już po wszystkim, jednak w ubiegły piątek problem powrócił. Wieczorna wizyta w firmie i standardowa sytuacja: restart "czarnego pudełka". W pewnym momencie usłyszeliśmy, że strzela. Okazało się, że iskrzy w okolicach wtyczki kabla zasilającego od czarne pudełko. Kabel był nadłamany, a w izolacji była wypalona dziura.

Winowajca odnaleziony, uszkodzony kabel nie tylko powodował przerwy w działaniu sieci, ale też od czasu do czasu robił zwarcie, które kończyło się awaryjnym wyłączeniem UPS-a. Wymiana kabla na wadliwy to paskudny pech.

niedziela, 1 marca 2009

th stabilne

W końcu PLD-Linux Th otrzymało oficjalnie status stabilnego wydania. Nie było fajerwerków i szampana, nie ma też obrazów iso i całego tego zamieszania. Th to wersja w ciągłym rozwoju zatem nie będzie też wydań jak to miało miejsce w przypadku RA czy Ac. Poza zmianą statusu w Th w nic się nie zmieniło to ciągle to samo Th.

Źródła pakietów powinny być traktowane następująco:
- th (main): stabilne
- th-ready: wersje testowe, ze spełnionymi zależnościami
- th-test: eksperymentalne buildy, aktualizujesz na własne ryzyko.

Ciągle nie ma jednomyślnego stanowiska co do snapshotów Th, debata trwa.