System ERP z bazą danych Firebird na linuksie - Serwer vs PC

0

Witam.
Wątpię, aby ten temat nadawał się na kategorię Bazy danych, więc wrzucam tutaj.

Wstęp

Muszę "przyspieszyć" pracę programu (nie mojego), który korzysta z systemu linux (chyba ubuntu server) oraz bazy danych Firebird.
Baza zajmuje 4GB. Szczególnie idzie to odczuć przy wczytywaniu listy towarów, gdzie tego jest masa + obrazki.

Pytania

**SSD **

  1. Czy NVMe to konieczność?
  2. Czy zwykłe SATA III wystarczy czy nawet pójść w talerzyki od WD np. Red lub Black?
  3. Jak linux sobie radzi z NVMe?

Procesor

  1. Xeon vs i7
  2. Może Ryzen?

Firebird - "minimalne" wymagania
15MB hard disk space
486 CPU or better
12MB RAM

Chociaż nie bardzo wiem jak stare jest to FAQ
What are the system requirements for Firebird?

Zastanawia mnie również to zdanie
Consider at least 2GB RAM for 200MB database as appropriate.

Czy ktoś jest w stanie mi doradzić jak taki problem rozwiązać? Czy w ogóle kwestia sprzętu jest problemem?

1

Trzeba zacząć od analizy gdzie tak naprawdę jest problem. Ja bym zaczął od bazy i analizy zapytań. Prawdopodobnie tu jest problem. Jak to jest gruby klient to może też być problem na sieci. Może się okazać że zmiana sprzętu nic nie da bo np 32 bitowa baza obrał już wykorzystuje wszystko co moze

0

Sieć jest gigowa i wszystkie komputery są nowe i takie karty sieciowe mają. Jeszcze rok temu wszystko chodziło "znośnie". Producent oprogramowania zaproponował rozwiązanie, ale podszedł do tego bardzo marketingowo, ponieważ próbuje wcisnąć serwer za 32k...
Na tę chwilę mamy jedno wyjście, aby sprawdzić, czy to jest kwestia sprzętowa. Kupimy PC z i7 - 8700K lub 9700K, 32GB RAM, NVMe, zainstalujemy linuxa oraz bazę danych do programu i sprawdzimy co się będzie działo. Jeśli dalej będzie "mulił" to ten PC pójdzie do grafika, a problem będziemy rozwiązywać dalej.

Tak czułem, że temat jest głębszy i takie kupienie sprzętu może nic nie dać. I faktycznie nie wpadłem na to, że to może być 32bit, system ma już swoje lata.

2

Poszukaj gdzieś czy nie da się na tym firebirdzie jakieś logow zrzucić z najwolnieszymi zapytaniami. 4gb baza to nie jest jakoś potwór żeby wymagał jakoś mega parametrów . Na średniej klasy Pc ona się będzie mieścić w ramie

0

Też mi się tak wydaję, dzięki za pomoc ;-)

2

Ja bym proponował zacząć od tego https://ib-aid.com/en/articles/45-ways-to-speed-up-firebird-database/ tak gdzieś od 7 kroku (czas na upgrade sprzętu przyjdzie na końcu).

Następnie trzeba się zając samymi zapytaniami - od wersji 2.5 FB ma coś takiego jak Firebird Trace Manager - narzędzie do pobrania tu: https://www.ibphoenix.com/download/tools/misc jak tego używać tu: http://www.ibphoenix.com/resources/documents/search/doc_3
Najpierw wyciągasz zapytania, które zabijają bazę, potem sprawdzasz ich plan a na końcu próbujesz je przyśpieszyć indeksami. Pamiętaj jednak, że 100 indeksów na jednej tabeli potrafi wydłużyć znacznie insert/update/delete na tejże tabeli.

Może się też okazać, że żadne POJEDYŃCZE zapytanie nie wykonuje się długo, ale np. pobierana jest lista towarów i do każdego towaru OSOBNYM zapytaniem wyciągany obrazek. Jeśli obrazki masz w bazie to już to jest lekkie przegięcie projektowe. Jeśli dodatkowo każdy obrazek pobierany jest osobnym zapytaniem to choćbyś tam miał serwer i za 100k pln to problem jest gdzie indziej.

Jeśli zawiedzie tuning bazy i zapytań przyjdzie czas na sprzęt. Taki mały hint - FB jest też pod windowsa i dla programu nie ma znaczenia na jakim systemie stoi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1