Live data from Hacker News

Performance and Speed Optimizations of WordPress [pdf]

lamosty.com

1–10 of 25 posts

Re: Performance and Speed Optimizations of WordPress [pdf]

#4
post #3

Looks outdated. APC cache is no longer, for instance.

Author here. The figure depicting the workings of APC cache was just an example of how opcode caching in PHP works. The thesis was published just today.

Bratislava! Partizanske here. Just moved here from the United States (NJ). I'm going to give this a good read. Thanks!

Re: Performance and Speed Optimizations of WordPress [pdf]

#5
WordPress is slow by design! I have managed to create a blogging engine (in PHP) that it only takes 2ms to create the page dynamically (without caching) from the database + ~20ms for Nginx to serve it.

One might argue that my engine does not have as much features... and you are right.

Incase you are interested: SunSed.com

Re: Performance and Speed Optimizations of WordPress [pdf]

#6
post #5

WordPress is slow by design! I have managed to create a blogging engine (in PHP) that it only takes 2ms to create the page dynamically (without caching) from the database + ~20ms for Nginx to serve it. One might argue that my engine does not have as much features... and you are right. Incase you are interested: SunSed.com

WordPress is rather big, having more than 200K function calls on a typical request to a blog post. However, when using the default Twenty Fifteen theme, the performance is not that bad, as you can see from http://ldr.io/1cbbomp (VPS server with 3CPUs and 4GB of RAM).

I've just checked your blogging engine and it looks very minimalistic. I like it.

Re: Performance and Speed Optimizations of WordPress [pdf]

#7
post #4
post #3

Earlier quoted context omitted.

Author here. The figure depicting the workings of APC cache was just an example of how opcode caching in PHP works. The thesis was published just today.

Bratislava! Partizanske here. Just moved here from the United States (NJ). I'm going to give this a good read. Thanks!

Howdy! If you want to replicate the load testing on your server(s), use my Ansible Playbooks: https://github.com/lamosty/wordpress-ansible (part of the work).

Re: Performance and Speed Optimizations of WordPress [pdf]

#8
post #5

WordPress is slow by design! I have managed to create a blogging engine (in PHP) that it only takes 2ms to create the page dynamically (without caching) from the database + ~20ms for Nginx to serve it. One might argue that my engine does not have as much features... and you are right. Incase you are interested: SunSed.com

It's a bit like saying "I've done something completely different and it's much faster".

Anyway, sunsed looks cool.

Re: Performance and Speed Optimizations of WordPress [pdf]

#9
Lead Developer of TheDirty.com here. Nice work. We're built on WordPress, running on a single machine, using Nginx + PHP-FPM, and currently serving ~20,000,000 pageviews a month.

Before I took over development we were running on apache w/ vanilla PHP and CPU's would be > 75% on a regular basis. The site frequently ran into the Apache 10k issue you mentioned in your paper as well. After getting the new server setup & optimizing all our MySQL queries, it's abnormal for all of our CPUs to even be doing anything. Out of all our CPUs, we might have 5 One thing I've gathered from this project is technique is a huge part of optimizing WordPress. 1 resource hog at this scale is greatly amplified and can bring everything crashing down. I remember the first time I coded a simple 'popular posts' widget and how hard that hit when you have 150,000 posts to run through and 300,000+ pages generating on a regular basis throughout the day. We had to scrape it the same week it went up.

One big example on how thinking about your queries is huge (let's ignore page caching for a moment) is if you have a menu that queries all your categories (We have 1,000+) in the menu on every page load, and then run that query every time you generate a page, that would be ~650,000 times a day that menu query is run and the menu is generated. When you think about running one query on a table with 1,000+ rows, it sounds like nothing. But when you have to do it 650,000+ times a day... It adds up.

By switching our menu to be generated once every 5 minutes, having it cached in html each time, and by having that menu loaded onto every page via javascript instead; we only have to query & generate the menu 288 times a day. Apply this "single query/generation + load in js technique" to things like widgets within WordPress (all our related posts areas are loaded like this), it has made our resource usage less than 1% of what it used to be.

Although people get really excited about things like widgets & cool custom plugins... It's good to remember, if you can code, that sometimes hardcoding and/or coming up with your own technique will save you a ton of cpu/ram usage if you truly want to build for scale. Every single query counts. Nginx is crucial > 10k connections & php-fpm is a great partner for nginx as well. I'm going to print out your thesis and run through it a few times. Nice work my friend.

----

Also, idk why somebody said APC is dead. One of the most, if not the most, widely used caching plugins, W3TC, still supports APC caching and a lot of talks about WordPress optimization use APC. Personally, I find other ways to be better, but that's another topic.

Re: Performance and Speed Optimizations of WordPress [pdf]

#10

Lead Developer of TheDirty.com here. Nice work. We're built on WordPress, running on a single machine, using Nginx + PHP-FPM, and currently serving ~20,000,000 pageviews a month. Before I took over development we were running on apache w/ vanilla PHP and CPU's would be > 75% on a regular basis. The site frequently ran into the Apache 10k issue you mentioned in your paper as well. After getting the new server setup &…

I think people are saying APC is dead because another opcode cache was included in PHP 5.5 and APC has not seen a release since 2012.

https://en.wikipedia.org/wiki/List_of_PHP_accelerators#Alter... http://pecl.php.net/package/apc

Post reply on HN