Všechny články

Když je systém pomalý, nekupujte silnější server

2 min čtení

„Nemáme koupit výkonnější server?“

Tuhle otázku dostávám pokaždé, když se v systému něco vleče a lidi u toho několikrát denně čekají. Zní logicky — když je to pomalé, asi na to ten stroj nestačí.

Odpověď je skoro pokaždé ne, a to právě proto, že silnější stroj nezrychlí všechno stejně. Něco zrychlí znatelně. Ale to, co čeká na disk, na síť nebo na jeden jediný krok, který se nedá rozdělit, nezrychlí skoro vůbec. Zaplatíte výrazně víc a ta obrazovka se otevírá skoro stejně dlouho — a u pronajatého serveru se to platí každý měsíc znovu.

Nejdřív se měří, teprve pak se opravuje

Než začnu cokoliv upravovat, chci vědět, kde se ten čas doopravdy tráví. Ne odhadem, ne podle toho, co „vypadá pomalu“ — změřím to. U té obrazovky šlo o kreditní limit odběratele a otevírala se 38 vteřin. Z měření vyšlo, že skoro celý ten čas padal na jedno jediné místo: dotaz, který se ptal databáze na data způsobem, který ji nutil projít mnohem víc, než bylo potřeba.

Přepsal jsem ten dotaz, aby se ptal chytřeji — jinak poskládaný, se stejným výsledkem. Z 38 vteřin bylo půl vteřiny. Server se přitom nezměnil a nekupovalo se nic.

Rychleji se dá udělat i špatně

A tady přichází druhá půlka příběhu. Přepsat dotaz je šikovná věc, dokud dělá přesně to samé co předtím, jenom rychleji. Jenže se dá přepsat i tak, že začne počítat něco jiného. Ne úplně jiného, toho by si někdo všiml hned první den. Ale trochu jiného. A „trochu jiné“ vypadá na první pohled stejně jako „stejné“ — dokud se za pár měsíců nesejdou dvě čísla, která spolu nesedí, a nikdo neví proč.

Proto u takové úpravy nestačí vyzkoušet pár příkladů, které mám po ruce. Ty příklady jsem si vybral já, takže si nutně vyberu ty, na kterých to sedí. Potřebuju vědět, že nová a stará verze dávají ze své podstaty stejnou odpověď na cokoliv. Je to rozdíl mezi „zkusili jsme to a vyšlo to“ a „jinak to dopadnout nemůže“.

Ve větším to popisuju v článku o tom, jak přepsat systém tak, aby si toho nikdo nevšiml.

Co z toho má zákazník

Žádnou fakturu za nový server, který by měsíc co měsíc platil za to, aby se ta obrazovka otevírala o pár procent rychleji. Místo toho jednu konkrétní věc, která se najde měřením a opraví přesně tam, kde je. A jistotu, že systém po opravě počítá pořád to samé jako předtím — jen o dost rychleji.

Další články

  • Web bez lišty se souhlasem

    Kdykoli se u nového webu řeší návštěvnost, přijde stejná obava: že se za to zaplatí otravnou lištou k odklikání. Lišta ale není daň za měření — je za to, že se návštěvníkovi něco uloží do prohlížeče a pozná se podle toho příště.

    2 min čteníprovozsoukromi
  • AI, ze které data neodejdou

    Firmy chtějí umělou inteligenci na shrnování a třídění textu, ale bojí se poslat data ven. Jazykový model umí běžet i na vlastním počítači — odpovídá hůř než ty velké online, na spoustu úloh ale bohatě stačí.

    2 min čteníagentiprovoz