abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 19:44 | Nová verze

    Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    včera 05:33 | Komunita

    Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.

    Ladislav Hagara | Komentářů: 13
    včera 03:55 | Komunita

    sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.

    Ladislav Hagara | Komentářů: 0
    6.5. 22:11 | Nasazení Linuxu

    Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).

    Ladislav Hagara | Komentářů: 2
    6.5. 13:22 | IT novinky

    Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.

    Ladislav Hagara | Komentářů: 1
    6.5. 04:55 | Nová verze

    Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 1
    6.5. 00:33 | Komunita

    Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.

    Ladislav Hagara | Komentářů: 32
    5.5. 23:22 | Pozvánky

    Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou

    … více »
    bkralik | Komentářů: 0
    5.5. 22:33 | IT novinky

    Dle plánu dnes končí služba Skype. Uživatelé mohou pokračovat v Microsoft Teams.

    Ladislav Hagara | Komentářů: 1
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (3%)
     (1%)
     (1%)
     (3%)
    Celkem 549 hlasů
     Komentářů: 25, poslední včera 20:12
    Rozcestník

    Dotaz: samba a mnoho malých souborů = špatný výkon

    18.3.2020 11:00 Hrabin
    samba a mnoho malých souborů = špatný výkon
    Přečteno: 481×
    Ahoj,

    prosím o radu ohledně nízké propustnosti samby:

    Debian 10, 2x SSD v raidu, samba 4.9.5, 1G síť, i5-9600KF.

    Když kopíruju velké soubory, jede to OK (cca 100MB/s). Když kopíruju velké množství malých souborů (1GB v 50000 souborech), rychlost klesá pod 10MB/s. Když namountuju sambu přes cifs lokálně přímo na serveru, tak velké soubory valí přes 1GB/s ale malé opět řádově kolem těch 10MB/s :(

    FS je EXT4, a lokálně ssd/ssd těch 50k souborů zkopíruju za cca 1.5s, ale přes sambu (mount lokálně) za cca 60s, jakto ?

    Tento problém s výkonem jsem vygooglil ve více diskusích, ale nikde nebylo vyřešení nebo vysvětlení.

    Má to nějaké řešení ?

    Předem díky za odpovědi.

    Jarda

    Odpovědi

    18.3.2020 15:40 debian+
    Rozbalit Rozbalit vše Re: samba a mnoho malých souborů = špatný výkon
    EXT4 - Linux cachuje. Skus si po takom skopirovany dat prikaz sync. Program sync, kym zapise vsetky subory ktore ma v cache na zapis. Pri cache to rozlozi zapis vtedy, ked je menej vytazeni. Preto sa caka pri odpajani media. Este pri cache dokonca napr. 2 zmeny nasledne zluci do 1 a zapise ako 1 zmenu (tj. usetri 1 zapis) napriklad.

    Kazdy disk ma limit IO - trebars 500. Je jedno ci menis 1B alebo 50B vzdy je to menej ako 1 maximalny blok dat, takze to bude stat 1 zapis.

    A teraz sa pozrieme, aky to ma dopad na rychlost. Takze na disk sa zapisuje po (max.) 1MB bloku (resp. najvecsi blok, ak cez siet). Ak zapisujem 10M-ove subory tak sa subor potrebujeme (zjednodusene) 1 zapis na nazov noveho suboru (name file) a 10 zapisovov dat. Co znaci ze rychlost zapisania suborov je najviac 500/11≃45 suborov. Ak mam ze subory su 1M, tak na zapis 1 nazov suboru a 1 blok vychadza, ze pri 500 IO zapise najviac 500/2=250 subor.

    Co znaci ze rychlost na disk pri velkosti 1 subor 10MB rychlost 45*10M=450MB/s. A pri 1M suboroch to da 250*1=250MB/s.

    Co dostaneme tabulku, ktora vysv:
    size_one_file count/s speed/s
               1k 500 500k
              10k 500 5M
             100k 500 50M
               1M 250 250M
              10M  45 455M
             100M  ~5 495MB
    
    Source na vypocet:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define IO 500
    #define BLOCK_SIZE 1000000 /* 1MB */
    
    typedef struct {
    	double max_files_in_minute;
    	double max_data_speed;
    }writed_t;
    
    writed_t writed_in_one_s(long int size_one_file)
    {
    	double count_blocks_of_file;
    	writed_t ret;
    
    	count_blocks_of_file=size_one_file/BLOCK_SIZE;
    	ret.max_files_in_minute=IO/(count_blocks_of_file+1); /* plus name */
    	ret.max_data_speed=ret.max_files_in_minute*size_one_file;
    	
    	return ret;
    }
    
    int main(void)
    {
    	writed_t speed;
    	long int size_file;
    	puts("size_one_file count/s speed/s");
    	for(size_file=1000; size_file<1000000000; size_file*=10)
    	{
    		speed=writed_in_one_s(size_file);
    		printf("%15ld %5.2f %5.2f\n", size_file, speed.max_files_in_minute, speed.max_data_speed);
    	}
    	
    	return 0;
    }
    
    18.3.2020 16:54 debian+
    Rozbalit Rozbalit vše Re: samba a mnoho malých souborů = špatný výkon
    Opravene:
    size_one_file count/s   speed
               1k  250.00   250k/s
              10k  250.00   2,5M/s
             100k  250.00    25M/s
               1M  250.00   250M/s
              10M   45.45 ~455MB/s
             100M    4.95 ~495MB/s
    
    writed_t writed_in_one_s(long int size_one_file)
    {
    	double count_blocks_of_file;
    	writed_t ret;
    
    	if(size_one_file<=BLOCK_SIZE)
    		count_blocks_of_file=1;
    	else
    		count_blocks_of_file=size_one_file/BLOCK_SIZE;
    
    	ret.max_files_in_minute=((double)IO)/(count_blocks_of_file+1); /* plus name */
    	ret.max_data_speed=ret.max_files_in_minute*size_one_file;
    	
    	return ret;
    }
    18.3.2020 18:33 bigBRAMBOR | skóre: 37
    Rozbalit Rozbalit vše Re: samba a mnoho malých souborů = špatný výkon
    A jak ti do toho zapada rozdil v kopirovani lokalnim a lokalne moutnutym CIFS?
    18.3.2020 23:09 debian+
    Rozbalit Rozbalit vše Re: samba a mnoho malých souborů = špatný výkon
    Odpoved mas v texto, co pisal:
    Když kopíruju velké soubory, jede to OK (cca 100MB/s). Když kopíruju velké množství malých souborů (1GB v 50000 souborech), rychlost klesá pod 10MB/s.
    19.3.2020 07:33 bigBRAMBOR | skóre: 37
    Rozbalit Rozbalit vše Re: samba a mnoho malých souborů = špatný výkon
    jenze to se tyka kopirovani pres sit a sambu, nasleduje upresneni - viz cituji dotaz - lokálně ssd/ssd těch 50k souborů zkopíruju za cca 1.5s, ale přes sambu (mount lokálně) za cca 60s, jakto i to ukazuje ze problem je v Sambe a ne v rychlosti disku. Cely tvuj obr komentar se bohuzel mota kolem neco co tam neni.
    19.3.2020 08:51 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: samba a mnoho malých souborů = špatný výkon
    Lokálně si to řeší VFS. Subjektivně se to zdá rychle, protože nečeká na to, až mu nějaká samba potvrdí že může jít na další operaci.

    Mraky malých souborů jsou pro síťové souborové systémy největší mor.
    18.3.2020 16:47 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: samba a mnoho malých souborů = špatný výkon
    18.3.2020 18:26 PetebLazar | skóre: 34 | blog: l_eonardovo_odhodlani
    Rozbalit Rozbalit vše Re: samba a mnoho malých souborů = špatný výkon
    Pohled na htop naznačuje, že limitovaný výkon této úlohy je pravděpodobně dán CPU režií samotné SMB(při mých testech cca 75%core). Kopírování takovéto droboti (50000x 20KB) mezi dvěma NVMe mi také "trvalo" cca 1,5sec.
    18.3.2020 19:02 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: samba a mnoho malých souborů = špatný výkon
    V jedné z těch linkovaných diskusí píšou, že samba při kontrole existence souboru neustále dokola prochází seznam souborů v adresářích, což je údajně pro velký počet souborů v adresáři pro její implementaci poměrně výpočetně náročně. Proto doporučují vypnout case insensitive a také všechny možné hrátky s názvy souborů. To by snad mělo náročnost výrazně snížit.
    18.3.2020 21:57 PetebLazar | skóre: 34 | blog: l_eonardovo_odhodlani
    Rozbalit Rozbalit vše Re: samba a mnoho malých souborů = špatný výkon
    To určitě stojí za prověření.

    Také pokud je na jedné ze stran Windows, pak mezi významné brzdy může patřit i real-time antivirová ochrana. Při pokousech i když jsem přenášel soubory bez přípony, byla to na straně Windows největší CPU zátěž (Defender?).

    Založit nové vláknoNahoru

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

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