Portál AbcLinuxu, 1. května 2025 01:27

Kopírujeme...

25.10.2006 11:06 | Přečteno: 1738× | Linux | Výběrový blog | poslední úprava: 25.10.2006 11:42

Došly krásné nové stroje, takže jsem přesouval /home na nové železo.. S disky nechci hýbat a NFS i SMB je zbytečně složité, takže svištím netcat + tar přes jednoho svišťě. Kupodivu na 100M ethernetu byl slabší stroj CPU bound, netcat bral cca 30%, tar asi 45%, a propustnost eth0 kolem 4.5MBps. Zabiju dhcpcd, který z nějakého neznámého důvodu sniffuje traffic a bere asi 20%, a propustnost jde na 6.5MBps. Hmm, zajímavé. Možná by pomohlo kdyby tar četl a zapisoval přímo do socketu, ušetří se jedno kopírování v netcatu a jedna anonymní pipe (takže zřejmě další dvě kopírování v jádře). Bohužel netcat v nainstalované verzi exec neumí, tak napíšeme vlastní. Hurá, už to fičí, mám 11.5MBps :-) tar sice bere přes 85% cpu, ale víc přes 100Mbit stejně neprojde, takže rychlejší tar není nutný. Ještě se pochlubit do blogu zdrojákem, a může se pracovat.

$ cat /usr/local/bin/ntar.py
#! /usr/bin/python
import socket, os, sys

def poll():
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind(('', 2000))
        s.listen(1)
        c, _ = s.accept()

        os.close(0)
        os.dup2(c.fileno(), 0)
        os.execlp('tar', 'tar', 'xv')

def push(host, *src):
        c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        c.connect((host, 2000))

        os.close(1)
        os.dup2(c.fileno(), 1)
        os.execlp('tar', 'tar', 'cv', *src)

if __name__ == '__main__':
        if sys.argv[1] == 'poll': poll(*sys.argv[2:])
        if sys.argv[1] == 'push': push(*sys.argv[2:])
       

Hodnocení: 81 %

        špatnédobré        

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

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

.. avatar 25.10.2006 12:06 .. | skóre: 4 | blog:
Rozbalit Rozbalit vše Re: Kopírujeme...
Odpovědět | Sbalit | Link | Blokovat | Admin
nekdy -pokud je to net-bounded- je vhodne zvazit komprimaci. Treba takovy lzop je na to jako delany - komprimace moc nezatezuje, a i na beznych datech jde precejen krapet poznat.
25.10.2006 12:18 zde | skóre: 9 | blog: Linuch | Brno
Rozbalit Rozbalit vše Re: Kopírujeme...
Gzip jsem vyhodil jako první, zpomaloval to snad na desetinu. Content byl stejně až na mailboxy a CVS repository nekomprimovatelný. LZO jsem nezkoušel, ale je to docela bomba, uncompress jen asi 3x pomalejší než memcpy(). Hezký kód pod lampičku na zimní večery.
Táto, ty de byl? V práci, já debil.
bazil avatar 25.10.2006 12:10 bazil | skóre: 33 | blog: sluje | Miroslav
Rozbalit Rozbalit vše Re: Kopírujeme...
Odpovědět | Sbalit | Link | Blokovat | Admin
mnooo po FTP se dá fpohodě dosáhnout rychlosti 10Mbit .... ale když si někdo umí napsat takovouhle věcičku :-)
25.10.2006 12:28 zde | skóre: 9 | blog: Linuch | Brno
Rozbalit Rozbalit vše Re: Kopírujeme...
FTP nemám rád. ftpd je na konfiguraci snad ještě horší než Samba, je velmi neefektivní na malých souborech (TCP handshake), a často děravý. Mám pocit že snad všechny exploity co nejsou na bind, sendmail nebo ssh, jsou na nějaký *-ftpd. :)
Táto, ty de byl? V práci, já debil.
bazil avatar 25.10.2006 12:50 bazil | skóre: 33 | blog: sluje | Miroslav
Rozbalit Rozbalit vše Re: Kopírujeme...
ok to potom jo, sice odporuju v tom, že konfigurace fpt je složitější než samba (vsftpd) ale když ho nemáte rád tak to chápu ;-) já nemám rád sambu ...
25.10.2006 17:32 zde | skóre: 9 | blog: Linuch | Brno
Rozbalit Rozbalit vše Re: Kopírujeme...
Já jednou asi před 5 lety konfiguroval jakési wu-ftpd, a trvalo mi to asi dva nebo tři dny- furt přístupová práva fungovala úplně nepochopitelně, a celé se mi to zdálo jakési rozbité. Samozřejmě mohla být chyba i u mne.
Táto, ty de byl? V práci, já debil.
25.10.2006 23:29 R
Rozbalit Rozbalit vše Re: Kopírujeme...
WuFTPD: Providing *remote* root since at least 1994
25.10.2006 21:06 Vskutečnosti Saýc | skóre: 7
Rozbalit Rozbalit vše Re: Kopírujeme...
Odpovědět | Sbalit | Link | Blokovat | Admin
neco podobnyho uz napsal fefe: http://www.fefe.de/ncp/
26.10.2006 09:37 zde | skóre: 9 | blog: Linuch | Brno
Rozbalit Rozbalit vše Re: Kopírujeme...
Hmm, používat multicast jen proto, aby druhá strana nemusela zadat IP adresu, mi přijde trochu jako overkill.
Táto, ty de byl? V práci, já debil.
28.10.2006 13:52 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: Kopírujeme...
Odpovědět | Sbalit | Link | Blokovat | Admin
Jen jsem tak brouzdal protage a napadlo mě, jestli by problém místo cvičení v pythonu nevyřešil socat? Je to jen nápad (pustá teorie) :-)
Only Sith deals in absolutes.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.