Good morning
You say
4/ Can any experienced wordpress user recommend useful apache settings that increase performance? and
two busy sites on a shared server elsewhere and
running large wordpress sites
Have you seriously considered and rejected a
dedicated server ?
Although I am new to web sites, I am a very experienced developer and the one thing that I have noticed about most of the
VPS packages on offer is that the amount of guaranteed RAM is quite low. The amount is fine for running the OS and hosting the static aspects of the site but there isn't much space available for database caching.
If you are running an on line store where there will probably be few items to select from (to me less than a couple of hundred thousand rows is few) and are mainly inserting then there is relatively little benefit to be gained from extensive caching of the database.
However a blog site may benefit greatly from more RAM, the database behind it has more opportunities to be able to store and return already executed queries and prefetch data on the basis that it may be needed. Its pretty hard to run out of CPU resource on a modern top of the range PC running as a databases server unless you deliberately cripple it with insufficient RAM, it should always be RAM or disc bound.
So choosing more RAM maybe beneficial to your site, but once you get up to the Windows Hyper V with 2GB of guaranteed RAM you are very close to the price of a dedicated server, as far as I can see the Linux VPS offering stop at a much lower limit.
Given that you are going to go through some hassle transferring your site, is now the time to go a fully dedicated server?
I have the
Hyper V VPS Starter pack and have done some speed tests on heavy database use, there is a process on my site that inserts up to 1,000 rows in this table one after each other.
CREATE TABLE [dbo].[tabTokens](
Ref_id int IDENTITY(1,1) NOT NULL PRIMARY KEY,
DateCreated_date datetime NOT NULL DEFAULT GetDate(),
DateLastModified_date datetime NULL,
OperatorId_char varchar(40) NULL,
RefIdtabIssuers_int32 int NOT NULL,
RefIdtabTokensBatchHeader_int32 int NOT NULL,
TokenID_char varchar(32) NOT NULL,
Points_int32 integer NOT NULL,
RefIdtabRedeemers_int32 int NULL,
DateRedeemed_date datetime NULL,
InDispute_bit bit NOT NULL DEFAULT 0
) ON [PRIMARY]
GO
CREATE INDEX idxRefTdtabIssuers ON [tabTokens](RefIdtabIssuers_int32)
GO
CREATE INDEX idxRefTdtabRedeemers ON [tabTokens](RefIdtabRedeemers_int32)
GO
CREATE INDEX idxTokenID ON [tabTokens](TokenID_char)
GO
CREATE INDEX idxTokenDisputed ON [tabTokens](InDispute_bit) WHERE InDispute_bit = 1
GO
even on an empty table it is significantly slower than on my development machine which has 2GB of RAM. With the RAM that I have its not possible to cache all the indexes, so index updates perform a lot more disc access than is really necessary. It's hard to be precise on the differences because you never know how much extra RAM you are getting.
Bye
Ian