WP admin, even 3.3, incredibly slow.
-
Ubuntu 11.10
Nginx 1.0.10
php5-fpm 5.3.8I’ve got a 256Mb VPS running a Zen Cart store and phpbb3, both in different php-fpm pools. There’s hardly anything running except the essentials and both those sites absolutely rocket along. As does the front end of the WordPress site, when W3TC accelerated.
BUT…. the admin side takes 6-10 seconds to do anything.
There’s nothing in the mysql slow log, or the php-fpm error log, the load doesn’t spike, and the memory usage doesn’t shoot up (but see below about memory).The first time it loads, at wp-admin/options.php it shows a very long page that looks wrong, with line after line of stuff like…
active_plugins SERIALIZED DATA
Here’s the main items from ps_mem.py
732.0 KiB + 87.5 KiB = 819.5 KiB bash 2.1 MiB + 369.0 KiB = 2.4 MiB fail2ban-server 1.8 MiB + 2.0 MiB = 3.9 MiB nginx (5) 5.1 MiB + 12.8 MiB = 17.9 MiB php5-fpm (29) 87.8 MiB + 149.0 KiB = 88.0 MiB mysqld --------------------------------- 116.2 MiB =================================
Here’s the load average pretty much all the time:
load average: 0.48, 0.53, 0.51And here’s the output from free -m
total used free shared buffers cached Mem: 241 202 38 0 3 49 -/+ buffers/cache: 149 92 Swap: 511 29 482
Here’s the nginx.conf, including the cloudflare real_ip settings (tried without cloudflare too), and also the rewrite required to make permalinks work under nginx:
server { listen 31.172.x.x:80; server_name mysite.co.uk www.mysite.co.uk www.my-site.co.uk my-site.co.uk; root /var/www/mysite.co.uk/web; index index.html index.htm index.php index.cgi index.pl index.xhtml; error_page 400 /error/400.html; error_page 401 /error/401.html; error_page 403 /error/403.html; error_page 404 /error/404.html; error_page 405 /error/405.html; error_page 500 /error/500.html; error_page 502 /error/502.html; error_page 503 /error/503.html; error_log /var/log/ispconfig/httpd/mysite.co.uk/error.log; access_log /var/log/ispconfig/httpd/mysite.co.uk/access.log combined; ## Disable .htaccess and other hidden files location ~ /\. { deny all; access_log off; log_not_found off; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location /stats { index index.html index.php; auth_basic "Members Only"; auth_basic_user_file /var/www/clients/client3/web9/.htpasswd_stats; } location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/lib/php5-fpm/web9.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_intercept_errors on; } set_real_ip_from 204.93.240.0/24; set_real_ip_from 204.93.177.0/24; set_real_ip_from 199.27.128.0/21; set_real_ip_from 173.245.48.0/20; set_real_ip_from 103.22.200.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 108.162.192.0/18; real_ip_header CF-Connecting-IP; client_max_body_size 28M; client_body_buffer_size 128k; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?q=$1 last; break; } #include /var/www/mysite.co.uk/web/nginx.conf; }
Here’s the php5-fpm pool
[web9] listen = /var/lib/php5-fpm/web9.sock listen.owner = web9 listen.group = client3 listen.mode = 0660 user = web9 group = client3 pm = dynamic pm.max_children = 4 pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_spare_servers = 2 chdir = / php_admin_value[open_basedir] = /var/www/clients/client3/web9/web:/var/www/clients/client3/web9/tmp:/var/www/mysite.co.uk/web:/srv/www/mysite.co.uk/web:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin php_admin_value[session.save_path] = /var/www/clients/client3/web9/tmp php_admin_value[upload_tmp_dir] = /var/www/clients/client3/web9/tmp php_admin_value[date.timezone] = "UTC" php_admin_value[post_max_size] = 28M php_admin_value[session.gc_maxlifetime] = 604800 php_admin_value[upload_max_filesize] = 28M php_admin_flag[display_errors] = off php_admin_flag[display_startup_errors] = off php_admin_flag[log_errors] = off php_admin_flag[ignore_repeated_errors] = off php_admin_flag[ignore_repeated_source] = off php_admin_value[memory_limit] = 32M
I had to make changes to /etc/php5/conf.d/suhosin.ini as advised by phpmyadmin, and also upped the memory limit for WP as I was getting
“ALERT – script tried to increase memory_limit to 268435456 bytes which is above the allowed value”.; configuration for php suhosin module extension=suhosin.so suhosin.executor.include.whitelist="phar" suhosin.request.max_vars=2048 suhosin.post.max_vars=2048 suhosin.request.max_array_index_length=256 suhosin.post.max_array_index_length=256 suhosin.request.max_totalname_length=8192 suhosin.post.max_totalname_length=8192 suhosin.get.max_value_length=1024 suhosin.memory_limit=128M
I reduced the memory limit in wp-config.php as shown below.
define('WP_MEMORY_LIMIT', '32M'); define('WP_MAX_MEMORY_LIMIT', '32M');
Although, I’ve changed these limits from 256 to 128 to 64 to 32 and it makes NO difference to the front or back end speeds.
I changed the theme to default, turned off all the plugins, changed all the mysql tables to to innodb and followed the recommendations of mysqltuner (even though, as I said, there’s nothing about slow mysql in the logs I can see).
I’ve tried changing php-fpm from socket to port and back, and so on and so forth. Not really sure what else to do now – can anyone spot anything here or advise?
The strangest thing of all? I’m running a personal WP install on a free “tiny” instance on Amazon S3 with a similar config, and it flies along.
Which is what makes it even more difficult to diagnose.And yes, I might be running a bit tight on memory, but then why does Zen Cart and phpbb running with a big DB load pages sub 200ms?
- The topic ‘WP admin, even 3.3, incredibly slow.’ is closed to new replies.