Some time ago, I received an email from a client experiencing slow performance issues with a LEMP (Linux, Nginx, MySQL, and PHP web server). During a full audit, I found that the server’s load average was pretty low (see below screenshot). However, the website was indeed very slow. There were some misconfigurations, but one of… continue reading.
Some time ago, I received an email from a client experiencing slow performance issues with a LEMP (Linux, Nginx, MySQL, and PHP web server). During a full audit, I found that the server’s load average was pretty low (see below screenshot). However, the website was indeed very slow. There were some misconfigurations, but one of… continue reading.
Thanks for this great post!
I’ve got a related question that I hope you know something about.
Vps servers give you a vcpu, which is a single cpu thread - at best (this seems to be aws and Google’s policy 2 vcpus per physical core, but many other providers oversubscribe the physical cores since they’re not all active at the same time). Lscpu shows this in your article - 8 cores, with 1 thread per core.
But if we have a bare metal server, we have the actual physical cores and Lscpu would show the threads per core.
My question is - how would we get php-fpm or lsphp on a litespeed server to use threads rather than physical cores - as is done on a vps server? The idea being that the php processes aren’t computing at all times, since they wait for db and other file I/O. So, in essence, php processes that are running “multithreaded” on a vps server should be able to outperform truly singled threaded bare metal php processes.
Or am I missing something? I can’t find any info on this anywhere, and your site is one of the better resources on this sort of info!
Thanks!
First of all, welcome to the forums.
Multithreading is the ability of a central processing unit (CPU) (or a single core in a multi-core processor) to provide multiple threads of execution concurrently, supported by the operating system.
PHP does not come with built-in multithreading support. However, you can try Pthreading. Pthreads is an object-orientated API that provides all of the tools needed for multithreading in PHP. but it is usually not worth it.
Beyond this, hardware is king for PHP. What is the clock speed of your cores? How fast is your storage.
If this is a production environment with high traffic, I can offer you a free trial of our INSANE by invite only cloud platform (stackLinux.com), which we upgrade complimentary every 1 to 2 years before they burn out due to overclocking and forcing currently 3.9 GHz CPUs and everything else to always run at MAX.