You4eea's picture


I am running WordPress on Turnkey LAMP Stack ( ISO install. Recently installed last month.

Setup as a guest in VirtualBox on a Windows 2008 R2 Server.

Superfast Quad Core with 16GB ram, plenty of memory and CPU cycles availiable. when it spikes it might go as high as 50% CPU for a second maybe two seconds at times.

I am very new to TurnKey, but not to *nix.

Here are my conf - files.

System Host File

/etc/hosts file localhost lamp pinehurst pinehurst.local pinehurst pinehurst.local

#Required for IPv6 capable hosts
#::1 ip6-localhost ip6-loopback
#fe00::0 ip6-localnet
#ff00::0 ip6-mcastprefix
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters
#ff02::3 ip6-allhosts

Apache VirtualHost File


        ServerName pinehurst.local
    ServerAlias www.pinehurst.local
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/pinehurst.local
        DirectoryIndex index.php index.html index.htm index.shtml
        ErrorLog /var/www/pinehurst.local/logs/error.log
        CustomLog /var/www/pinehurst.local/logs/access.log combined
        <Directory /var/www/pinehurst.local>
                Options Indexes FollowSymLinks MultiViews
                Order allow,deny
                allow from all

MySQL Conf File


# The MySQL database server configuration file.
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
# For explanations see

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
port        = 3306
socket        = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
socket        = /var/run/mysqld/mysqld.sock
nice        = 0

# * Basic Settings
user        = mysql
pid-file    = /var/run/mysqld/
socket        = /var/run/mysqld/mysqld.sock
port        = 3306
basedir        = /usr
datadir        = /var/lib/mysql
tmpdir        = /tmp
lc-messages-dir    = /usr/share/mysql
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        =
# * Fine Tuning

key_buffer = 384M
sort_buffer_size = 2M
net_buffer_length = 8K
read_buffer_size = 2M
read_rnd_buffer_size = 64M

max_allowed_packet    = 64M
thread_stack        = 192K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover         = BACKUP
max_connections        = 50
#table_cache            = 64
#thread_concurrency     = 10
# * Query Cache Configuration

## query_cache_limit    = 1M
## query_cache_size        = 16M

query-cache-type = 1     #0=off, 1=on, 2=on demand
query_cache_size = 75M     #total amount of memory to use for the cache, depending on the amount of memory your server has
query_cache_limit = 1M     #the max size of any one query result which will be cached, prevents a single massive query filling up the cache

# * Logging and Replication
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1
# Error log - should be very few entries.
log_error = /var/log/mysql/error.log
# Here you can see queries with especially long duration
#slow_query_log_file = /var/log/mysql/mysql-slow.log
#slow_query_log      = 1
#long_query_time = 2
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id        = 1
#log_bin            = /var/log/mysql/mysql-bin.log
expire_logs_days    = 10
max_binlog_size         = 100M
#binlog_do_db        = include_database_name
#binlog_ignore_db    = include_database_name
# * InnoDB
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
# * Security Features
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem

max_allowed_packet    = 32M

#no-auto-rehash    # faster start of mysql but no tab completition

key_buffer        = 16M

# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
!includedir /etc/mysql/conf.d/

PHP Conf File

I have attached it, it is just to big for in here.


The webmin Web interface/UI works perfectly, it is fast and load very quickly. So that helps narrow it down a bit, just not sure where to start. Any suggestion would be greatly appreaciated.




Jeremy Davis's picture

If it's been slow all along then there is something going wrong within VirtualBox or your OS (could be config or perhaps even a bug?). Depending how much resources you give it, by default, with minimal load it should hum along fine, even with really modest VM specs.

Having said that, your note that Webmin responds as it should suggests that it's not hardware, host OS or VBox related, and that it's most likely Apache/WordPress related.

So I'm guessing that it's got slow since you've configured it how you want. Assuming so, the first thing I'd be looking at is the WordPress plugins you have installed. Get rid of everything that you don't need for starters. Then disable them one-by-one until you see a noticeable difference. Or perhaps do it the other way around? I.e. disable them all and see how it goes. If it's ok, then re-enable them one by one...

You might also want to check the resource usage inside the VM. That may show something. Perhaps the Apache logs (/var/log/apache2/error.log) might give you some useful info?

Regardless it's probably a good idea to use some sort of benchmarking tool to test your server. Then you have some empirical stats about any improvements (not just how it "feels").

You4eea's picture

Jeremy Thanks for you reply,

Here are some notes for anyone that runs into this.

First, I straightened out my /etc/hosts file:

## PUT ALL HOSTNAME ON ONE LINE THAT SHARE 127... IP localhost lamp pinehurst.local pinehurst turnkey.local

#Required for IPv6 capable hosts
#::1 ip6-localhost ip6-loopback
#fe00::0 ip6-localnet
#ff00::0 ip6-mcastprefix
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters
#ff02::3 ip6-allhosts



Next, I moved my VirtualBox VM to another computer, loaded up and it ran as expected.

Page load times on this computer according to firebug are between 2 & 3sec. This is much lower then 7 to 10secs on the server I am needing this to be on.

Moved it back to my server, logged into my wp dashbaord disable all the plugins and switched to default theme and still running slow. I only gained about 2sec.

I have made many change to mysql, php, and apache, nothing worked.

As you mentioned above it has to be something with wordpress or my virtbox, I'm leaning more toward VirtualBox, I have looked at my virtbox configs and everything looks fine for my server.

I'm going to try a few more things with my VirtBox and let you know what I find.



Jeremy Davis's picture

It certainly does sound like it may be VBox related; especially if it is running fine with same specs on another VBox instance (on another PC). I'd double check that they are both the same version of VBox, also any other differences between the 2 OS.

It may pay to post in the VBox forums as they will know much more about VBox that I do! :)

Another thing that may be worth testing is trying your VM in VMware Player (not open source but it is free as in beer). If you export your VM as an OVA VMware will complain when you import it, but if you just click through all the warnings it should work fine (that's been my experience anyway).

Jeremy Davis's picture

First up, even though it seems similar, because issues like this can have multiple causes, it's likely something completely different.

You'll need to be a signed up and logged in user to start a new thread but I will get a notification and will respond ASAP.

In your thread, please provide as much info as possible. Things such as TurnKey version and appliance name are important, as well as specs about the VM resources and the host system (assuming it's running as a VM). It'd also be good to know details about when it started, etc.

Add new comment