ubuntu apt-get update が最初は遅い

ubuntu apt-get update が最初は遅い

最近、apt-get update の実行速度が一部のサーバーでは他のサーバーよりもかなり遅いように感じます。

xxx@xxx:/usr/lib/php5/20121212$ sudo apt-get update
Ign http://downloads-distro.mongodb.org dist InRelease

一部のサーバーでは実行後apt-get update、0.5 秒未満で上記の 2 行目が表示されます。一方、他のサーバーでは 2 行目が表示されるまでに約 5 秒かかります。

私はsudo strace apt-get update、遅いサーバーが数秒間停止することに気づきました

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

数秒後、以下のように続きます

                , 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)

出力はすべてのサーバーでほぼ同じです。

問題をどうやって解決するのでしょうか?

答え1

ついに、私の友人が問題を発見しました。

これは、システム ユーザーに対して非常に大きなオープン ファイル制限を設定したために発生しました。これは Ubuntu のバグです。

開いているファイルの制限を大幅に小さく設定すると、apt-get update が高速になります。

参考:

関連情報