Nuc 7CJYH – minipočítač nejen na rendering map.

Potřebuju minipočítač s co nejmenší spotřebou a 16 GB RAM. Proč? Protože renderuju mapy pro Garmin GPS. A pokud chcete vygenerovat takové Německo, Francii, nebo Ukrajinu, tak prostě paměť potřebujete. Hodně paměti. A tak jsem hledal a hledal a nemohl najít nic, co bude mít příkon maximálně malé desítky wattů, bude umět 16 GB paměti a nebude stát desítky tisíc.

Historie mých krabiček

Původně jsem mapy generoval na Raspberry Pi, tuším druhé generace, ale s 512 MB RAM to stačilo jen na menší státy a to ještě s nejistým swapem na starém flash disku. Pak jsem koupil Odroid C2 se 2GB RAM a opět experimentoval se swapem – měl ale problém utáhnout externí disk přes USB i při použití silnějšího zdroje. Poslední krabičkou do mé sbírky tak bylo Banana Pi, taktéž se 2 GB RAM, které sice swap zvládá, ale zase má ve zvyku padat při dlouhodobé zátěži (a o hledání funkčního distra bych mohl napsat zvláštní článek).

Dalším krokem bylo využití Gůgl mráčku, který nabízí na vyzkoušení velice velkorysých $300 kreditu. Provoz v cloudu je sice ideální z mnoha hledisek, cena ale mezi ně nepatří – celé řešení by mě stálo dost přes tisícovku měsíčně a natolik zase své mapy sponzorovat nehodlám. A tak, když mi začal kredit docházet, jsem se začal poohlížet po další krabičce, co by mi mohla sedět na stole.

Výběr

Dlouho byl můj favorit Udoo Bolt v3. Čtyři logická jádra na 2,3 GHz, podpora až 32 GB RAM? Super! Od okamžité koupě mě však odradil masivní ventilátor (nechci, aby mini PC bylo moc slyšet) a hlavně cena – aktuálně kolem 8 000 Kč. Bez daně, cla či poštovného, bez krabičky, kabelů, paměti, prostě se vším všudy bych se dostal na konečnou cenu kolem 15 000 Kč. A to je za takovou srandu dost.

Alternativou by samozřejmě bylo i zakoupení notebooku z druhé ruky, který bych sehnal za pár tisícovek, přidal bych paměť a on by si spokojeně hučel někde v rohu. Asi by to nebyla špatná volba, ale odrazovaly mě rozměry (nemám ho kam dát), případná vyšší spotřeba a hlučnost při zátěži.

Pak jsem náhodou narazil na Intel NUC. Konkrétně Intel NUC 7CJYH2. „Moment, moment“, říkají si teď zarytí NUCisté. „Ty levnější NUCy mají podporu jen 8 GB RAM!“ A mají pravdu. Oficiálně.

Když už jsem byl trochu zoufalý z toho, kterou mašinku si vybrat a jestli by mi přeci jenom nestačilo těch 8 GB RAM (swap už prostě po zkušenostech používat nechci), tak jsem našel videorecenzi. A recenzent si tam jen tak nonšalantně zmíní, že měl zrovna po ruce tyhle paměti, 2×8 GB a v pohodě mu tam šlapou. No, ještě ten samý den jsem Nuc objednal.

Krabička

Intel NUC byl vyrobený s cílem udělat mini PC s opravdu minimálními rozměry, ale se zachováním částečné škálovatelnosti (disk a paměť si musíte vybrat a dokoupit sami). A minimální rozměry dává najevo už při rozbalování. V dnešní době, kdy je všechno v hromadě polystyrenu, přijde NUC v příjemné malé krabičce, do které byste na první pohled vůbec neřekli, že obsahuje celý počítač s dvoujádrovým procesorem (Intel Celeron J4005). Jasně, je to větší, než vaše Malinové Píčko, ale na to, jaký výkon v tom dostanete zabalený a je to vlastně dizajnovka, tak si myslím, že hodně dobré.

Design je promyšlený, konektory jsou přístupné (najdete tu 4x USB, 2x HDMI, Ethernet, slot na SD kartu a klasický i optický (!) výstup na reproduktory či sluchátka. Ke vnitřnostem se dostanete jednoduše pomocí křížového šroubováku – odšroubujete nožičky. Pokud se o Nuclíka bojíte, můžete si ho přivázat pomocí Kensington zámku (má na něj otvor, samotný zámek v balení nehledejte). Stav můžete sledovat pomocí dvou diod na předním panelu, které naštěstí nejsou přehnaně jasné. A pokud na stole už fakt nemáte místo ani na nic takhle malého, tak si ho můžete přišroubovat zezadu na monitor či televizi podporující VESA pomocí přibaleného adaptéru.

Instalace

Zatím to vše vypadá velice růžově, že? Po zakoupení ale vše tak růžové nebylo…

Železo

Nejprve kompatibilita. Protože jsem nevěděl o tabulce s kompatibilními komponenty, kde bych se dozvěděl, že je to blbost, koupil jsem k NUCu následující:

Takže – velké překvapení – stroj nenaběhl ani do POST, na monitoru se neukázalo prostě nic. Testoval jsem disk, zkoušel paměti po jedné, dokonce šel do servisu je nechat vyměnit za jiné, koupil jsem nový monitor (opravdu – ale stejně jsem ho dlouho chtěl 🙂 ). Bez úspěchu. Nakonec jsem šel na jistotu a koupil jiné paměti, stejné, jako měl chlapík ve video recenzi – CRUCIAL SODIMM DDR4 8GB 2400MHz – a všechno začalo šlapat jako na drátkách.

Debian

Druhým problémem byla instalace Linuxu. Protože nepotřebuju grafické rozhraní a stejně se k počítači budu připojovat jen přes SSH, chtěl jsem ověřenou klasiku – Debian. Na webu sice mají instalační obrazy pro flash disky, ale po začátku instalace to pořád hlásilo chybu CD mechaniky. Kterou jsem samozřejmě připojenou neměl, nemáme rok 1999!

Po letmém projití diskusí jsem zjistil, že nakopírování obrazu na flashku pomocí BalenaEtcher asi není Debianu dost dobrá a měl bych to dělat pomocí dd v Linuxu – čímž jsem Debian zavrhl. Pokud k instalaci Linuxu potřebujete Linux…

Ubuntu

Druhá volba bylo Ubuntu. Chtěl jsem Debianí styl, protože jsem na něj zvyklý a Ubuntu je přeci jen jedna z nejrozšířenějších distribucí pro lamy, tak by všechno mělo být ošetřené a v pohodě… ale nebylo.

Nejprve jsem zkoušel Ubuntu Server, protože to je zhruba to, co bych si představoval. Instalace bohužel spadla hned na začátku s chybou, na kterou jsem nevygůglil rozumné řešení.

OK, zkusím klasické Ubuntu s desktopem. Grafické prostředí instalátoru, ale stejná chyba.

Jdu zpět na stránku o NUCu. „Podporované operační systémy: Windows 10, 64-bit*“. Hm, hvězdička, jen by ještě mohla být někde vysvětlená, což není. S trochou snahy se ale doklikáte na stránku s přehledem kompatibilních operačních systémů, odkud se mi, už nevím jak, povedlo dostat na stránku ke stažení kompatibilního Ubuntu 20 LTS (i když se všude píše o Ubuntu 16). Konkrétně 20.04 LTS (Focal Fossa). Nemáte zač.

Pak už jen vyházet všechny grafické balíčky, což je trochu opruz (a přestal mi mezitím fungovat terminál, tak doufám, že nepřestane fungovat SSH) a mám na stole krásný skoro čistý Linux zabalený v úhledné malé krabičce, kterou se nemusím stydět ukázat sousedům (vy si se sousedy neukazujete krabičky?)

Hlučnost a spotřeba

Hlučnost byl pro mě dost důležitý aspekt vzhledem k tomu, že jsem plánoval NUC provozovat v místnosti, kde spíme. Velice příjemně mě překvapila, přes den o něm ani nevíte a to ani při zátěži – pokud nemáte absolutní ticho, tak ho prostě neslyšíte.

Bohužel v noci za úplného ticha počítač trochu slyšet je a tak jsem s ním byl z ložnice vykázán na chodbu. Ještě, že má WiFi a nemusím tahat kabely…

Co se spotřeby týče, velice příjemně mě překvapila. K dispozici mám sice jen obyčejný levný wattmetr, takže údaje je potřeba brát s rezervou, ale ukazuje 4 – 5 W bez zátěže a kolem 11 W, když Nuc jede naplno. Když vezmu průměr, je to 280 Kč za elektřinu ročně při 4 Kč/kWh, což rozhodně ujde. Možná bych mohl koupit druhý NUC na Monero…

Specifikace

  • Procesor: Intel Celeron J4005: 2 GHz, 2,7 GHz burst, 2 jádra, 10 W TDP, integrovaná grafická karta
  • RAM: DDR4-2400 1.2V SO-DIMM (není součástí)
  • Disk: Slot na 2,5″ SSD disk (není součástí)
  • Další rozhraní: 4x USB 3.0, optické S/PDIF i klasický 3,5″ jack, 2x HDMI, Ethernet, WiFi, Bluetooth 5.0…
  • Rozměry: 115x111x51mm
  • Kompletní specifikace v angličtině

Výkon

Pro mě dostatečný 😉

Ve srovnání s Google Cloudem je to prakticky nastejno – poslední render mapy ČR, který jsem tam provedl, trval 22:47 na Google Cloudu, první na NUCu 21:07, takže zlepšení v rámci statistické chyby – NUC má zhruba stejné parametry jako měla moje virtuálka u Gůglu, takže taky žádné překvapení.

Výsledky sysbench testů, pokud někoho zajímají:

Procesor

$ sysbench --test=cpu run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time


Prime numbers limit: 10000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  1622.09

General statistics:
    total time:                          10.0001s
    total number of events:              16224

Latency (ms):
         min:                                    0.61
         avg:                                    0.62
         max:                                    0.77
         95th percentile:                        0.62
         sum:                                 9996.22

Threads fairness:
    events (avg/stddev):           16224.0000/0.00
    execution time (avg/stddev):   9.9962/0.00

Paměť

$ sysbench --test=memory run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time


Running memory speed test with the following options:
  block size: 1KiB
  total size: 102400MiB
  operation: write
  scope: global

Initializing worker threads...

Threads started!

Total operations: 39891476 (3988379.62 per second)

38956.52 MiB transferred (3894.90 MiB/sec)


General statistics:
    total time:                          10.0001s
    total number of events:              39891476

Latency (ms):
         min:                                    0.00
         avg:                                    0.00
         max:                                    0.06
         95th percentile:                        0.00
         sum:                                 5256.56

Threads fairness:
    events (avg/stddev):           39891476.0000/0.00
    execution time (avg/stddev):   5.2566/0.00

Disk

$ sysbench --test=fileio --file-test-mode=rndrw run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time


Extra file open flags: (none)
128 files, 16MiB each
2GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...

Threads started!


File operations:
    reads/s:                      4938.98
    writes/s:                     3292.65
    fsyncs/s:                     10539.58

Throughput:
    read, MiB/s:                  77.17
    written, MiB/s:               51.45

General statistics:
    total time:                          10.0080s
    total number of events:              187775

Latency (ms):
         min:                                    0.00
         avg:                                    0.05
         max:                                    4.25
         95th percentile:                        0.14
         sum:                                 9819.36

Threads fairness:
    events (avg/stddev):           187775.0000/0.00
    execution time (avg/stddev):   9.8194/0.00

WiFi

Možná trochu zbytečný test, ale rychlost WiFi – cca 5 m přes zeď k AP (signál -57 dB):

$ iperf3 -c 10.42.0.7 -t 60
Connecting to host 10.42.0.7, port 5201
[  4] local 10.42.0.14 port 44999 connected to 10.42.0.7 port 5201
[...]
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-60.01  sec  1.40 GBytes   200 Mbits/sec  192             sender
[  4]   0.00-60.01  sec  1.40 GBytes   200 Mbits/sec                  receiver

Testováno oproti Banana Pi připojenému kabelem.

Cena

Na kolik mě celá ta sranda přišla?

Cenu nového monitoru nepočítám 😉

Napsat komentář

Vaše emailová adresa nebude zveřejněna.