Portál AbcLinuxu, 8. května 2025 04:29
root@voyage:~# strace -f -p 3784 Process 3784 attached read(6, "22f982b5f6d46fa1494e235668\nSHA1:"..., 32351) = 32351 read(6, "n-md5: 9dbf17c52e563a4e5cfa9b080"..., 32459) = 32459 gettimeofday({1453757710, 676141}, NULL) = 0 write(1, "\rReading package lists... 11%\r", 30) = 30 read(6, "d-Size: 338\nMaintainer: Debian G"..., 32726) = 32726 read(6, " plugin\nHomepage: http://www.fus"..., 32370) = 32370 read(6, "on: web\nPriority: optional\nFilen"..., 32281) = 32281 read(6, "eforge\nDescription: FusionForge "..., 31739) = 31739 read(6, "ail\nSection: devel\nPriority: opt"..., 32002) = 32002 read(6, "a53bca3e8c47595645\nSHA256: f95ad"..., 32074) = 32074 read(6, "l\nFilename: pool/main/g/gadminto"..., 32224) = 32224 ...
kde root@voyage:~# ls -l /proc/3784/fd lrwx------ 1 root root 64 Jan 25 21:30 0 -> /dev/tty1 lrwx------ 1 root root 64 Jan 25 21:30 1 -> /dev/tty1 lrwx------ 1 root root 64 Jan 25 21:30 2 -> /dev/tty1 l-wx------ 1 root root 64 Jan 25 21:30 3 -> /dev/null lrwx------ 1 root root 64 Jan 25 21:30 4 -> /var/lib/dpkg/lock lrwx------ 1 root root 64 Jan 25 21:30 5 -> /var/cache/apt/pkgcache.bin.BN8s5j lr-x------ 1 root root 64 Jan 25 21:30 6 -> /var/lib/apt/lists/ftp.cz.debian.org_debian_dists_jessie_main_binary-i386_PackagesTedy fd 6 je /var/lib/apt/lists/ftp.cz.debian.org_debian_dists_jessie_main_binary-i386_Packages Ten soubor má 30 MB, jeho překopírování na CD kartě trvá několik sekund. Přesto naskakují ty řádky ve strace (co řádek, to přečtených 30kB) velice velice pomalu, v jednotkách sekund. OK, tak třeba má CF karta nějaký velice špatný přístup. Tedy jsem vyrobil tmpfs ramdisk, celý adresář /var/lib/apt/lists do něj nakopíroval a bindnul jsem jej na zpět:
root@voyage:~# mount ... tmpfs on /mnt/ramdisk type tmpfs (rw,relatime,size=204800k) tmpfs on /var/lib/apt/lists type tmpfs (rw,relatime,size=204800k)Opravdu je to v ramdisku, kopírování tohoto souboru do /dev/null nyní jede 100MB/s
root@voyage:~# dd if=/var/lib/apt/lists/ftp.cz.debian.org_debian_dists_jessie_main_binary-i386_Packages of=/dev/null 65970+1 records in 65970+1 records out 33776741 bytes (34 MB) copied, 0.347766 s, 97.1 MB/sŽádný zázrak, ale to PC má pomalé DDR1 paměti, 1GHz CPU, rychlost odpovídá. Ještě jsem si ověřil, že to opravdu je na tmpfs
root@voyage:~# df $(readlink -f /proc/3784/fd/6) Filesystem 1K-blocks Used Available Use% Mounted on tmpfs 204800 57808 146992 29% /var/lib/apt/listsPřesto apt-get update (samozřejmě po jeho opětovném spuštění) jede pořád stále pomalu, wait je úplně stejný a při "Reading package lists" neustále svítí ledka disku, ač by to tam dle strace nemělo vůbec přistupovat (vypisuje se jen read(6), který je na ramdisku). Kde by mohl být prosím zakopaný pes? Přijde mi, že apt-get (zřejmě nějaká knihovna) nějak divně pracuje s read syscallem. Tenhle problém lidi řeší už roky, nic kloudného/funkčního/smysluplného jsem nevygooglil. Předem díky za nápady, co by to mohlo dělat.
Řešení dotazu:
Je to jen odhad , nebrzdí to spíše cpu ? Disk je potom spíše doprovodný projev ? Já osobně deaktivuju vše co nepotřebuju (repositáře a i src) odmažu složky a znovu dam apt-get update a pro gui i ten xpain indexer pro hledání v synapticu. Čím větší repa tím pomalejší databázování a tvorba závislostí.
sorry 0% idle sem si nevšimnul.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.