Portál AbcLinuxu, 2. května 2025 10:00
Pro komunikaci mezi dvěma procesy je možné (kromě opravdové IPC) použít i sockety. V 1999 jsem s údivem zjistil, že TCP spojení má řádově větší režii než unixové sockety - pokud se dobře pamatuju tak v roce 1999 byl rozdíl i 100 milisekund. Protože opět potřebuju přehazovat data mezi dvěma procesy, zkusil jsem si změřit, jak jsou na tom počítače dneska.
S oblibou používám Webware for Python, který pro komunikaci mezi webovým serverem a aplikačním serverm používá standardně TCP socket. Nastal čas, kdy v serveru něco drhne a protože náhrada TCP socketu za UNIXový je poměrně jednoduchá, zkusil jsem si porovnat, jestli se mi investovaný čas někde vrátí a jestli vůbec nějaký čas ušetřím.
Testovací úkoly jsou: navázat spojení na socket a poslat do něho data (1MB). Testoval jsem UNIX socket a TCP socket na 127.0.0.1
U dnešních počítačů s dnešními jádry se už takovými blbostmi nemá cenu zabývat .
V roce 1999 byl však rozdíl až 100ms, což už běžný uživatel na interaktivitě programu poznal. V mezičase se asi zlepšily jaderné algoritmy a také výkon procesorů.
socket_speeds.txt - měřicí program, pro data jsem použil aritmetický průměr ze 100 měření.
Disclaimer: Cílem nebylo přesně změřit hodnoty propustnosti/latence obou typů socketů, ale pouze zjistit, jestli nahrazením TCP socketu UNIXovým ušetřím nějaký user time. Použitá metoda je hrubě nevědecká a není ani přesná, pro orientaci mi však stačí.
Disclaimer 2: Dočetli jste zápisek v kategorii Externí paměť. Tato kategorie slouží jako sklad pro to, co si chci někam napsat a zatím nemám kam. Pokud tady není myšlenka, je to v pořádku.
Tiskni
Sdílej:
Přestože se Unix sockety nevyplatí, X nebo MySQL je stále používají. Proč?Příspěvek i komentáře jsou, jestli se nepletu, o Linuxu, ale MySQL nebo X běží i na jiných platformách (např. právě *BSD). Tam může být rozdíl ve výkonu znatelnější.
Přestože se Unix sockety nevyplatí, X nebo MySQL je stále používají. Proč?Me jako hlavni vyhoda UNIX socketu prijde, ze mohu pouzit unixova prava pro rizeni pristupu a nemusim se o opravneni starat v programu.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.