Budowa serwera pod linuxa

0

Witam
Przed wszystkim chcę wszystkich powitać, ponieważ jestem tu nowym użytkownikiem :)
Pół roku temu rozpocząłem przygodę z programowaniem w Java i napisałem już kilka aplikacji. Obecnie pracuję nad projektem, który na celu ma gromadzenie danych różnych użytkowników. Obecnie moje programy pracują na serverze Qnap ts-251, który wcześniej służył do celów osobistych a teraz już nie koniecznie. Chciałbym samemu złożyć nowy serwer który będzie go zastępować i stąd moja proźba o kilka porad.
Chciałbym się was poradzić w kwestiach co jest ważne a co mniej przy ściśle określonym przeznaczeniu urządzenia.

Wymagania:

  • praca TYLKO na linux
  • będą na nim działały programy napisane w Java, które mają przechowywać dane
  • gniazdo ethernetowe
  • możliwość podłączenia myszki, klawiatury i hdmi
  • i tutaj pytanie. Które (procesor, ram, karta graficzna, dysk) są najbardziej istotne w przypadku pakowania plików do zip. Obecnie na qnap ilość ok 1000plikow rozsypanych po folderach przy rozmiarze ok 5kB zajmuje ok 20sek. To bardzo długo.

Być może wątek jest prosty ale do niedawna myślałem że w przypadku programów nie wykorzystujących grafiki najważniejszy jest ram i procesor a ku mojemu zdziwieniu, koparki bitcoin wykorzystują grafikę :)
Dlatego czy jako server danych wystarczy konkretny procesor i ram?

Pozdrawiam i liczę na pomoc.

1

No to po kolei:
1) tak naprawdę serwer jest "zwykłym komputerem", a samo słowo serwer raczej informuje o jego przeznaczeniu. Owszem, są dedykowane kompy stricte serwerowe (jakieś arm/risc/sparc itp.), ale w większości przypadków "serwery" są kompatybilne z PC, czyli np. możesz sobie na takim serwerze postawić Windows XP i grać w biurze w pasjansa ;)
2) rozwijając pkt.1 - skoro serwer jest komputerem zbliżonym do PC, to równie dobrze za serwer może Ci robić właśnie zwykły komputer
**3) **co do karty graficznej - owszem, koparki z nich korzystają, ale zasadniczo to raczej rzadkie zjawisko. A co ważniejsze (może się to za pewien czas zmieni), póki co z tego co wiem, system sam w sobie nie umie przerzucić obliczeń na grafikę, to aplikacja musi tego chcieć i umieć z tego skorzystać. Do poczytania - https://pl.wikipedia.org/wiki/CUDA oraz https://pl.wikipedia.org/wiki/GPGPU. W każdym razie - na 99% wypasiona grafika w Twoim przypadku niczego nie poprawi, a jedynie będzie pożerać więcej prądu i bardziej szumieć wiatraczkiem ;)
4) jeśli zależy Ci na prędkości działania, to po pierwsze - więcej szybszych rdzeni, albo idąc w ogóle w kierunku rozwiązań stricte serwerowych - coś wieloprocesorowego. Do tego dużo RAM i szybkie dyski, najlepiej SSD do tego spięte w RAID. Jeśli masz możliwość, to skorzystaj z kontrolerów sprzętowych, zamiast bawić sie w soft-RAID z poziomu systemu. Opcja sprzętowa jest znacznie wydajniejsza

0

Dzięki za odpowiedź.
Dam znać co wybiorę i może coś znajdziecie co będzie do zmiany

0

Odnośnie wyboru - pytanie brzmi: jaki masz budżet, zarówno na sam sprzęt, jak i później na rachunki za prąd :P

0

Jak chcesz mieć szybkie I/O tanim kosztem to zrób RAIDa 0.
Zamień HDD na SSD i będzie jeszcze szybciej (i drożej).
Zamień SATA na PCIe i będzie jeszcze szybciej (i drożej).
RAM daj 8 GB plus to co Twoja aplikacja wymaga.
CPU to zależy - jeśli to aplikacja która ma głównie przesyłać pliki to wystarczy i5.
Jeśli ma jeszcze coś liczyć (np. kompresować) to zależy czy wielowątkowo czy nie.
Jeśli wielowątkowo to im więcej rdzeni tym lepiej.

2

Ło Panie, RAID 0 to na jakieś śmieszne zdjęcia kotów można przeznaczyć, ale nie do trzymania niczego, co ma jakąkolwiek wartość. Jeden dysk padnie i wszystko idzie się kochać... Moim zdaniem RAID 5 albo 6. Niektórzy stosują wynalazki w stylu RAID 10, ale IMHO to jest zbytnie komplikowanie sobie życia - w końcu jakby nie patrzeć masz nie jedną, ale kilka matryc ze sobą spiętych, a biorąc pod uwagę wydajność oraz "marnowanie" miejsca na redundancję, wcale to lepiej nie wypada.

0

Najprościej 1 użytkownik = 1 wątek.

Ruch nie jest jakiś mega wielki więc skupię się na obsłudze jednego wątku. Jeśli chodzi to chcę się wyrobić w całości do 10 000 chociaż z tego co mi się wydaję to z logicznego punktu widzenia na pewno tyle nie wyjdzie bo jednak najdroższym elementem wydawać by się mógł procesor a tu JEŚLI SIĘ MYLĘ POPRAWCIE MNIE ograniczamy się do max 2 rdzeni, ze względu na 1 wątek i małej ilości użytkowników. Chodzi głównie aby maxymalnie przyspieszyć obsługę jednego użytkownika.

Rozpocząłem poszukiwania od wyboru procesora i najmocniejsze znalazłem to: Intel Core i3 7350K.
Z kolei kolega który składa komputery ale nie pod kątem takim jaki ja wymagam i dlatego nie podjął się tematu poleca: AMD Ryzen Threadripper 2920X.

Nie patrzcie proszę na cenę tylko na wydajność. Skoro mój program nie potrzebuje większej ilości wątków to jest sens iść w coś wielordzeniowego? Co myślicie o tym Core i3 ...?

1

Czegoś nie rozumiem - najmocniejsze, co znalazłeś to i3, więc wyjaśnij proszę, w jaki sposób szukałeś.

0

ograniczyłem wyszukiwanie do 2 rdzeni.
Nie idziemy w ilość wątków, a w szybkość obsługi jednego

2

Jeśli pasuje Ci i3 to może kup sobie po prostu Raspberry Pi. Zestaw będzie kosztował maks 400 zł.
Obecnie mamy czasy gdy średni telefon ma 8 rdzeni, więc nie wiem co byś chciał na tym serwerze robić.
Najszybciej jednowątkowo będzie na Intelu (i7/i9).

1
Szymekbe napisał(a):

Nie patrzcie proszę na cenę tylko na wydajność. Skoro mój program nie potrzebuje większej ilości wątków to jest sens iść w coś wielordzeniowego? Co myślicie o tym Core i3 ...?

Myślę, że powinieneś spojrzeć także z perspektywy rozwoju. Może kiedyś będzie potrzeba czegoś pokroju i5 czy i7?

0
  1. Kompresję (zwłaszcza wielu małych plików) przyspieszy szybki dysk, potem szybki CPU.
  2. Serwer za 10K? Chyba szukasz armaty do zabicia muchy...
  3. Czy aby nie da się zoptymalizować algorytmu (działania Twojej aplikacji) aby uniknąć kompresji/zapisu/odczytu dużej ilości małych plików?
0

Faktycznie lepiej złożyć raz a dobrze. Algorytm swoją drogą ale skoro i mam oddać za darmo w podatkach, albo coś za to kupić to wybieram armatę :)

Poniżej wybrana przeze mnie specyfikacja. Proszę o sprawdzenie czy takie coś było by na dłużej i czy nie ma żadnych konfliktów. Przypominam że będzie pracował na Linux

Procesor:
Intel i5-9600K

Płyta:
MSI MPG Z390I GAMING EDGE AC

Ram:
2 x HyperX 16GB 2666MHz Impact Black CL15 1.2V

Dysk:
2 x Transcend 256GB M.2 PCIe x4 220S

Obudowa:
Fractal Design Core 500‎ mini-itx

Zasilacz:
zasilacz w standarcie atx, ale nie potrafię dobrać mocy

0

Przy wydajnym serwerze designerska obudowa to podstawa, wręcz element kluczowy :p

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