httpd-test-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Ames <grega...@apache.org>
Subject Re: gettimeofday calls
Date Thu, 23 Jan 2003 19:19:25 GMT
MATHIHALLI,MADHUSUDAN (HP-Cupertino,ex1) wrote:

> 	The following is the tusc output of httpd (2.0.43) + mod_specweb99.c
> on HP-UX.. Almost every single request has a gettimeofday system call - is
> there any way to avoid it ?. 

The GET /file_set/* requests are just plain ol' static files served by the httpd 
core, so I think the gettimeofday is due to:

     r->request_time = apr_time_now();

...line 681 from server/protocol.c.  I don't see that going away in the near future.

OTOH, the GET /?/file_set/* is a dynamic request served by mod_specweb99.  The 
three time() syscalls there bother me.  I'm guessing that this request had a 
cookie which drives do_cadget() and friends.  Looking at code in that path I do 
see three different time calls.  One of them will go away if you select a 
quieter LogLevel...you probably have "Found ad <blah> expire <yes/no> 
<timestamp>" messages in your error log.

Off the top of my head, we could probably change mod_specweb99 to use 
r->request_time in place of the time() syscalls and make it a little faster. 
But then we will have to take into account the difference between apr_time_t's 
and seconds. :-(

Greg

> 
> {72114} poll(0x6fd88910, 1, 120000) ...................... = 1
> {72114} read(149, "G E T   / ? / f i l e _ s e t / ".., 8000) = 159
> {72114} gettimeofday(0x6fd88448, NULL) ................... = 0
> {72114} time(NULL) ....................................... = 1043344112
> {72114} time(NULL) ....................................... = 1043344112
> {72114} time(NULL) ....................................... = 1043344112
> {72114} stat("/opt/apache2/htdocs//file_set/dir00016/class1_8", 0x6fd885c8)
> = 0
> {72114} open("/opt/apache2/htdocs//file_set/dir00016/class1_8", O_RDONLY,
> 0666) 
> = 43
> {72114} read(43, "          9 2 1 6   f i l e _ s ".., 9216) = 9216
> {72114} writev(149, 0x6fd88988, 4) ....................... = 9803
> {72114} read(149, 0x40288078, 8000) ...................... ERR#11 EAGAIN
> {72114} write(8, "1 9 2 . 1 6 8 . 3 . 2   [ 2 3 / ".., 95) = 95
> {72114} close(43) ........................................ = 0
> {72114} poll(0x6fd88910, 1, 120000) ...................... = 1
> {72114} read(149, "G E T   / f i l e _ s e t / d i ".., 8000) = 70
> {72114} gettimeofday(0x6fd88448, NULL) ................... = 0
> {72114} stat("/opt/apache2/htdocs/file_set/dir00047/class1_0", 0x6fd88548) =
> 0
> {72114} open("/opt/apache2/htdocs/file_set/dir00047/class1_0", O_RDONLY, 0)
> = 55
> {72114} read(149, 0x40288078, 8000) ...................... ERR#11 EAGAIN
> {72114} sendfile(149, 55, 0, 1024, 0x6fd88688, 0) ........ = 1289
> {72114} write(8, "1 9 2 . 1 6 8 . 3 . 2   [ 2 3 / ".., 93) = 93
> {72114} poll(0x6fd88910, 1, 120000) ...................... = 1
> {72114} read(149, "G E T   / f i l e _ s e t / d i ".., 8000) = 70
> {72114} gettimeofday(0x6fd88448, NULL) ................... = 0
> {72114} stat("/opt/apache2/htdocs/file_set/dir00009/class0_3", 0x6fd88548) =
> 0
> {72114} open("/opt/apache2/htdocs/file_set/dir00009/class0_3", O_RDONLY, 0)
> = 59
> {72114} read(149, 0x4038c098, 8000) ...................... ERR#11 EAGAIN
> {72114} sendfile(149, 59, 0, 409, 0x6fd88688, 0) ......... = 673
> {72114} write(8, "1 9 2 . 1 6 8 . 3 . 2   [ 2 3 / ".., 92) = 92
> {72114} poll(0x6fd88910, 1, 120000) ...................... = 1
> {72114} read(149, "G E T   / f i l e _ s e t / d i ".., 8000) = 70
> {72114} gettimeofday(0x6fd88448, NULL) ................... = 0
> {72114} stat("/opt/apache2/htdocs/file_set/dir00000/class1_2", 0x6fd88548) =
> 0
> {72114} open("/opt/apache2/htdocs/file_set/dir00000/class1_2", O_RDONLY, 0)
> = 76
> {72114} read(149, 0x40288078, 8000) ...................... ERR#11 EAGAIN
> {72114} sendfile(149, 76, 0, 3072, 0x6fd88688, 0) ........ = 3336
> {72114} write(8, "1 9 2 . 1 6 8 . 3 . 2   [ 2 3 / ".., 93) = 93
> 




Mime
View raw message