NLS/strerror efficiency

From: Kostik Belousov <kostikbel_at_gmail.com>
Date: Tue, 19 Jan 2010 23:20:19 +0200
Hi,
r189765 enabled NLS support for libc. Now, any strerror(3) call causes
4 (!) failing stat(2) calls. I think this is untolerable.

Catopen() does not cache the catalog descriptor, at least for libc,
at least for the case where the open failed.

On the active web server, these msgcat activities easily become
dominant in the CPU time of the web server process.

  1715 nginx    CALL  open(0x804004bc0,O_RDONLY,<unused>0)
  1715 nginx    NAMI  "/usr/home/guests/xenos/var/rvs/docroot/1/l/101/6/g"
  1715 nginx    RET   open -1 errno 2 No such file or directory
  1715 nginx    CALL  stat(0x7fffffffd9b0,0x7fffffffd930)
  1715 nginx    NAMI  "/usr/share/nls/C/libc.cat"
  1715 nginx    RET   stat -1 errno 2 No such file or directory
  1715 nginx    CALL  stat(0x7fffffffd9b0,0x7fffffffd930)
  1715 nginx    NAMI  "/usr/share/nls/libc/C"
  1715 nginx    RET   stat -1 errno 2 No such file or directory
  1715 nginx    CALL  stat(0x7fffffffd9b0,0x7fffffffd930)
  1715 nginx    NAMI  "/usr/local/share/nls/C/libc.cat"
  1715 nginx    RET   stat -1 errno 2 No such file or directory
  1715 nginx    CALL  stat(0x7fffffffd9b0,0x7fffffffd930)
  1715 nginx    NAMI  "/usr/local/share/nls/libc/C"
  1715 nginx    RET   stat -1 errno 2 No such file or directory
  1715 nginx    CALL  write(0x46,0x7fffffffdec0,0x109)
  1715 nginx    GIO   fd 70 wrote 265 bytes
       "2010/01/19 14:41:09 [error] 1715#0: *40673092 open() "/usr/home/guests\
   /xenos/var/rvs/docroot/1/l/101/6/g" failed (2: No such file or directo\
   ry), client: YYY.YYY.YYY.YYY, server: do.not.say.this, reque\
   st: "GET /1/l/101/6/g HTTP/1.1", host: "XXX.XXX.XXX.XXX"

Received on Tue Jan 19 2010 - 20:20:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:00 UTC