tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
PHP performance on Xen domU with mulitple vcpu
Hello
On NetBSD-10.0/amd64 Xen domU with two vcpu PHP's uniqid() performance
is terrible. Theses two tests are on the same dom0, with same NetBSD
versions in the domU:
With a single vcpu:
$ time php -r 'for ($i = 0; $i < 1000000; $i++) uniqid();'
2.94s real 0.77s user 1.71s system
With two vcpu (note this is only 100 iterations):
$ time php -r 'for ($i = 0; $i < 100; $i++) uniqid();'
19.10s real 6.13s user 6.39s system
This php function loops around gettimeofday() until the microsecond
changes:
do {
(void)gettimeofday((struct timeval *) &tv, (struct timezone *) NULL);
} while (tv.tv_sec == prev_tv.tv_sec && tv.tv_usec == prev_tv.tv_usec);
This does not look wise, but why is it so slow? ktrace/kdump -R
gives a hint: most gettimeofday() calls last less than a microsecond,
but there are exceptions:
29062 29062 php83 0.000000000 CALL __gettimeofday50(0x7f7fffc2f420,0)
29062 29062 php83 4.820000000 RET __gettimeofday50 0
Or this:
29062 29062 php83 0.000000000 CALL __gettimeofday50(0x7f7fffc2f420,0)
29062 29062 php83 0.000000000 RET __gettimeofday50 0
29062 29062 php83 0.360000000 CALL __gettimeofday50(0x7f7fffc2f420,0)
Or even this, which I do not understand.
29062 29062 php83 0.000000000 CALL __gettimeofday50(0x7f7fffc2f420,0)
29062 29062 php83 4.240000000 CALL __gettimeofday50(0x7f7fffc2f420,0)
29062 29062 php83 0.000000000 RET __gettimeofday50 0
Any idea what can explains such numbers?
--
Emmanuel Dreyfus
manu%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index