Hi all, We observed the performance issue to PHP include file for PHP 5.4.41. Sorry for using the old version, we haven't got the time to check whether the issue still exists in the recent version. PHP sample code: include “core/Core.class.php” include "core/View.class.php" include ... //do some work below ... 1. From the perfomance test, we observed as high as 80%+ CPU sys% for about 100 concurret requests. 2. We used strace to attach php-fpm process: open("/srv/www/simulation/my/core/View.class.php", O_RDONLY) = 9 fstat(9, {st_mode=S_IFREG|0644, st_size=2034, ...}) = 0 fstat(9, {st_mode=S_IFREG|0644, st_size=2034, ...}) = 0 fstat(9, {st_mode=S_IFREG|0644, st_size=2034, ...}) = 0 mmap(NULL, 2034, PROT_READ, MAP_SHARED, 9, 0) = 0x7fa21727c000 stat("/srv/www/simulation/my/core/View.class.php", {st_mode=S_IFREG|0644, st_size=2034, ...}) = 0 fcntl(3, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=1}) = 0 fcntl(3, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0, len=1}) = 0 munmap(0x7fa21727c000, 2034) = 0 close(9) = 0 >From the above log, we observed php-fpm used fcntl to accqure write lock for the including file "core/View.class.php". Similar log were observed as well for other including files. 3. We used perf, and found out most of CPU time were consumed by fcntl_setlk: - 88.23% 0.13% php-fpm [kernel.kallsyms] [k] fcntl_setlk ▒ - fcntl_setlk ▒ - 100.00% sys_fcntl ▒ system_call_fastpath ▒ __GI___libc_fcntl All the above messages seem to indicate that PHP would acquire file writer lock to include file, and the lock contention lead to serious perfomance issue. Then, we did another experiment by writing the code from includeing files directly to the same PHP file. PHP sample code: //the code from “core/Core.class.php" ... //the code from "core/View.class.php" ... //the original code ... >From the test, we got more than twice perfomance improvements than the pervious, measured by tps (transaction per second). Is this a known issue to PHP? And are there any good solutions to the issue, except for do not use "include" file? Thanks! -Ethan