Wątek przeniesiony 2023-03-21 12:33 z Społeczność przez Adam Boduch.

Pomoc w dobraniu serwera

0

Cześć,

zwracam się z luźnym wątkiem dot. pomocy w dobraniu serwera. Mamy w firmie kilka tysięcy niewielkich (< 3mb) plików tekstowych, które przez swoją formę nijak nie dadzą się przerobić na bazę danych. Chciałbym postawić serwer (fizyczny) na którym mógłbym przeszukiwać sobie te pliki za pomocą grepa czy TextCrawlera. Moje pytanie jaki serwer powinienem kupić aby efektywnie i w miarę szybko przeszukać takie pliki tekstowe? Obecnie po prostu robię to na laptopie za pomocą wspomnianego już TextCrawlera, ale trwa to trochę za długo...

Dzięki z góry za pomoc!

1

Ja bym kupił zwyczajny używany PC ze slotem NVMe, zamontował tam nowy dysk 2TB i ew. skonfigurował jakiś off-site backup, jeśli te pliki są wartościowe / ciężkie do odtworzenia.

Jeśli koszty są istotne, pewnie lepiej wyjdzie kupić SSD i podpiąć po SATA - powinno dać się w ten sposób zaoszczędzić kilka stówek, kosztem wolniejszego wyszukiwania (SATA ma maksymalną przepustowość ok. 300 MB/s or so, podczas gdy dyski NVMe wyciągają i 7 GB/s).

1

Próbowałeś użyć https://github.com/BurntSushi/ripgrep ? Visual studio code domyslnie używa tego programu więc możesz spróbować czy wyszukiwanie w edytorze działa szybko czy nie.
Co do serwera to na początek spróbowałbym opcji laptopowej. Może używasz wolnego dysku albo jakiś antywirus świruje?

0

A czemu nie da się tego wrzucić do bazy?
Możesz wrzucić jakiś przykład plików i sposobu wyszukiwania w nich?
Zacząłbym od ustalenia wymogów a potem HW do tego.

0
Patryk27 napisał(a):

Ja bym kupił zwyczajny używany PC ze slotem NVMe, zamontował tam nowy dysk 2TB i ew. skonfigurował jakiś off-site backup, jeśli te pliki są wartościowe / ciężkie do odtworzenia.

Jeśli koszty są istotne, pewnie lepiej wyjdzie kupić SSD i podpiąć po SATA - powinno dać się w ten sposób zaoszczędzić kilka stówek, kosztem wolniejszego wyszukiwania (SATA ma maksymalną przepustowość ok. 300 MB/s or so, podczas gdy dyski NVMe wyciągają i 7 GB/s).

Podoba mi się ta opcja z NVMem, szczególnie że może będę miał budżet na to. Pytanie tylko co jeszcze może być potencjalnie wąskim gardłem szybszego przeszukiwania plików? Tj. na co jeszcze zwrócić uwagę, jeśli chciałbym zmaksymalizować przeszukiwanie tych plików?

jurek1980 napisał(a):

A czemu nie da się tego wrzucić do bazy?
Możesz wrzucić jakiś przykład plików i sposobu wyszukiwania w nich?
Zacząłbym od ustalenia wymogów a potem HW do tego.

Wolałbym ich nie wysyłać, bo wiadomo RODO srodo... Generalnie chodzi o to, że tego typu pliki były tworzone niemalże ręcznie, można by rzec że coś w rodzaju pamiętników (na przykład reakcja na tickety, opisy sprawy itp.), przez co ich forma jest taka niedoogarnięcia, a czasami się nam przydaje backstory. Generalnie szkoda gadać...

1

co jeszcze może być potencjalnie wąskim gardłem szybszego przeszukiwania plików? Tj. na co jeszcze zwrócić uwagę, jeśli chciałbym zmaksymalizować przeszukiwanie tych plików?

W miarę spoczko dysk (dowolny NVMe powyżej 3 GB/s odczytu będzie very ok), przynajmniej czterowątkowy i5/i7 (lub podobny procesor), coby wykorzystać możliwości ripgrepa (ew. innych programów potrafiących grepować wielowątkowo) i jakieś minimum 4 GB RAMu, tyle powinno wystarczyć aby mieć dobry sprzęt na takie wyszukiwania.

Można by się jeszcze bawić w rzeczy w stylu "a czy warto zfs z recordsize=3 MB, bo pasuje do średniego rozmiaru pliku", ale to już będzie imo sztuka dla sztuki.

0
Patryk27 napisał(a):

co jeszcze może być potencjalnie wąskim gardłem szybszego przeszukiwania plików? Tj. na co jeszcze zwrócić uwagę, jeśli chciałbym zmaksymalizować przeszukiwanie tych plików?

W miarę spoczko dysk (dowolny NVMe powyżej 3 GB/s odczytu będzie very ok), przynajmniej czterowątkowy i5/i7 (lub podobny procesor), coby wykorzystać możliwości ripgrepa (ew. innych programów potrafiących grepować wielowątkowo) i jakieś minimum 4 GB RAMu, tyle powinno wystarczyć aby mieć dobry sprzęt na takie wyszukiwania.

Można by się jeszcze bawić w rzeczy w stylu "a czy warto zfs z recordsize=3 MB, bo pasuje do średniego rozmiaru pliku", ale to już będzie imo sztuka dla sztuki.

Super, bardzo ładnie dziękuję Ci za informacje i cierpliwość :) Temat można chyba zamknąć.

0

ja bym patrzył przy dysku nie na sama prędkość sekwencyjna bo taka jest podawana ale na random read + iops

2

Wolałbym ich nie wysyłać, bo wiadomo RODO srodo

OK. Chodzi bardziej o to czy szukasz np. wszystkich plików ze słowem Rodo. Do czego zamierzam. Możesz np. użyć elasticsearch. Możesz użyć jakiegoś Redisa i trzymać to nawet w RAMie i przeszukiwać przez:
$ redis-cli --scan --pattern "rodo*"
Można by to wepchać do jakiegoś RAMdrive przy starcie OS w końcu 1000 plików po 3MB to 3GB.

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