Po co to komu?
Chciałbym podzielić się z wami na czym na co dzień pracuje (może akurat ktoś jest ciekaw?)
Wątek jest dość długi, jeśli ktoś chciałby popatrzeć na zdjęcia :framed_picture: to są na końcu.
Starałem się też opisać swoje powody wyborów, sposób myślenia i analizę którą zwykle stosuję do większości swojej pracy jednak bardzo rzadko publikuję posty w tej formie na łamach forum, jest to też pewnego rodzaju eksperyment i próba sprawdzenia samego siebie i liczenie na pewnego rodzaju feedback od Was.
Wymagania przed zakupem
Przed złożeniem sprzętu zastanowiłem się do czego ma mi służyć. Wymarzona specyfikacja w głowie mówiła mi coś takiego:
- szybkie ładowanie IDE oraz mały czas na buildy aplikacji nawet w przypadku javy
- przy ograniczonym czasie na wiele projektów liczy się każda minuta spędzona na kodzie, nie na czekaniu aż się zbuduje
- szybki start OS
- w razie awarii w lvlup trwa ona krócej gdy mogę szybciej reagować
- możliwość uruchomienia bardzo dużej ilości narzędzi, kontenerów jednocześnie czy emulacja małego datacenter w sporej ilości VM
- tworzenie aplikacji czy rozwiązań jest znacznie szybsze jeśli da się to robić lokalnie
- szybkie i dokładne renderowanie scen 3D np. w Blender
- póki co trochę jako hobby, powoli uczę się grafiki 3D
- zapas mocy dla niezoptymalizowanych aplikacji
- solidność i zapas mocy tak aby służył przez ~5 lat
- w wolnym czasie chęć uzyskania najwyższych detali przy ~120 FPS dla kilkuletnich gier
- dość mała obudowa
Niestety wyszło na to że w takim razie potrzebuje trochę narzędzia do wszystkiego i kompromisy typu CPU i GPU ze średniej półki tu nie zadziałają. Przyznam że trochę naciąłem się na niezoptymalizowane aplikacje (głównie gry), więc trochę będzie to strzelanie do muchy z armaty ale przynajmniej będzie pewność że mocy nie zabraknie.
CPU
Biorąc pod uwagę ilość dziur w procesorach Intela nie brałem za bardzo ich produktów pod uwagę. Sprawdziłem benchmarki i różnice w zasadzie występowały tylko w grach, na dodatek tylko kilka FPSów. Ryzen za to lepiej radził sobie z pracą na wielu wątkach, jako że chciałem renderować i uruchamiać wiele rzeczy na raz, AMD wydało się być lepszym i tańszym rozwiązaniem.
Chłodzenie CPU
Mogłem wziąć bardzo rozbudowane chłodzenie powietrzne ale chciałem mieć absolutną ciszę przy pracy więc wziąłem chłodzenie wodne ze sporą chłodnicą. Było trochę gimnastyki żeby mieścić to w tej obudowie którą wybrałem ale wiedziałem na przykładzie innych buildów że jest to możliwe. Nie chciałem żadnych customów, wziąłem prosty gotowy zamknięty zestaw który da szansę na brak zmartwień o przecieki.
Płyta główna
Sporo wymagań, jeśli sprzęt ma być future proof to obowiązkowo USB-C i obsługa 10Gbps. Naciąłem się kiedyś na MSI i ich nieuznawanie gwarancji, nie mogło być więc z tej firmy. Gigabyte był ok ale bez szału. Poprzednio miałem Asusa i był spoko, szukałem więc od tego producenta.
Najprostszy i najmniej awaryjny setup z dwoma systemami to jeden dysk na jeden system. SATA to fajny standard jednak jego prędkość zostawmy dla HDD więc musiały być dwa sloty M2. Przydałoby się fajne audio a totalnie zbędne w PC mi są rzeczy typu bluetooth czy wifi - podłączam kabel, jest prościej i wydajniej. Wygląda na to że płyta główna która wybrałem była w dwóch edycjach, ta droższa zamiast jednego slotu M2 miała włożoną kartę z wifi i bluetooth, ta tańsza wolne dwa sloty M2. Wybrałem tą drugą.
RAM
Pamięć RAM to droga rzecz biorąc pod uwagę dziwne układy firm na rynku. Trzeba było przeboleć.
Co do ilości RAM, w poprzednim kompie którego składałem w 2012 miałem 16GB RAM, sporo osób mi mówiło że to za dużo. Mi jednak często udało się dobić do maxa, nie był to RAM zmarnowany, zawsze przecież robi też jako cache.
Tu miała być ewolucja i zapas mocy. Zastanawiałem się nad 32 i 64GB. Stwierdziłem że 64GB to trochę overkill, dołożę jak będę dużo bawić się VM czego nie robię aż tak często. 32GB musi wystarczyć, w razie czego są dwa sloty żeby to podwoić.
Było sporo taktowań do wyboru, wziąłem takie trochę szybsze ale nie takie kosmicznie drogie, sądzę że to w miarę optimum uwzględniając ich dość niskie opóźnienia.
GPU
W całej swojej historii kart graficznych zawsze miałem tylko albo budżetową albo taką z średnio-wyższej półki. Teraz chciałem coś bardziej high-end, zwłaszcza że można na nich też liczyć, nie tylko grać.
AMD mnie nie przekonało, pamiętam też wiele narzekań innych osób że mieli problemy na Linuxie a przecież Ubuntu to system z którego korzystam najwięcej. Sterowniki Nvidia może nie są rewelacyjne ale zawsze robiły robotę plus jest obsługa CUDA.
Seria RTX nie była dużo droższa od poprzedniej a miała więcej możliwości czy to do liczenia czy ray tracingu. Zdecydowałem więc że biorę coś z serii RTX 2000. 2080Ti była trochę za droga, stosunek wydajności do ceny nie był zbyt optymalny. 2070 była za droga jak na taką dość przeciętną wydajność, jeśli bym ją wziął, nie ma mowy aby starczyła na te 5 lat które optymistycznie zakładałem.
Zdecydowałem się więc na opcję środkową czyli RTX 2080. Cena do wydajności wydawała się całkiem rozsądna, miała też szansę zasilić pikselami monitor 1440p 144Hz czy ewentualnie w przyszłości dawać radę z VR
Dyski
Ma sobie dobrze radzić nawet z dużą ilością małych plików, szybki zapis i odczyt liniowy, zajmować mało miejsca w obudowie. Oczywistym wyborem był dla mnie M2 NVMe.
Było sporo modeli ale tylko seria od Samsunga miała bardzo rozsądne parametry w swojej cenie. 970 Evo Plus wydawało mi się korzystniejszym wyborem niż 970 Pro. Pro było faktycznie szybsze ale nie wyglądało mi to na warte tej dopłaty, nie mam potrzeby ogromnej ilości zapisów więc ta zaleta wydawała mi się też zbędna.
Zasilacz
Mam lekki uraz na punkcie zasilaczów. W jednym z poprzednich PC przy włączeniu przywitał mnie smród palonych kabli - był to spalony zasilacz.
W przypadku tego często zapomnianego komponentu, jest szansa że w przypadku awarii zabierze ze sobą cały sprzęt. Mówiąc zabierze mam na myśli spalenie reszty sprzętu. Oszczędzanie na zasilaczu w przypadku dość znacznej ceny reszty sprzętu wydawało mi się naiwne.
Druga sprawa to energooszczędność. Jeśli wybiorę tańszy zasilacz o mniejszej efektywności energetycznej, to w perspektywie kilku lat zapłacę więcej za prąd czyli to żadna oszczędność.
Postanowiłem więc wybrać trochę mniej mocy ale chyba w zasadzie najlepsze co było dostępne na rynku:
- certyfikat 80 PLUS Titanium czyli najwyższy możliwy współczynnik efektywności na rynku
- super cichy z wentylatorem 135mm i trybem pół pasywnym z możliwością jego kontroli
- bardzo stabilne napięcia
- 100% modularne okablowanie
- 12 lat gwarancji
Trochę osób zarzuciło mi że ten zasilacz ma trochę za mało mocy jak na taki sprzęt. Nie zgodzę się, ma całkiem spory zapas. Dodatkowo przy bardzo wnikliwych testach wygląda na to że w przypadku tego modelu są montowane elementy które mogłyby dać radę nawet w zasilaczu 1000W więc powinno to dać dużą trwałość i przeżyć resztę elementów dając dobre napięcie.
Obudowa
Początkowo plan zakładał obudowę NZXT MiniITX.
Porzuciłem ten pomysł gdy zobaczyłem ile gimnastyki jest przy tej wielkości karcie graficznej oraz chłodzeniu wodnym. W zasadzie z tego co pamiętam to w przypadku obudowy H200i GPU w zasadzie praktycznie dotykało chłodnicy na froncie 😰 Dodatkowo jak pomyślałem ile w stresie to musi odprowadzić ciepła w tak małej obudowie to zwątpiłem, wziąłem obudowę i płytę główną MicroATX, w razie czego jest jeszcze drugi slot PCIe
Systemy operacyjne
Główny system to Ubuntu, czasami po prostu zmieniam środowisko graficzne, głównie mam problem z nimi, nie z samą dystrybucją. Windows to nie jest dla mnie narzędzie pracy poza grafiką czy powiedzmy streamowaniem.
Jako że nie wszystko działa na Ubuntu a dominujący system na rynku to Windows, na niego też wydaje się większość gier czy np. Photoshopa to nie było za bardzo wyboru poza Win 10.
Czytałem że Win 10 Pro jest trochę mniej upierdliwy od Home i ma się trochę większą kontrolę nad aktualizacjami bez kombinowania i łamania licencji. Dla mnie oznaczało to że jeśli mogę opóźnić aktualizację nowych opcji to mam więcej czasu zanim nastąpi jakaś katastrofa przy update która będzie wymagać reinstalacji czyli mojego cennego czasu.
Do wyboru została kwestia BOX czy OEM. W razie czego chciałem support Microsoftu gdyby coś poszło nie tak plus możliwość normalnej odsprzedaży gdyby mi się jednak nie spodobał, wziąłem więc wersję BOX. Nie mam napędu optycznego i nie chciało bawić mi się zgrywanie .iso, wybrałem wersję na pendrive.
Specyfikacja końcowa
Komputer złożyłem 12.03.2019, mniejszy dysk dodałem później bo 11.09.2019. Przy okazji włożenia drugiego dysku zrobiłem solidne sprzątanie oraz kilka zdjęć więc pomyślałem że w końcu uda się stworzyć taki wątek co planowałem od marca.
Używam tego komputera już kilka miesięcy więc mogę dać mu swój "atest" że działa jak trzeba jako całość co nie zawsze jest widoczne w samych osobnych elementach. Publikuje tu jego specyfikację i spostrzeżenia głównie po to aby w razie problemów z nim mieć tu całą specyfikację i gotowe modele komponentów do kopiuj-wklej czy też co zrobić po reinstalacji.
| Rola | Model | |---|---|---| | CPU | AMD Ryzen 7 2700X | | CPU Cooler | NZXT Kraken X62 RGB 2x140mm| | Płyta główna | ASUS TUF B450M-PRO GAMING| | RAM | G.SKILL 32GB 3000MHz Ripjaws V Red CL15 (2x16GB) | | GPU | Gigabyte GeForce RTX 2080 WINDFORCE 8GB GDDR6 | | Dysk pod Win 10 | Samsung 1TB M.2 PCIe NVMe 970 EVO Plus | | Dysk pod Kubuntu 18.04 | Samsung 500GB M.2 PCIe NVMe 970 EVO Plus | | PSU | Seasonic Prime Ultra 650W 80 Plus Titanium | | Obudowa | NZXT H400i matowa czarna USB 3.1 | | Pomocniczy OS | Microsoft Windows 10 PRO PL 32/64bit BOX USB |
Spostrzeżenia po zakupie
CPU
Druga generacja Ryzen mimo topowego modelu jest całkiem chłodna.
Chłodzenie wodne które wybrałem dla CPU jest w zasadzie overkillem ale dzięki temu niezależnie od obciążenia czy 0% czy 100% - jest tak samo cicho.
Chłodzenie
Wystarczą nawet najniższe obroty dwóch potężnych wentylatorów 140mm na froncie które przy okazji wtłaczają powietrze dla reszty. Jako że powietrze do obudowy wchodzi tylko jedną drogą, dobrze mieć na froncie filtr przeciwkurzowy który zbiera tego całą masę.
Montaż to była dla mnie udręka, nawet w dwie osoby. Ewidentnie wcisnąć te chłodzenie w tą obudowę to już końce jej możliwości.
EDIT 28.12.2019 Wygląda na to że standardowa pasta/pad na bloku wodnym raz że nie była zbyt dobrej jakości, dwa popełniłem błąd przy montażu. Zmiana pasty na dość dobrą (wątek niżej) i poprawny montaż
https://lvlup.rok.ovh/t/jaka-pasta-termoprzewodzaca/13077
ładnie ustabilizowały i zmniejszyły temperatury. Poprzednio 1 minuta 100% CPU rozgrzewała go do 61°C. Niestety nie testowałem jak było dłużej, zakładałem że rzeczywista temperatura to 71°C ze względu na dziwne wskazania Ryzenów.
Po zmianie pasty jest 60-61°C po ponad 2h 100% CPU przy niesłyszalnym szumie wentylatorów. Wtedy ciecz chłodząca ma około 38°C.
Na idle pulpicie przy 2-9% CPU temperatura procesora to ~30°C, ciecz 27°C.
Te krótkie testy przeprowadzałem przy temperaturze pokojowej 20°C
GPU
Generalnie najbardziej żałuje że wziąłem ten konkretny model GPU. Były też modele chłodzone wodne jednak z dość zaporową ceną, coś za coś. Ale jeśli chodzi o samą wydajność jest dobrze :slight_smile:
Linux
Najbardziej problematyczne na początku było zmuszenie do działania pod Ubuntu. Wersja własnościowych sterowników w Ubuntu 18.04 wygląda na to że nie obsługuje konkretnie serii RTX. Trzeba było zainstalować sterowniki ze strony producenta. Końcowo przy reinstalacji systemu miałem już wszystko opanowane i okazało się że to żaden problem - 3 komendy, instalacja jednej paczki i po reboot już działa jak trzeba i to łącznie z obsługą CUDA.
Cicha grzałka
Producent grafiki chwali się że grafika jest dość cicha. Faktycznie jest cicha jednak się gotuje, przy lecie i load 95-98% GPU karta potrafiła mieć czasami nawet z 75°C. Szybka kalkulacja mówi mi że im gorętszy komponent tym szybciej może ulec awarii. Przy pomocy MSI Afterburner na Windows (gdzie najwięcej używam GPU) ustawiłem własny profil chłodzenia. Generalnie dużo szybciej przełącza się z chłodzenia pasywnego na aktywne, używa też więcej obrotów. Generalnie jest głośniejsza jednak używam słuchawek z aktywnym wyciszaniem otoczenia więc i tak tego nie słyszę. Przy grze na głośnikach (np. jak gram razem z @Aylin w gry fabularne) wracam do standardowego profilu producenta na te kilka godzin dla ciszy. Przy grach multi używam swojego głośniejszego profilu.
Sloty NVMe
Drugi slot M2 akurat zakrywa GPU. Dodanie drugiego dysku do już złożonego zestawu jest trochę bardziej problematyczne niż powinno. Wymontowywanie i montowanie GPU jest dla mnie osobiście najbardziej stresujące jako że karta graficzna to najdroższy komponent, jednocześnie dość duży, ciężki i delikatny. Raz że można dość łatwo ją zepsuć, dwa że można zniszczyć nią coś innego.
Obawiałem się że drugi dysk będzie się gotować przez GPU który go przykrywa, nie ma jednak tego problemu.
Zużycie energii
W sporym stresie zużywa z gniazdka około 320 W. Jest to wartość na oko, mogę potem zaktualizować ten wątek z dokładnymi pomiarami oraz rodzajem obciążenia.
Skrypty
Jako że środowisko pracy potrzebuje trochę narzędzi, ich instalacja po kilku reinstalacjach systemu jest męcząca. Dystrybucje linuxa nie mają problemu z automatyzacją tego.
Kubuntu 18.04
#!/bin/bash
echo "This script is for Kubuntu 18.04 LTS 64bit"
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit
fi
# packages - must have
apt-get install -y nano ncdu htop iotop iftop nload tmux rsync git curl wget pwgen jq
# packages - optional
apt-get install -y tcpdump openssh-server fail2ban lm-sensors smartmontools stress sqlite3 sponge
# packages - crypto stuff
apt-get install -y gnutls-bin
# packages - desktop stuff
apt-get install -y tilix redshift-gtk remmina wireshark vlc gedit cifs-utils chromium-browser gnome-calculator evince gnome-mpv gnome-disk-utility
#nvidia drivers with CUDA support
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
apt-get update
apt-get -y install cuda
#keepassxc
add-apt-repository ppa:phoerious/keepassxc
apt update
apt-get install keepassxc -y
#insync
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ACCAF35C
echo "deb http://apt.insynchq.com/ubuntu bionic non-free contrib" > /etc/apt/sources.list.d/insync.list
apt-get update
apt-get install -y insync
#git LFS
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
apt-get install -y git-lfs
#ansible
apt-get install -y software-properties-common
apt-add-repository --yes --update ppa:ansible/ansible
apt-get -y install ansible
#snaps
snap install bitwarden
snap install --classic rclone
snap install --classic blender
snap install --classic go
snap install --classic kubectl
snap install --classic helm
snap install --classic goland
snap install --classic phpstorm
snap install --classic webstorm
snap install --classic intellij-idea-ultimate
snap install --classic android-studio
snap install --channel=extended hugo
snap install docker
snap install tldr
snap install gimp
# KVM VMs
apt-get install -y qemu libvirt-bin ebtables dnsmasq-base virt-manager
#run this as normal user
#adduser `id -un` libvirt-qemu
# Vagrant
# https://www.vagrantup.com/downloads.html
wget https://releases.hashicorp.com/vagrant/2.2.6/vagrant_2.2.6_x86_64.deb
sudo dpkg -i vagrant_2.2.6_x86_64.deb
# https://github.com/vagrant-libvirt/vagrant-libvirt
apt-get install -y qemu libvirt-bin ebtables dnsmasq-base libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev
vagrant plugin install vagrant-libvirt
# NZXT
apt install -y python3-pip python3-dev libusb-1.0-0-dev libudev-dev build-essential python3-venv
#run as user
#python3 -m pip install --user pipx
#python3 -m pipx ensurepath
#pipx install liquidctl
# mumble
add-apt-repository -y ppa:mumble/release
apt-get update
apt-get install -y mumble
#ssh client tweaks
sed -i '/ServerAliveInterval/d' /etc/ssh/ssh_config
echo "ServerAliveInterval 20" >> /etc/ssh/ssh_config
# Manual OS settings
## System settings
### Appearance -> Workspace Theme -> Breeze Dark
### Workspace -> Search -> Disable File Search
### Hardware -> Power Management -> Button events handling -> When power button pressed -> Suspend
## Tilix
### Preferences -> Appearance -> Theme variant -> Dark
### Preferences -> Profiles -> Default -> Color -> Orchis
## Search bar
### Global shortcuts -> Tilix -> Launch > Ctrl + Alt + T
### Global shortcuts -> Plasma -> Show desktop > Meta + D
##Screen edges > right top corner -> no action
##Settings -> Power management -> Energy saving -> Suspend session -> After 30min
#KDE taskbar
##Right click on speaker icon -> Audio volume settings -> Audio Volume tab (on left) -> Advanced tab (on right)
# - automatically switch all running streams when a new output becomes available
# - switch all devices to input or output if necassary
Windows 10
TODO Muszę poczekać aż system padnie, przygotuję skrypty podczas drugiej instalacji.
Foto
Na zdjęciach widać kurz, tylko totalna nówka nie ma kurzu, te narzędzie pracy jest codziennie używane przez wiele godzin więc wymaga to trochę zrozumienia ;)
EDIT 06.01.2020 Nalepka z szyby usunięta 😅