Re: Serwer SQL - na dziś a może na jutro - tylko konkretne propozycje proszę

Autor: Bronek Kozicki (brok_at_rubikon.pl)
Data: Tue 13 Aug 2002 - 10:28:19 MET DST


Cooger <squadaq_at_box43.pl> wrote:
> OS+soft: Linux + MySQL

ma doświadczenie z serwerami SQL, ale zupełnie inna platforma. Może moje
doświadczenie Ci się przyda.
Elementem krytyczne z punktu widzenia wydajności serwera to (dla dużych
baz danych) wydajność systemu dyskowego, i zaraz później pojemność RAM.
Inaczej mówiąc - możesz uzyskać spory przyrost szybkości tylko
zamieniając dyski (na szybsze, na większy RAID itp.) . Dla baz danych
typu transakcyjnego duże znaczenie ma prędkość zapisu (dla analitycznych
z kolei prędkość czytania), dlatego polecam RAID5 na dobrym kontrolerze
i kilku szybkich dyskach, które wypełnią pojemność kanału SCSI w
kontrolerze. Na początek możesz kupić dobry RAID ale tylko z dwoma
dyskami SCSI z których złożysz RAID1 (bezpieczeństwo danych - dyski SCSI
jeżeli już się sypią, to bez uprzedzenia i totalnie !) z możliwością
dokupienia doń drugiego kanału SCSI i więcej pamięci na cache
kontrolera. Pojemność dysków to sprawa zupełnie uboczna ; często widuje
się bazy kilka GB, które i tak rozdziela się na kilkadziesiąt lub więcej
GB powierzchni dyskowej w celu osiągnięcia maksymalnej szybkości RAID5.
Na dyskach z danymi raczej nie umieszczaj plików wykonywalnych, swapa
itp. Zdecydowanie odradzam trzymanie danych na dysku EIDE; ta
technologia się po prostu nie nadaje. Co do pamięci - im więcej tym
lepiej, ale pamietaj że serwery baz danych wykorzystują pamięć głównie
jako cache dla danych z dysku. Dlatego opłaca się włożyć więcej kasy w
bardzo szybki RAID, niż na bardzo dużo pamięci. Procesory są najmniej
istotne. Rzadko kiedy bazy danych wykorzystują CPU na maksa; większość
czasu procesor i tak spędza w jądrze, czekając na komunikację z dyskiem.
Jest ona mocno upierdliwa : może zająć kilka % CPU, ale w RING0, z masą
przerwań i kopiowań danych w pamięci przez drivery. Oczywiście, czasami
CPU jest wykorzystany bardzo intensywnie do pracy z danymi w pamięci,
ale zazwyczaj na krótkie okresy czasu (zakładając, że baza jest dobrze
napisana). Zamiast najszybciej-taktowanego-procesora-na-rynku opłaca się
mieć nieco wolniejsze, ale za to 2 (lub nawet więcej) ; w ten sposób w
czasie gdy jeden procesor zajęty jest przez drivery dysków, masz jeszcze
mały zapas mocy dla innych użytkowników i innych funkcji systemu
operacyjnego (oczywiście, ten zapas jest znacznie mniejszy niż 50% , ale
ważne że w ogóle jest) . Idealna i stosunkowo niedroga maszyna to coś na
2-way PIII z chipsetem ServerWorks (ze względu na wydajność I/O) , dobrą
kartą RAID na PCI64/66Mhz z możliwością dodania kolejnej karty, obudowa
duża, dobrze chłodzona i z mocnym zailaczem. Oczywiście, droższa będzie
maszyna SMP na P4 Xeon, taka maszyna będzie również nieco szybsza
(szybkość CPU i przepustowość pamięci DDR w porównaniu do SDR). Dla
niewielkiej bazy danych możesz zastanowić się nad rozwiązaniem 2-way AMD
, ale uprzedzam że tam możliwość I/O są dosyć skromne, a właśnie I/O
(nie szybkość CPU) przesądza o szybkości serwera baz danych. Niemniej,
Tyan K7X + Adaptec "zero channel RAID" to jest jakieś rozwiązanie, które
można rozważyć.

B.



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 01:16:51 MET DST