Re: Re: Slow sessions.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When you say you "installed php 5.3.x and then reverted to 5.2", did you
reinstall/upgrade OS and/or kernel too?

b.


On 28 March 2011 23:40, Bostjan Skufca <bostjan@xxxxxx> wrote:

> Great, please report back if/when you discover the cause.
>
> Meanwhile doing "man 2 flock" yields info about ENOLCK: "The kernel ran out
> of memory for allocating lock records." This concerns your new server. The
> old one does not support locking, or so it seems (EOPNOTSUPP).
>
> b.
>
>
>
> On 28 March 2011 23:15, Rob Adams <radams@xxxxxxxxxxxxx> wrote:
>
>> Bostjan,
>>
>> Thanks again for the tip.  At this point, it looks like there is an issue
>> with my main file server.  It's weird that the older servers were working
>> with it fine though (by instantly failing on lock), so I originally thought
>> it might be a php issue.  I think I'm making progress on it now though.
>>
>>  -- Rob
>>
>>
>>
>> On 3/28/2011 12:08 PM, Rob Adams wrote:
>>
>>> On 3/26/2011 11:07 AM, Bostjan Skufca wrote:
>>>
>>>> Can you strace it's execution and see where your delay is comming
>>>> from? If
>>>> you are using apache, make it create just one child and strace that
>>>> one when
>>>> you generate a request.
>>>>
>>>
>>> Thanks for the advice. I installed strace on the new server, and it has
>>> a thirty second delay on the flock call (opening the session file):
>>>
>>> open("/path/to/session/sess_SESSIONID", O_RDWR|O_CREAT, 0600) = 20
>>> flock(20, LOCK_EX) = -1 ENOLCK (No locks available)
>>> fcntl64(20, F_SETFD, FD_CLOEXEC) = 0
>>> fstat64(20, {st_mode=S_IFREG|0644, st_size=13, ...}) = 0
>>> pread64(20, "cpixUser|b:1;", 13, 0) = 13
>>> gettimeofday({1301331125, 622954}, NULL) = 0
>>> gettimeofday({1301331125, 623046}, NULL) = 0
>>> brk(0x989d000) = 0x989d000
>>> gettimeofday({1301331125, 623301}, NULL) = 0
>>> pwrite64(20, "cpixUser|b:1;", 13, 0) = 13
>>> close(20) = 0
>>>
>>> This has the correct session file name (ie
>>> "/path/to/session/sess_SESSIONID").
>>>
>>> So then I installed strace on one of the older servers, to see what it
>>> was doing, and this is what I see where it is opening the session file:
>>>
>>> open("\"M\235\240GU\21", O_RDWR|O_CREAT, 0600) = 9
>>> flock(9, LOCK_EX) = -1 EOPNOTSUPP (Operation not supported)
>>> fcntl(9, F_SETFD, FD_CLOEXEC) = 0
>>> fstat(9, {st_mode=S_IFCHR|040, st_rdev=makedev(113, 1114152), ...}) = 0
>>> lseek(9, 0, SEEK_SET) = 0
>>> read(9, "cpixUser|b:1;"..., 13) = 13
>>> gettimeofday({540876916, 1078020164}, {3221773391, 671636288}) = 0
>>> sigprocmask(SIG_BLOCK, NULL, []) = 0
>>> lseek(9, 0, SEEK_SET) = 0
>>> write(9, "cpixUser|b:1;"..., 13) = 13
>>> close(9) = 0
>>>
>>> I don't know why it has the session file as this: "\"M\235\240GU\21".
>>>
>>> So it looks like the flock(?) is taking 30 seconds to timeout on the new
>>> server, and failing instantly on the old ones. On the new server, I have
>>> a message in /var/log/messages that reads:
>>>
>>> Mar 28 10:38:34 webServer kernel: lockd: server mainFileServer not
>>> responding, timed out
>>>
>>> I get this message evertime I call session_start(). I have tried
>>> reloading the new server from scratch (CentOS 5.5, php 5.2.17, apache
>>> 2.2) and it is still doing the same thing.
>>>
>>>
>>>
>>>
>>
>> --
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux