abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:00 | IT novinky

    DuckDuckGo AI Chat umožňuje "pokecat si" s GPT-3.5 Turbo od OpenAI nebo Claude 1.2 Instant od Anthropic. Bez vytváření účtu. Všechny chaty jsou soukromé. DuckDuckGo je neukládá ani nepoužívá k trénování modelů umělé inteligence.

    Ladislav Hagara | Komentářů: 1
    včera 14:22 | IT novinky

    VASA-1, výzkumný projekt Microsoftu. Na vstupu stačí jediná fotka a zvukový záznam. Na výstupu je dokonalá mluvící nebo zpívající hlava. Prý si technologii nechá jenom pro sebe. Žádné demo, API nebo placená služba. Zatím.

    Ladislav Hagara | Komentářů: 3
    včera 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 01:00 | Nová verze

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    18.4. 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    18.4. 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    18.4. 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 13
    18.4. 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 2
    18.4. 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 10
    18.4. 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    KDE Plasma 6
     (68%)
     (11%)
     (2%)
     (20%)
    Celkem 566 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Performance tuning - TCP vs UNIX sockets

    28.5.2007 23:55 | Přečteno: 1853× | Externí paměť | Výběrový blog

    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

    Notebook: Mobile Pentium @ 1GHZ (dual-core)

    Stolní počítač: Pentium II, 231MHz

    Ostrý server: Pentium4 1.8Ghz

    Závěr

    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. :-)

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    xxx avatar 29.5.2007 00:00 xxx | skóre: 42 | blog: Na Kafíčko
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Jeste by bylo zajimave zjistit, jak to dopadne pokud tech scketu bude treb 1000. Ale musim rict, ze me prekvapilo, ze ty rozdily jsou tak male.
    Please rise for the Futurama theme song.
    29.5.2007 00:03 qiRzT | skóre: 14 | blog: U_Marvina
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Zkusím si tipnout: nemůže to souviset s tím, že při komunikaci přes UNIX sockety není třeba se zabývat ztrátami a tudíž potvrzováním, přeposíláním apod. dat? Že TCP má z principu větší režii?
    Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
    xxx avatar 29.5.2007 00:28 xxx | skóre: 42 | blog: Na Kafíčko
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    No a proto bych ocekaval, ze ty rozdily budou vetsi. Nakonec by me vlastne docela zajimalo, jak takovej loopback vypada uvnitr.
    Please rise for the Futurama theme song.
    Věroš avatar 29.5.2007 00:37 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Ty rozdíly tam jsou. Ale jenom v relativních hodnotách - v absolutních se ztratí.

    Spíš mne zaráží ta propustnost u TCP na notebooku - jako jediný má víc procesorů, takže při TCP asi jeden procesor data tlačil a druhý tahal, kdežto u UNIXového socketu ne.
    Školím Ansible
    Josef Kufner avatar 29.5.2007 00:50 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Hezké srovnání. Ale ještě by mě zajímalo, jak je na tom obyčejná roura. Odhaduju, že to bude zhruba stejné, ale i tak... nechcete to někdo testnout? ;-)
    Hello world ! Segmentation fault (core dumped)
    Luk avatar 29.5.2007 07:54 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Kdysi dávno jsem něco takového zkoušel. Na P4 2,5 GHz vycházel round-trip time (čili čas na poslání malého množství dat z jednoho procesu do druhého a zpět) okolo 50 μs bez hyperthreadingu a něco přes 40 μs s ním. Jádro asi 2.6.12.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    29.5.2007 09:02 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Vážně? To snad není možné, aby to bylo tak pomalé. Já jsem naměřil 60 μs z jednoho nodu na druhý (z počítače na druhý počítač přes 100Mbps ethernet na běžném komoditním HW) v erlangu a ten používá taky TCP. To vážně nechápu co tam dělaj za kouzla.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    Luk avatar 29.5.2007 09:38 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Co je na tom divného? Je to z jednoho procesu do druhého a zpět, čili s dvojím přepnutím kontextu (s hyperthreadingem se to realizuje hardwarově, ale i tak...). Žádná kouzla se tam nedějí - když se zanedbá ta různá "omáčka", jedná se o pouhé kopírování z uživatelského prostoru do jádra a naopak. Jediné, co by to teoreticky mohlo brzdit, je aktualizace času přístupu k souboru (jednalo se o pojmenované roury otevřené bez O_NOATIME).
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    29.5.2007 10:40 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Uf, tak to je to přepnutí kontextu tak hrozně pomalé? Potěš koště :(
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    Luk avatar 29.5.2007 10:56 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Nevím, co znamená "hrozně pomalé". Ale rozhodně nějakou tu mikrosekundu zabere, někdy i o dost více. Kdyžtak tady jsou nějaké výsledky měření.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    29.5.2007 13:26 peter_h | blog: need4speed
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Koli (aj) takymto testom som si zalozil svoj blog a urcite to budem testovat, ale tento ani buduci mesiac este nic necakajte, potom budem mat snad viac volna.
    29.5.2007 01:33 thingie
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Neměří to náhodou skutečný čas mezi spuštěním a koncem, tohlecto? Je to úplně moudré (sice průměr a opakování měření, ale aji tak)?
    Věroš avatar 29.5.2007 01:38 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    jo - jedna chyba tam v měřicím programu je, místo done-start tam patří done-conn, ale na výsledku se skoro nic nemění.

    Je to open-source, můžeš to upravit a změnit...

    Jinak viz disclaimer.
    Školím Ansible
    29.5.2007 09:38 cynik
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Napsal jsem aplikaci, kde se prostrednictvim socketu (obou typu) tahaji obrazky. Takze jsem se nekdy kolem roku 2000-2001 zabyval jestli takovyto prenost neni moc pomaly.

    Jak si matne vzpominam, tak se ukazalo se, ze rozdil mezi unixovymi a tcp sockety neni vubec zadny a taktez zpomaleni zpusobene tim, ze se data tlaci nejakym uzkym mistem oproti prostemu prekopirovavani pametovych bloku, je nepodstatne. Uz tehdy to tlacilo na starsich pocitacich destiky MB pod vterinku, coz me stacilo, protoze vycitani ze zarizeni trvalo radove vic.

    Na samotny prenos ma spis vliv pocet preruseni, ktere je potreba udelat (cili je potreba posilat cele bloky najednou) a kvalita spojeni, jde-li to pres draty a ne jen pres loopback (to ovsem souvisi primo s poctem preruseni). Testoval jsem to pres read/write s tim, ze si velikost prectenych dat urcuji tyhle funkce samy.

    V soucasne dobe to pouzivam taky, protoze rozvzeni aplikace na server a klinety je moc sikovna vecicka, a pochopitelne je to rychlejsi, ale sockety stale nejsou ani zdaleka tou nepomalejsi veci, mnohem pomalejsi je disk nebo USB port.
    29.5.2007 10:07 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Přestože se Unix sockety nevyplatí, X nebo MySQL je stále používají. Proč?

    Myslím že u distribuovaných aplikací bude nejlepší zůstat u TCP, a v případě že oba peeři jsou na stejném node, použít sdílenou paměť. Tam by mohl být nárůst oproti TCP docela výrazný- při správně napsaných klientech by to bylo zerocopy z jednoho userspace do druhého. Přepínání procesů ale bude stejný počet, takže jestli je úzké hrdlo toto, ani sdílená paměť moc nepomůže.
    Táto, ty de byl? V práci, já debil.
    Luk avatar 29.5.2007 10:44 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Něco je např. tady. Je to sice o FreeBSD, ale základ je stejný.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    29.5.2007 11:00 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    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ší.
    Luk avatar 29.5.2007 11:57 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Jinak samozřejmě MySQL podporuje 4 metody komunikace (TCP socket, Unix socket, roura, sdílená paměť), takže si každý může vybrat to, co mu vyhovuje ;-)
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    29.5.2007 17:27 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    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.
    Věroš avatar 29.5.2007 17:33 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Performance tuning - TCP vs UNIX sockets
    Já si jen dovolím upozornit, že v blogpostu je napsáno "nevyplatí se mi portovat komunikaci z TCP socketu na UNIX socket" (v tomto konkrétním případě) a rozhodně proti UNIXovým socketům nic nemám.

    V době, když nebyly počítače tak odporně rychlé jako dnes, měly UNIXové sockety svoje využití a dodneška mají. Navíc píše Santiago - udělat spolehlivé řízení přístupu na TCP je těžší než na UNIXových socketech.
    Školím Ansible

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.