Recientemente siento que apt-get update funciona mucho más lento en algunos servidores que en otros.
xxx@xxx:/usr/lib/php5/20121212$ sudo apt-get update
Ign http://downloads-distro.mongodb.org dist InRelease
algunos servidores se ejecutan apt-get update
y en menos de medio segundo aparece la segunda línea de arriba. mientras que otros servidores tardan unos 5 segundos en mostrar la segunda línea.
Y descubro sudo strace apt-get update
que los servidores lentos se detendrán a continuación durante varios segundos.
open("/etc/apt/sources.list", O_RDONLY) = 4
read(4, "# \n\n# deb cdrom:[Ubuntu-Server 1"..., 8191) = 3488
pipe([5, 6]) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f0ab30f3a50) = 30800
close(6) = 0
fcntl(5, F_GETFL) = 0 (flags O_RDONLY)
fstat(5, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0ab2f68000
lseek(5, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
read(5, "i386\n <----------------- here
Después de varios segundos, continúa como se muestra a continuación.
, 4096) = 5
read(5, "", 4096) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=30800, si_status=0, si_utime=307, si_stime=167} ---
close(5) = 0
munmap(0x7f0ab2f68000, 4096)
Las salidas son casi las mismas para todos los servidores.
¿Como resolver el problema?
Respuesta1
Finalmente, mi amigo descubre el problema.
Esto se debe al límite de archivos abiertos que configuramos como muy grande para el usuario de nuestro sistema. Es un error de ubuntu.
Establecimos un límite de archivos abiertos mucho más pequeño para que la actualización de apt-get se vuelva rápida.