01 November 2011
Cloudns.net - October graphs and statistics
NS1
NS2
NS3
NS4
PNS1
PNS2
PNS3
27 October 2011
Multiple values in one column (aka GROUP_CONCAT for T-SQL)
There are various way to do this but first of all SQL tables. I have own structure already in place with some thousands of records (some might say not enough, but we will see clear speed difference anyway):
Table #1 - page
id int
id_hash nvarchar(40)
title nvarchar(100)
Typical data look like:
1 004AAEAE62F8B... Title XYZ
2 00EAF730FC50B... Title 123
Table #2 - page_modules
id int
id_parent nvarchar(40)
module_type nvarchar(20)
module_id nvarchar(40)
Typical data look like:
1 004AAEAE62F8B... GALLERY 01D2255A09E....
2 004AAEAE62F8B... ARTICLE 045A6F30D05....
3 00EAF730FC50B... ARTICLE 068FC352B6B....
And now what we want to have:
1 004AAEAE62F8B... Title XYZ GALLERY|ARTICLE
2 00EAF730FC50B... Title 123 ARTICLE
This is just example what I want to have in my SELECT results. Original table #1 has over 15 fields and table #2 is pretty much same. Table #1 has around 1000 records, table #2 has around 3 times more because of modules linked to pages.
I have tried 3 different method how to get result I need.
Method #1: Creating T-SQL function with COALESCE
CREATE FUNCTION [dbo].[GetModules]
(
@parent nvarchar(40)
)
RETURNS varchar(max)
AS
BEGIN
declare @output varchar(max)
select @output = COALESCE(@output + ' ', '') + module_type
from vwPagesModules
where parent = @parent
return @output
END
and test SELECT:
SELECT *, dbo.GetModules(id_hash) FROM vwPages AS p
10 runs average
Client processing time 98.2000
Total execution time 107.3000
Wait time on server replies 9.1000
Method #2: Creating SELECT within SELECT
select
*,
modules = (
select module_type + ' ' from vwPagesModules pm
where pm.parent = p.id_hash
for xml path('')
)
from vwPages p
10 runs average
Client processing time 31.9000
Total execution time 46.2000
Wait time on server replies 14.3000
Method #3: Creating SELECT with CROSS APPLY
SELECT *, LEFT(module_type , LEN(module_type )) AS module_type
FROM vwPages AS p
CROSS APPLY
(
SELECT module_type + ' '
FROM vwPagesModules m
WHERE m.parent = p.id_hash
FOR XML PATH('')
) pre_trimmed (module_type)
10 runs average
Client processing time 32.3000
Total execution time 49.0000
Wait time on server replies 16.7000
These tests are by no means scientific tests, I would need more data and probably optimize tables a bit but I hope that it can quickly show you what methods can be used for this functionality and how it behaves. Personally I like method #1 because you dont have to write complicated Selects but it's the slowest of pack and I believe having 100 000 records the difference would be even bigger. Method #2 and #3 are pretty much same speed.
I am planning to repeat these tests on much larger database and also implement some WHERE filtering to see how these methods cope.
Finally, all tests have been done directly on MS SQL server machine locally, using MS SQL Server Management Studio.
Please leave comments with your opinions, ideas or just to say thanks.
17 September 2011
New ElasticHosts beta control dashboard
This is quick comparison how the old and new dashboard looks.
You can immediately see that the new dashboard is much better optimized, virtual drives are put next to the actual machine and the space is used more effectively.
What the new beta dashboard brings is much better work with AJAX. You can change you VNC password on the fly, without need to switch off machine and then switch it on. Just click on VNC password box and put the password to active VNC or leave it empty to disable VNC service.
The same AJAX functionality work with static IP addresses. Whilst in old dashboard you had to email EH to setup reverse DNS records in you you can do it on your own:
Cloudns.net service availability update
DNS-cloudns-ns1 | 100.000% (100.000%) | 0.000% (0.000%) | 0.000% (0.000%) | 0.000% |
DNS-cloudns-ns2 | 96.517% (96.517%) | 3.483% (3.483%) | 0.000% (0.000%) | 0.000% |
DNS-cloudns-ns3 | 99.927% (99.927%) | 0.073% (0.073%) | 0.000% (0.000%) | 0.000% |
DNS-cloudns-ns4 | 100.000% (100.000%) | 0.000% (0.000%) | 0.000% (0.000%) | 0.000% |
DNS-cloudns-pns1 | 99.952% (99.952%) | 0.048% (0.048%) | 0.000% (0.000%) | 0.000% |
DNS-cloudns-pns2 | 100.000% (100.000%) | 0.000% (0.000%) | 0.000% (0.000%) | 0.000% |
DNS-cloudns-pns3 | 100.000% (100.000%) | 0.000% (0.000%) | 0.000% (0.000%) | 0.000% |
I hope that helps you with the decision whether to use or not Cloudns.net and whether to go with free servers or pay small additional fee for premium servers.
07 July 2011
Last 7 days of Cloudns service, NS1-4 and PNS1 + PNS2
PNS1
PNS2
NS1
NS2
NS3
NS4
21 June 2011
New control panel for ElasticHosts
I have to say it looks much better and it is much easier to navigate through the virtual machines and its mounted drives. There might be some issues but I cant wait for this version to go live. It will make our life much easier.
Good job ElasticHosts.
ElasticHosts - weekly update and first SLA refund
EH VM1
EH VM2
As you can see last 7 days it has been 100% working and functional. That's exactly the reason why I have chosen EH as our IaaS provider.
There are couple of things:
- 22 minutes downtime 2 weeks ago have been refunded under SLA (We got around 6 pounds of credit for 22 minutes). They had problem with faulty switch and problems were 4x 5 minute periods.
- Be carefull when you create new VM, problem with their current control panel (which I honestly dont like, it might behave pretty but it is not very usable) is that it will allow you to create machine even if you dont have enough free resources. I made mistake when creating 3rd machine (debian) which I wanted to have only 500mhz cpu and 256 ram. I forgot to change sliders and kept default 2000mhz and 1024 ram and it created this machine although I did not have enough free resources on my account.
Immediately I got email that I need to increase my credit or in few hours all machine would be switched off. This is not good behaviour, by mistake I created unwanted machine and it immediately charged me. If I did not have SLA credit from EH on our account I would probably disabled all our machines by mistake. Not good.
Cloudns.net down again - DDoS attack again?
- Who hates Cloudns.net so much that every week or two they are under DDoS attack?
- Who have resources for such attack every time and repeat it so often?
- How is it possible that of 5 servers at least 3 or more can be down?
10 June 2011
ElasticHosts - Real user & hosting experience
There are dozens of forums for webmasters with discussions about hosting, posts about recommended or bad providers. The problem with such forums is that for every recommendation you have 3-5 bad opinions. It means that service or provider itself may not be necessarily bad but there are people who try to ventilate their frustration online. You don't usually get positive reviews online, if it works there is no reason to complain online.
We have been looking for right provider and solution for 2-3 weeks. First choice was to choose dedicated, VPS or cloud hosting. We chose cloud hosting based on fact that we had option to try ElasticHosts, CloudSigma, RackspaceCloud for free and directly compare it against our current dedicated HP ML330 G6 with RAID1 SAS drives. We have done plenty of tests and were quite happy with the speed of servers, network.
We chose ElasticHosts simply because:
- they have partnership with Peer1 and ServerBeach, both of them considered quality providers.
- Peer1 seems to be really good and fast network, we dont have problem with websites speeds in Slovakia, people from CZ, UK and US are all reporting very good speeds. Something we could not guarantee on local servers
- prices for the service were/are acceptable. I wonder how will the prices change in time with dedicated providers giving 1TB+ of traffic for free these days. Even ServerBeach gives 1TB of traffic with their cheapes dedicated server (£89 )
- we cant be bothered with own hardware, costs and problems related to own dedicated servers. With dedicated server providers I don't like idea of waiting for support to change drive or memory for few hours (we have seen some horror stories), we prefer option of simply moving our VM into another HW
- they have IaaS cloud platform and accept clients system images, own API and Elastichosts are gainong popularity with many scripts/packages supporting them directly
- they have persistent storage up to size of 2 TB, hopefully prices for drive will get a bit lower in time
- easy to use control panel, quick and easy creation and administration of various systems, no packages with fixed memory, cpu and drive for every package. You simply buy memory, drive, cpu and you can split whatever way you want. The minimum for first order is 2ghz cpu, 1024mb and rest you can do whatever you want
- very quick support and sales responses (90% of responses comes from Anna, so she is either robot, workaholic or whoever replies they have they all have emails set as Anna)
- very good documentation and FAQ, so good and big that I missed many important points but luckily support is really good and responsive and they replied to everything very quickly
- I had technical problem so picked up a phone and ... they are live people so you can have chat and discuss technical things over the phone quickly
- ... and finally because it is cloud/VPS/whatever you call it. If we don't like it, we simply download drive images and go to another cloud/VPS provider. Simple as that, no long contracts ...
- How big and reliable they are? Time will tell, so far they had one problem with faulty router and they seemed to solve it quite quickly
- What happens if there is a problem with the site outside their work hours? Phone switches to voice mail.
- All other providers have online system monitoring available to clients and public. Elastichosts don't have that now, they said they are planning to do it for public as well. So for time being I have been using Icinga to monitor all servers, network.
- Prices. Will they move as HW and connectivity gets cheaper? Fact is that Cloud hosting is simply more expensive than even dedicated server.
Cloudns.net - additional experience & Godaddy Premium DNS comparison
The best practice for me over the time is to have one additional DNS server. With the prices so low for linux virtuals you can simply pick provider, setup any Linux (I prefer debian and bind combination) and create secondary DNS server. It should cost you really minimum but you will keep your NS servers alive all the time.
Once frustrated with the Cloudns.net service I have decided to use Anycast Premium DNS from Godaddy. But it was such awful experience that just after two days I have asked for refund. Few points I dont like about Premium DNS:
- Only two Nameservers - this might be enough but I live by saying more is better
- Vanity servers - this is really showstopper for me. You can use vanity servers only for domains hosted by GoDaddy.com. What is the point? Cloudns.net is not asking about domains and their registration. You have it, you setup Cloudns.net nameservers (or vanity nameservers) and that's it.
- Unbelievably slow and difficult to use control panel - Where was the UX designer when they developed Godaddy.com control panel? It is really difficult to use. And I have been using them for over 4 years for domains. Showing control panel to my wife I realized she couldnt move there and find anything I asked for. Fail.
24 March 2011
Top 3 online DNS testing tools
- IntoDNS (www.intodns.com)
Completely free and really sophisticated information about you domain name. - DNS Check (http://dnscheck.iis.se/)
Also very good tool but not as sophisticated as IntoDNS - How is my DNS? (http://www.howismydns.com/tools.php)
Not my preferred tool but I always use it to cross-check results with previous two tools.
- DNS stuff (http://www.dnsstuff.com/)
Cloudns.net DNS management service - experience
- free or paid version
- paid version is very cheap
- it is not anycast (go and try godaddy.com)
- Seems to be popular target for DDoS attacks, so far there was one 12 hour failure (sometime between Christmas and New Year's Eve)
- Very slow to respond to any questions or suggestions
- Main NS1 machine is the same one as API/web control panel machine
- It doesnt have templates (yet, but not showstopper as you can copy records mega quickly. see good things.).
- because they are slow to respond you just hope there is no technical problem. they have 4 servers on quick lines so intodns.com is really giving good results with cloudns.net. if all works (which it does most of the time)
- stability? it seems like small company or clever individual effort, so dont know what happens if something happens? They seem to be improving constantly so for now I have all domain with them. I just exported all records into bind back files and if something happens I will be back in no time with other provider. I have also 5th nameserver which is mine which mirrors all records.
- It is cheap, mega cheap for that service
- It has 4 independent nameservers
- You can create vanity servers
- You can easily import existing bind zones
- You can see live statistics for your domain
- You can specify all sorts of settings (A, AAAA, CNAME, MX, TXT, NS, SRV, web redirects)
- It is fast (if it isnt under DDoS attack). Working with control panel is approximately 1000x quicker than Godaddy.com control panel. You can easily copy all required records between domains, it is really fast and quick.
- You can create Cloud domains. Basically you create one domain and all records and if you have other domains with exactly same settings you just put them into domain cloud and they all work immediately with same records.
HeadJS script? Is it really necessary?
I have read articles and forum posts about HeadJS script and how good it is, how it can speed up your site and basically do miracles with your sites :)
Head.js (http://headjs.com/) is tiny script which improves loading speed of your websites/pages.
The latest version is version 0.9. Demo on the headjs.com has some problems, I find it really strange that developer has not yet updated javascript links within headjs demos (there are 404 errors and js wont load). So they are basically worthless if you try to measure speed.
I have removed all github links and added various CDN javascript libraries. Now all the libraries are working, return status 200 OK. Point of CDN usage is that scripts wont be slowed by speed of my web server and most of these javascript get loaded from CDN anyway.
Original test is from head.js website, it calculates how long it takes to load page either using classic <script> within <head> or using just one <script src="head.js"> library and rest specifying as javascript call:
head.js("https://ajax.googleapis.com/ajax/libs/yui/3.3.0/build/yui/yui-min.js") .js("http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js") .js("https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js") .js("https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojo/dojo.xd.js") .js("https://ajax.googleapis.com/ajax/libs/mootools/1.3.1/mootools-yui-compressed.js") .js("http://cdn.jquerytools.org/1.2.5/all/jquery.tools.min.js");You can try amended benchmars here:
HeadJS demo with script src (i am ignoring bottom <script> locations):
http://www.feronovak.com/test/headjs/script.html
HeadJS demo with head.js
http://www.feronovak.com/test/headjs/headjs.html
I have disabled all extensions, addons, plugins for all browsers to make it as fair as possible. Still this is not any scientific test and methods used are pretty lame. But it works for me as this is how normal person browsing a page will see it.
And my results (please feel free to post your times in discussion):
Chrome 10.0.648.151
SCRIPT SRC DEMO
- 1st run, empty cache: 261ms
- 2nd run, cached files: 38ms
HEAD.JS DEMO
- 1st run, empty cache: 24ms
- 2nd run, cached files: 14ms
Results are quite clear, head.js loads page much faster than classic <script> method.
Firefox 4.0
SCRIPT SRC DEMO
- 1st run, empty cache: 263ms
- 2nd run, cached files: 111ms
HEAD.JS DEMO
- 1st run, empty cache: 261ms
- 2nd run, cached files: 108ms
Really interesting this one. FF 4.0 basically wont show any difference with 1st run, same numbers for both first runs. Even more interesting is that cached run is the same speed for both versions.
Internet Explorer 9.0
SCRIPT SRC DEMO
- 1st run, empty cache: 368ms
- 2nd run, cached files: 116ms
HEAD.JS DEMO
- 1st run, empty cache: 18ms
- 2nd run, cached files: 8ms
This is really surprising result, IE9 loads head.js fastest from all browsers. Yes, I have tried everything, I deleted cache, closed whole IE9, deleted cache and loaded page. Times are very consistent and it really is mega fast. It is even faster than Chrome 10.
Internet Explorer 8 (IETester)
SCRIPT SRC DEMO
- 1st run, empty cache: 361ms
- 2nd run, cached files: 206ms
HEAD.JS DEMO
- 1st run, empty cache: 16ms
- 2nd run, cached files: 14ms
Again huge time difference. I am only using IEtester but it seems that it really is such a difference when loading site. Again, I am loading page without cache for 1st run, and then cached for 2nd.
Internet Explorer 6 (IEtester)
SCRIPT SRC DEMO
- 1st run, empty cache: 670ms
- 2nd run, cached files: 180ms
HEAD.JS DEMO
- 1st run, empty cache: 21ms
- 2nd run, cached files: 15ms
This is most visible difference when loading the page. Old IE6 just won't die and head.js can quite improve loading time.
It seems that head.js really can improve webpage loading times. However, I won't be putting it into my projects until I am 100% sure it works well with all the JQuery plugins and javascript codes. But big thanks to developer for creating such useful tool, I am sure that many sites will use this soon (or in fact use it already).