[rt-users] Speed difference between superuser and others
Emmanuel Lacour
elacour at easter-eggs.com
Fri Jul 20 04:00:19 EDT 2007
Hi,
I have a big performance problem here:
When I connect to my RT system with a superuser account, it's fine.
When I connect with a normal privileged user, without groups or any
rights, It's really slow (more than 3 minutes for Rt at a glance).
The curious thing is that 90% of the time is without database access and
without CPU load, just the fastcgi process waiting.
When I strace it, the main difference is that the non super user produce
a lot of lines like this:
time(NULL) = 1184917363
time(NULL) = 1184917363
time(NULL) = 1184917363
time(NULL) = 1184917363
time(NULL) = 1184917363
time(NULL) = 1184917363
time(NULL) = 1184917363
time(NULL) = 1184917363
time(NULL) = 1184917363
write(4, "\2\303\0\0\6\0\0\0\0\0\21i\207\1\1\1\1\6\3^\210\3\2\200"..., 707) = 707
read(4, "\0\227\0\0\6\0\0\0\0\0\20\35\311\321F>\300\0\0\0\366\273"..., 2064) = 151
gettimeofday({1184917363, 602652}, NULL) = 0
write(4, "\0T\0\0\6\0\0\0\0\0\3^\211\2\200p\1\6\0\0\1\1\f\0\1\0\2"..., 84) = 84
read(4, "\0S\0\0\6\0\0\0\0\0\10\1\5\3\30\355,\0\1\6\0\0\0\0\4\1"..., 2064) = 83
gettimeofday({1184917363, 610756}, NULL) = 0
gettimeofday({1184917363, 611800}, NULL) = 0
write(4, "\3\21\0\0\6\0\0\0\0\0\21i\212\1\1\1\1\6\3^\213\3\2\200"..., 785) = 785
read(4, "\0\227\0\0\6\0\0\0\0\0\20\35\2261]\v\300\0\0\0\366\234"..., 2064) = 151
gettimeofday({1184917363, 619729}, NULL) = 0
write(4, "\0T\0\0\6\0\0\0\0\0\3^\214\2\200p\1\6\0\0\1\1\f\0\1\0\2"..., 84) = 84
read(4, "\0S\0\0\6\0\0\0\0\0\10\1\5\3\30\3558\0\1\6\0\0\0\0\4\1"..., 2064) = 83
gettimeofday({1184917365, 57412}, NULL) = 0
gettimeofday({1184917365, 58479}, NULL) = 0
time(NULL) = 1184917365
time(NULL) = 1184917365
time(NULL) = 1184917365
time(NULL) = 1184917365
time(NULL) = 1184917365
time(NULL) = 1184917365
time(NULL) = 1184917365
time(NULL) = 1184917365
time(NULL) = 1184917365
write(4, "\2\303\0\0\6\0\0\0\0\0\21i\215\1\1\1\1\6\3^\216\3\2\200"..., 707) = 707
read(4, "\0\227\0\0\6\0\0\0\0\0\20\35\311\321F>\300\0\0\0\366\273"..., 2064) = 151
gettimeofday({1184917365, 81413}, NULL) = 0
write(4, "\0T\0\0\6\0\0\0\0\0\3^\217\2\200p\1\6\0\0\1\1\f\0\1\0\2"..., 84) = 84
read(4, "\0S\0\0\6\0\0\0\0\0\10\1\5\3\30\3558\0\1\6\0\0\0\0\4\1"..., 2064) = 83
gettimeofday({1184917365, 89500}, NULL) = 0
gettimeofday({1184917365, 90543}, NULL) = 0
write(4, "\3\21\0\0\6\0\0\0\0\0\21i\220\1\1\1\1\6\3^\221\3\2\200"..., 785) = 785
...
Also, but this is not a difference between the two tests, I see a lot of lines like this:
connect(13, {sa_family=AF_FILE, path="/dev/log"}, 110) = -1 EPROTOTYPE (Protocol wrong type for socket)
close(13) = 0
socket(PF_FILE, SOCK_DGRAM, 0) = 13
ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbff19b98) = -1 EINVAL (Invalid argument)
_llseek(13, 0, 0xbff19bd0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbff19b98) = -1 EINVAL (Invalid argument)
_llseek(13, 0, 0xbff19bd0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
fcntl64(13, F_SETFD, FD_CLOEXEC) = 0
and:
$ ls -l /dev/log
srw-rw-rw- 1 root root 0 Oct 3 2006 /dev/log
seems ok.
It's running under RedHat ES4 on a vmware server, and connected to an external Oracle database.
Thanks for any help :)
--
Emmanuel Lacour ------------------------------------ Easter-eggs
44-46 rue de l'Ouest - 75014 Paris - France - Métro Gaité
Phone: +33 (0) 1 43 35 00 37 - Fax: +33 (0) 1 41 35 00 76
mailto:elacour at easter-eggs.com - http://www.easter-eggs.com
More information about the rt-users
mailing list