Wednesday, June 6, 2012

Four Critical Web Design Rules


"Content is King! If you want a website to generate back-links and have quality content the search engines love, be sure to make it readable by both people and search engines. Search engines are working to give people quality results. Thus, they are looking for sites with quality content. So - by building site content for people, not only are you getting back to basics (information dissemination to people via the Internet), you are creating a site search engines will love. So, build sites for people - and the search engines will come.

When creating a new website or redesigning an existing site, there are four critical rules which should be followed to make the site effective, functional, loved by search engines - and successful.

1. Easy to Read

When building a website, the first thing you need to be sure of is that your website is easy to read. When you write content, remember that most web site visitors don't read every word of a page - in fact, they only scan pages to find what they want.

Break up Your Content

Break up your pages and use headers between major ideas so people scanning your site can find what they want quickly. Use meaningful headers between each paragraph or major idea - this helps with SEO. Headers should be created with the H1 through H4 tags for SEO. Always use good writing structure. Additionally, avoid long paragraphs that run on. You should break up any long paragraphs.

Color and Fonts

To help readability, use high contrast colors between font and background. Black text against a white background may seem stark, but it is very readable. To make a website easy on the eyes, try an off-white background and a dark gray (almost black) text color.

Things to avoid with content color: 
  • Avoid vibrant background colors like purple or yellow. Such back colors make text difficult to read.

  • Avoid using an image behind your text.

  • Avoid using bright text colors on bright backgrounds.

Fonts Matter

One simple statement covers the font issue: 

Simple fonts are the best; the more fancy the font, the harder it is to read. 

Since many browsers only have the standard font set, use standard fonts. In reality, there is no "standard", but there are certain fonts that are installed on most browsers. These include Arial, Verdana, Tahoma and Times New Roman. Your readers will see something different than you see if you use other fonts. 

Standard Compliant Browser for Development

When developing and testing your site, use a Standards compliant browser like FireFox. If you develop your site to be standards compliant, it will work in most browsers, including MS Internet Explorer (IE). It is recommended that you test your site using the latest and last browser versions of IE (IE6 and IE7). To run multiple versions of IE on the same machine, TredoSoft.com has a free installer that will install multiple versions of IE. It works great! 

Keywords in Content

Of course, when writing content, not only should it be formatted to be readable, but it must also be consumable by not only people, but by search engines. One way to make the subject of the content known to search engines is to use the keywords that people use to search for your site in your content. Be sure to use keywords in your header tags, your first paragraph and throughout your text. The keyword density should be between 4% and 7% - but any more than that could 1) be hard to read and still make sense and 2) be considered spam by search engines and banned. Keywords should also be used in your TITLE tags and your Meta description. 

2. Simplify Navigation

The menus and links make up the navigation that the visitor uses to get from page to page in a site. Always plan a site around how people will get from page to page. A visitor to your site should be able to get to what they want within three clicks of their mouse. 

Multiple navigation points makes it easy to find things. Repeat the top menu and at the bottom. Also create a left or right menu. 

Using links within your text to other areas on your site. You can create links so that they are good for search engine optimization (SEO). There are generally two ways to create links within your text: 

  1. The wrong way: "For search engine optimization techniques, click here."

  2. The right way: "Good techniques for search engine optimization are important to use."

Using link text (anchor text) that describes what the link is about is the best way. Search engine web crawlers (programs that automatically index the contents of websites) visit your site, they "read" links. Spiders can index descriptive links into a subject or keyword category. Spiders have nothing to work with when reading a "click here" until it reaches the linked page. 

This is Cross Linking - use it as much as possible when it makes sense to do so when writing your content. 

3. Consistent Design

At most, one or two layouts should be used in your site design. As a reader browses your site, they should be able to get used to looking in the same place for your navigation, for your sub-navigation and for your content. That's all there is to say about that. 

4. Lower Page Weight is Better

Page weight is the total size of a page on your site in bytes - code, text and images. Your site's page weight makes a big difference to your viewers. Lighter page weight is better for your readers because the page will download faster. The faster a page downloads, the faster they will get to the content. 

What is Means to be Light

  • No large images.

  • Fewer images are better.

  • Optimize images for the web at no more than 72 dpi

  • Use as small an image dimension as possible for the given design.

  • Use a table td bgcolor attribute or a background-color style attribute for solid color backgrounds.

  • Make gradients horizontal or vertical (not diagonal) so that you can use a small image "strip" and repeat it.

How "Heavy" Should a Web Page be? 

Certain studies show that 64K is a good maximum webpage size. 64K is a maximum, however it is still, in my opinion, really big! The smaller the page, the better. 25K is good, 15K is even better. There is a balance between design and function. It is a good idea to focus more on function. 

Try putting pages on your web host server as you build your site so you can test it as you go. For pages online, you can test the page weight at www.quasarcr.com/pageweight/ to be sure you are on track. 

Ways to make pages lighter: 

  • Use linked style sheets

  • Use DIVs instead of TABLEs where possible

  • Use simple repeating backgrounds for effect

Summary

Visitors to your website should be able to find what they are looking for within about three clicks. Search engines should be able to navigate easily through your site. Making a site easy to read with consistent page design, and easy to navigate will make it easy to find information. When people can find information, they are more likely to refer your site or link to it - which is exactly what you want to encourage. You will be on the way to building a readable and hopefully successful website that is loved by search engines if you follow these principals.

Accepting Credit Cards on Your Website


Are you thinking of selling things on the web? If so, you will probably also be considering some way in which you can accept credit cards on your site. Since new webmasters who visit thesitewizard.com often ask me about how they can get started accepting payments in this form, this article provides some basic information on adding credit card payment facilities to your website.
(Note: if you do not already have a website, you may also want to read How to Create / Make a Website: The Beginner's A-Z Guide.)

Why Do It?

Credit card payments allow you to take advantage of the following types of customers:
  1. Impulse buyers

    After reading your advertisements and hype on your site, buyers would be all fired up about your product. If they have a means of making a purchase immediately, you've secured that sale. If you only allow cheque payments, the additional time it takes for them to get their cheque book and mail out the cheque may be a deterrence. They may also have second thoughts later.
  2. International customers

    Credit card payment is a tremendous convenience if your customers are overseas. It automatically takes care of the problems of currency differences as well as the time it takes for a cheque to travel to the vendor. You will lose a large number of overseas customers if cheque payment is the only way you can accept payment.

Methods of Accepting Credit Card Payments

There are actually two ways in which you can accept credit cards on your site.
  1. Using Your Own Merchant Account

    To do this, you will need a bank that will allow you to open a merchant account. Requirements for this will vary from country to country, and you should check with your local banks for more information on this.
  2. Through a Third Party Merchant

    There are numerous companies around that are willing to accept credit cards payments on your behalf in exchange for various fees and percentages. These are also known as "payment gateways".

Which Method Should You Use?

The initial costs of opening your own merchant account is usually higher than when you use a third party merchant. Indeed, some third party merchants have no setup fee at all.
However, the transaction fee (which is what you pay the bank or third party merchant for each sale) is much higher when you use a third party as compared to when using your own merchant account.
A third party merchant is usually convenient to use when you don't know if you can actually make much out of your product or service. If you just want to test the water to see how things are, this is usually a good way to start. It is also convenient in that the merchant takes care of everything for you. You just get a cheque at the end of each payment period (if you have earned enough) and concentrate on your products, services and customers. Another benefit is that if you use a reputable third party merchant, your visitors may be more willing to buy your goods online since they trust that merchant to keep their credit card numbers safe.
Having your own merchant account lowers your transaction costs. However, you have to be careful to minimize your credit card risks since you'll be processing the credit card payments yourself. This is not to say that there are no risks attendant in using a third party merchant.

Some Third Party Merchants / Payment Gateways

Here's a list of some third party merchants that you might want to consider if you're looking for ways to accept credit card payments. Except for PayPal, I have not actually tried any of them myself (as a vendor). Check them out carefully and use them at your own risk.
Note that rates and stuff that I publish below were correct at the time I investigated these vendors. It will most likely have changed by the time you read this since the merchants tend to modify their rates from time to time according to market conditions. Make sure that you check the current (up-to-date) details from their site before making any decision.
The list is arranged alphabetically.
CCBill: There are no setup fees. Transaction fees vary (I can't find the schedule though) depending on the volume of sales in each accounting period. According to their website, "these fees are never more than 13.5% of revenues charged during this one-week period for CWIE hosting clients and 14.5% for non-hosting clients".
CCNow: This is only for people who ship tangible, physical products. There is no setup fee, and they charge 9% per transaction except in the November and December where the fees are 8% per transaction (yes, lower).
Google Checkout: Google has its own payment gateway that is available for US and UK sellers. It is mainly for use if you are selling tangible and digital goods, although you can also use it to charge for services and subscriptions. Charges range from 1.9% + $0.30 USD to 2.9% + $0.30 USD per transaction, depending on the volume of sales in the previous month. If your buyer is not from your country (ie, not in the US if you are in the US, or not in the UK if you are in the UK), there is also another 1% processing fee.
Kagi: Kagi's fees seem to vary according to the order size, type of item sold and the type of payment (credit card, cash, money order) used by your customer.
PayPal: This well-known service allows you to set up a Premier or Business account (you are subject to certain limits when receiving credit card payments if you use a Personal account, and probably also higher fees per transaction). The charges range between 1.9% + $0.30 USD to 2.9% + $0.30 USD for each transaction if you are in the US. Non-US users are charged different amounts according to the country. From experience, I find this service easy and fast to setup.
ProPay: A new competitor to PayPal (see elsewhere on this page) that currently only caters to US residents. Depending on the type of account you sign up for, you have to pay an annual fee (starting from $34.95) as well as transaction fees of 3.5% + $0.35 USD. However, to accept cards like American Express and Discover, you have to use their more expensive plans.
RegNow: Designed for software authors to sell their ware, this merchant charges a one-time activation fee of $19.95 USD plus a transaction fee of 6.9% plus $1 USD per unit for their commission (minimum $2 USD charge). They also provide you with facilities that allows you to easily set up an affiliate program.

How to Put an Order Form or Shopping Cart on Your Website

Once you have signed up the vendor of your choice, you will be able to put an order form or shopping cart on your site. Each vendor has a different method for this, but most, if not all, will provide you with premade forms that you can customize for your product or service.
(Note: if you use PayPal, and don't know where to start, see my tutorial How to Put an Order Form or Buy Now Button on Your Website Using PayPal for a step-by-step guide.)

Trying It Out

Whichever you choose, if you are selling things on the Internet, you really have not much choice but to accept credit cards. You probably don't know what you missed until you try it out.
All the best for your business!

This article can be found at http://www.thesitewizard.com/archive/creditcards.shtml

Where are the Documents or files we uploaded or attached stored in SharePoint?


Many of them know, those files are stored under SharePoint Content Database. But on which database table, on which format?
For that, i did a quick research on that, and here i give those results,
  • The AllDocStreams table in SharePoint Content Database stores the Document Contents.
  • The Contents of the document are stored in Content Column in the AllDocStream table.
  • The Content column is the Image Datatype, (stores in the format of Binary).
I provide a simple SQL Query to retrieve the Document List Name,File Name, URL, and the Content (Binary Format)
SELECT AllLists.tp_Title AS ‘List Name’,
AllDocs.LeafName AS ‘File Name’,
AllDocs.DirName AS ‘URL’,
AllDocStreams.Content AS ‘Document Contnt (Binary)’ 
FROM AllDocs 
JOIN AllDocStreams 
ON 
AllDocs.Id=AllDocStreams.Id 
JOIN AllLists 
ON
AllLists.tp_id = AllDocs.ListId

Tuesday, June 5, 2012

How to Choose a Web Host


by Christopher Heng, thesitewizard.com


What are some of the things you should look for when choosing a web host? The criteria for choosing a free web host and a commercial web hosting solution are slightly different although they do overlap. Since thesitewizard.com caters to people who might be looking for either of these types of hosting, I will deal with each of these in turn. If you are only interested in one of these types, you can simply skip to the appropriate section. I have written these sections to be as independant of the other as possible.

Choosing a Free Web Host

  1. Advertising

    Most free web hosts impose advertising on your website. This is done to cover the costs of providing your site the free web space and associated services. Some hosts require you to place a banner on your pages, others display a window that pops up everytime a page on your site loads, while still others impose an advertising frame on your site. There is really no hard and fast rule which is to be preferred: some people hate a pop-up window, other webmasters dislike having to stuff banner codes onto their pages, and many people cannot stand an advertising frame (which may cause problems when you submit your website to search engines). Whichever method is used, check that you're comfortable with the method.
    Note that free web hosts without forced advertisements aren't necessarily good news. Without a viable means to recover the costs of running their server, such hosts close with alarming frequency.
  2. Amount of web space

    Does it have enough space for your needs? If you envisage that you will expand your site eventually, you might want to anticipate future expansion. Most sites use less than 5MB of web space. Indeed, at one time, one of my other web sites, thefreecountry.com, used less than 5MB of space although it had about 150 pages on the site. Your needs will vary, depending on how many pictures your pages use, whether you need sound files, video clips, etc.
  3. FTP access

    FTP is the most common method used by people to transfer their web pages and other files from their computer to their web host's computer, so that it can be viewed by anyone in the world.
    Some free hosting providers only allow you to design your page with their online site builder. While this is useful for beginners, do you have the option to expand later when you become experienced and their online page builder does not have the facility you need? Online site builders also have significant disadvantages, a subject which I discuss at length in my article comparing online site builders with standalone web editors.
    FTP access, or at the very least, the ability to upload your pages by email or browser, is needed. Personally, I feel FTP access is mandatory, except for the most trivial site.
  4. File type and size limitations

    Watch out for these. Some free hosts impose a maximum size on each of the files you upload (including one with a low of 200KB). Other sites restrict the file types you can upload to HTML and GIF/JPG files. If your needs are different, eg, if you want to distribute your own programs on your pages, you will have to look elsewhere.
  5. Reliability and speed of access

    This is extremely important. A site that is frequently down will lose a lot of visitors. If someone finds your site on the search engine, and he tries to access it but find that it is down, he'll simply go down the list to find another site. Slow access is also very frustrating for visitors (and for you too, when you upload your site). How do you know if a host is reliable or fast? If you can't get feedback from anyone, one way is to try it out yourself over a period of time, both during peak as well as non-peak hours. After all, it is free, so you can always experiment with it.
  6. PHP and/or Perl

    (In case you're wondering: What is PHP and Perl?)
    It's quite possible for a website to work even without PHP or Perl access. For example, you can always use one of the many free script hosting services available that provide counterssearch enginesformspollsmailing lists, etc, without requiring you to dabble with Perl or PHP scripts.
    However if you really want to do it yourself, with the minimum of advertising banners from these free providers, you will need either PHP or Perl access. Note that it is not enough to know they provide PHP or Perl access: you need to know the kind of environment your scripts run under: is it so restrictive that they are of no earthly use? For PHP scripts, does your web host allow you to use the mail() function, which allows your scripts to send email? For Perl scripts, do you have access to sendmail or its workalike?
  7. Bandwidth allotment

    Nowadays, many free web hosts impose a limit on the amount of traffic your website can use per day and per month. This means that if the pages (and graphic images) on your site is loaded by visitors beyond a certain number of times per day (or per month), the web host will disable your web site (or perhaps send you a bill). It is difficult to recommend a specific minimum amount of bandwidth, since it depends on how you design your site, your target audience, and the number of visitors you're able to attract to your site. In general, 100MB traffic per month is too little for anything other than your personal home page and 1-3GB traffic per month is usually adequate for a simple site just starting out. Your mileage, however, will vary.

Choosing a Commercial Web Host

  1. Reliability and speed of access

    Not only should the web host be reliable and fast, it should guarantee its uptime (the time when it is functional). Look for a minimum uptime of 99%. In fact, even 99% is actually too low — it really should be 99.5% or higher. The host should provide some sort of refund (eg prorated refund or discount) if it falls below that figure. Note though that guarantees are often hard to enforce from your end — especially if the host denies there was any downtime. However, without that guarantee, the web host will have little incentive to ensure that its servers are running all the time.
  2. Data Transfer (Traffic/Bandwidth)

    Data transfer (sometimes loosely referred to as "traffic" or "bandwidth") is the amount of bytes transferred from your site to visitors when they browse your site.
    Don't believe any commercial web host that advertises "unlimited bandwidth". The host has to pay for the bandwidth, and if you consume a lot of it, they will not silently bear your costs. Many high bandwidth websites have found this out the hard way when they suddenly receive an exorbitant bill for having "exceeded" the "unlimited bandwidth". Always look for details on how much traffic the package allows. I personally always stay clear of any host that advertises "unlimited transfer", even if the exact amount is specified somewhere else (sometimes buried in their policy statements). Usually you will find that they redefine "unlimited" to be limited in some way.
    In addition, while bandwidth provided is something you should always check, do not be unduly swayed by promises of incredibly huge amounts of bandwidth. Chances are that your website will never be able to use that amount because it will hit other limits, namely resource limits. For more details, see the article The Fine Print in Web Hosting: Resource Usage Limits.
    To give you a rough idea of the typical traffic requirements of a website, most new sites that are not software archives or provide video or music on their site use less than 3 GB of bandwidth per month. Your traffic requirements will grow over time, as your site becomes more well-known (and well-linked), so you will need to also check their policy when you exceed your data transfer limit: is there a published charge per GB over the allowed bandwidth? Is the charge made according to actual usage or are you expected to pre-pay for a potential overage? It is better not to go for hosts that expect you to prepay for overages, since it is very hard to forsee when your site will exceed its bandwidth and by how much.
  3. Disk space

    For the same reason as bandwidth, watch out also for those "unlimited disk space" schemes. Many new sites (that don't host videos or music) need less than 20 MB of web space, so even if you are provided with a host that tempts you with 100 GB (or "unlimited space"), be aware that you are unlikely to use that space, so don't let the 100 GB space be too big a factor in your consideration when comparing with other web hosts. The hosting company is also aware of that, which is why they feel free to offer you that as a means of enticing you to host there. As a rough gauge, thefreecountry.com, which had about 150 pages when this article was first written, used less than 5 MB for its pages and associated files.
  4. Technical support

    Does its technical support function 24 hours a day, 7 days a week (often abbreviated 24/7), all year around? Note that I will not accept a host which does not have staff working on weekends or public holidays. You will be surprised at how often things go wrong at the most inconvenient of times. Incidentally, just because a host advertises that it has 24/7 support does not necessarily mean that it really has that kind of support. Test them out by emailing at midnight and on Saturday nights, Sunday mornings, etc. Check out how long they take to respond. Besides speed of responses, check to see if they are technically competent. You wouldn't want to sign up for a host that is run by a bunch of salesmen who only know how to sell and not fix problems.
  5. FTP, PHP, Perl, SSI, .htaccess, telnet, SSH, MySQL, crontabs

    If you are paying for a site, you really should make sure you have all of these.
    Note that some commercial hosts do not allow you to install PHP or Perl scripts ("What is PHP and Perl?") without their approval. This is not desirable since it means that you have to wait for them before you can implement a feature on your site. ".htaccess" is needed if you are to do things like customize your error pages (pages that display when, say, a user requests for a non-existent page on your site) or to protect your site in various ways (such as to prevent bandwidth theft and hotlinking, etc).
    Telnet or SSH access is useful for certain things, including testing certain scripts (programs), maintaining databases, etc. MySQL ("What is MySQL?") is needed if you want to run a blog or a content management systemCron is a type of program scheduler that lets you run programs at certain times of the day (eg, once a day). Check to see if these facilities are provided.
  6. SSL (secure server), Shopping Cart

    If you are planning on doing any sort of business through your website, you might want to look out to see if the host provides these facilities. These facilities normally involve a higher priced package or additional charges. The main thing is to check to see if they are available at all before you commit to the host. You will definitely need SSL if you want to collect credit card payments on your site.
  7. Email, Autoresponders, POP3, Mail Forwarding

    If you have your own site, you would probably want to have email addresses at your own domain, like sales@yourdomain.com, etc. Does the host provide this with the package? Does it allow you to have a catch-all email account that causes any email address at your domain to be routed to you? Can you set an email address to automatically reply to the sender with a preset message (called an autoresponder)? Can you retrieve your mail with your email software? Can it be automatically forwarded to your current email address?
  8. Control Panel

    This is called various names by different hosts, but essentially, they all allow you to manage different aspects of your web account yourself. Typically, and at the very minimum, it should allow you to do things like add, delete, and manage your email addresses, and change passwords for your account. I would not go for a host where I have to go through their technical support each time I want to change a password or add/delete an email account. Such chores are common maintenance chores that every webmaster performs time and time again, and it would be a great hassle if you had to wait for their technical support to make the changes for you.
  9. Multiple Domain Hosting and Subdomains

    For those who are thinking of selling web space or having multiple domains or subdomains hosted in your account, you should look to see if they provide this, and the amount extra that they charge for this (whether it is a one-time or monthly charge, etc).
  10. Server

    Is the type of operating system and server important? Whether you think so or not on the theoretical level, there are a few practical reasons for looking out for the type of server.
    In general, if you want to use things like write/use ASP programs, you have no choice but to look for a Windows server.
    Otherwise my preference is to sign up for accounts using the often cheaper, more stable and feature-laden Unix systems running the Apache server. In fact, if dynamically generated pages that can access databases (etc) is what you want, you can always use the more portable (and popular) PHP instead of tying yourself down to ASP. Another reason to prefer Unix-based web hosts (which include web hosts using systems like Linux, FreeBSD, OpenBSD, Solaris, etc) using the Apache web server is that these servers allow you to configure a lot of facilities that you typically need on your site (error pages, protecting your images, blocking email harvesters, blocking IP addresses, etc) without having to ask your web host to implement them. Knowledge about configuring Apache servers is also widely available, and can be found on thesitewizard.com's Configuring Apache and .htaccess pages as well.
    For those interested, you can read another discussion on the matter in the "Should You Choose a Linux or a Windows Web Hosting Package? Is There Such a Thing as a Mac Web Host?" article.
  11. Price

    I was actually hesitant to list this, but I guess it's futile not to. However, I would caution that while price is always a factor, you should realise ("realize" in US English) that you often get what you pay for, although it's not necessarily true that the most expensive hosts are the best.
  12. Monthly/Quarterly/Annual Payment Plans

    Most web hosts allow you to select an annual payment plan that gives you a cheaper rate than if you were to pay monthly. My current personal preference is to pay monthly with all new web hosts until I'm assured of their reliability and honesty. Paying monthly allows me to switch web hosts quickly when I find that the current host does not meet my requirements: this way, I'm not tied down to a bad web host because I have prepaid for an entire year. I do this even if the new web host guarantees that they will refund the balance if I'm dissatisfied, since at the point I sign up, I have no assurance that they will honour their guarantee. Later (usually after a couple of years), when I'm satisfied with the host, I may change payment plans to the discounted annual plans.
  13. Resellers?

    Not all hosting companies own or lease their own web servers. Some of them are actually resellers for some other hosting company. The disadvantage of using a reseller is the possibility that you are dealing with people who don't know much about the system they are selling and who take longer to help you (they have to transmit your technical support request to the actual hosting company for it to be acted upon). However, this also depends on both the reseller and the underlying hosting company. It is thus wise not to rule out all resellers; there are a number of reliable and fast ones who are actually quite good and cheap. In fact, a number of resellers sell the same packages cheaper than their original hosting company. If you find out that a particular company is a reseller, you will need to investigate both the reseller and the real hosting company.
  14. International

    If you don't stay in the USA, you have the option of hosting your site with some local provider. The advantage here is the ease of dealing with them (they are after all easily accessible by phone call or a visit), your familiarity with the local laws and easy recourse to those laws should it be necessary. It should be your choice if your target audience is local (eg a local fast food delivery service). On the other hand, hosting it in USA has the advantage of faster access for what is probably the largest number of your overseas visitors (particularly if you have an English-speaking audience). You also have a large number of hosting companies to choose from, and as a result, cheaper prices too.
  15. Others' Reviews

    You should make it a point to check out what others have to say about the web host. Some of the places you can do this include:
    • The newsgroup news:alt.www.webmaster. As you should always do when reading reviews (of anything), read the reviews posted here with a pinch of salt. Some glowing reviews may come from people working for the web host itself, disguised as multiple satisfied customers. Likewise, negative reviews of a particular host can sometimes come from unscrupulous competitors of that host.
    • thesitewizard.com's review, "Which Web Host Would You Recommend? (FAQ)", found at http://www.thesitewizard.com/archive/webhosting.shtml
    • Although not often, I sometimes make comments about a particular web host in my Budget Web Hosts page on thefreecountry.com as well.
    Don't skip this step, or you might find yourself being suckered by a host that everyone else is steering clear of.

The Myth of the Perfect Commercial Host

In general, I doubt that there are any "perfect" web hosting companies around. Note that even if you are prepared to pay a huge price for your hosting needs, it does not guarantee that your host is any good. This is an interesting industry where a high price does not necessarily yield quality hosting and support.
On the other hand, one thing you can probably be sure of is that you will not get top-notched support if you only pay (say) $5 a month. At that price, which company can afford to hire enough good help to cater to all its users?
Like me, you'll probably end up settling for a trade-off between price, reliability and features that you're willing to live with.

Monday, June 4, 2012

Capacity Planning for Windows SharePoint Services


This topic describes performance and scalability guidelines for Microsoft Windows SharePoint Services. The goal is to provide administrators with the information they need to purchase hardware, choose a server configuration, and manage the capacity of their Windows SharePoint Services deployments.
There are two kinds of capacity guidelines for Windows SharePoint Services:
  • Throughput — The approximate number of transactions per second that a given server configuration for Windows SharePoint Services can handle. This guideline helps you determine how many simultaneous users can use a given server resource without negatively affecting performance.
  • Scale  — The approximate number of objects that can be created in a given scope, for example, the number of documents per folder. This guideline helps you determine the server configuration required to host a given number of objects.

About Capacity and Throughput Guidelines

The goal of the throughput testing is to measure the number of transactions per second that a server running Windows SharePoint Services can handle. The measured throughput is then used to extrapolate the number of simultaneous users by using a model of typical user behavior.
A rough rule of thumb is that 1 transaction per second maps to 1000 users. This rule of thumb is derived by applying the following model for user behavior:
  • 1000 users
10% peak concurrency
  • 100 simultaneous users (10% of 1000)
100 seconds per request per user (36 requests per hour per user)
  • 100 simultaneous users/100 seconds per user per transaction
  • 1 transaction/second

CAPACITY TESTING METHODOLOGY

The Windows SharePoint Services team tests throughput by using automated load generation tools that work in machine time, not user time. In other words, real user behavior is not modeled in the test lab; server capacity is measured using fictitious "super users" who issue requests as fast as the server can respond. This is done to ensure that we’re measuring the capacity of the server, not the capacity of the load generation tool.
There are two main variables in the throughput testing:
  • Transaction mix — The mix of user transactions, such as browse home page, save document, and edit list item, and so on.
  • Server configuration — The configuration, such as a single server or a server farm with two Web servers, and so on.

About the Transaction Mix

The transaction mix defines the types and frequency of operations seen by the server, such browse home page, edit document, and so on. This topic contains two different transaction mixes:
  • Read/write — This is the typical SharePoint site operation mix. Most of the load is browsing to pages and documents in the site, but there is a substantial amount of list and document authoring as well. For details on the read/write operation mix, see Tested Read/Write Transaction Mix.
  • Read only — This is the typical load of a reference site where the data on the server is changing very slowly. For this mix, the entire test load is on the home page of the site. The home page is one of the most expensive pages to render, so this is a fairly conservative read-only load.

About the Server Configuration

The server configuration describes how computers are configured to run the site. Windows SharePoint Services supports a server farm design where multiple Web servers can be used to serve the same content, as in the following illustration.
Server farm configuration
Administrators can add capacity to both the Web server and database server tiers by adding more server computers to the server farm. The total capacity of the server farm depends on the number of Web servers, the number of database servers, and the ratio of Web servers to database servers.
The following configurations were tested:
  • Single computer — One computer running both the Web server and database server.
  • N-by-one server farm — One to eight computers running the Web server and a separate computer running the database server. This covers the most common server farm scenarios. These tests determine the marginal throughput increase for each additional Web server and the optimum ratio of Web servers to database servers. As the test results show, adding Web servers to the server farm adds capacity linearly until the fourth or fifth Web server. Beyond five Web servers for each database server, the system bottleneck becomes the database server. To add even more capacity you need to add a database server to the server farm.
  • Eight-by-two server farm — Eight Web servers and two database servers. This test validates the database scale out. An 8x2 server farm has roughly twice the total throughput as a 4x1 server farm. Extending the scale out model to 12x3 and 16x4 becomes a matter of providing sufficient network bandwidth for the server farm.
For the test hardware specifications, see Tested Hardware and Software.

About Throughput to Users

The Windows SharePoint Services performance lab found the peak throughput for each combination of transaction mix and server configuration. The throughput is measured in transactions per second. These transactions-per-second measurements can be converted to the total number of users using a model of typical end-user behavior. Like many human behaviors, there is a broad range of "typical" behavior. The user model for Windows SharePoint Services has two variables:
  1. Concurrency — The maximum percentage of the total user base who will be using the system simultaneously. The Windows SharePoint Services models all use 10% concurrency.
  2. Request rate — The number of requests per hour an active user generates on average. Windows SharePoint Services uses four models for user behavior:
    • Light — 20 requests per hour. An active user will generate a request every 180 seconds. Each response per second of throughput supports 180 simultaneous users and 1,800 total users.
    • Typical — 36 requests per hour. An active user will generate a request every 100 seconds. Each response per second of throughput supports 100 simultaneous users and 1,000 total users.
    • Heavy — 60 requests per hour. An active user will generate a request every 60 seconds. Each response per second of throughput supports 60 simultaneous users and 600 total users.
    • Extreme — 120 requests per hour. An active user will generate a request every 30 seconds. Each response per second of throughput supports 30 simultaneous users and 300 total users.

THROUGHPUT DATA

The following table shows the throughput results for each transaction mix, server configuration, and user model. The peak throughput point is highlighted in bold.
TRANSACTIONS PER SECONDTOTAL USER COUNT
LightTypicalHeavyExtreme
ConfigurationMixReadMixReadMixReadMixReadMixRead
Single Server344361,20077,40034,00043,00020,40025,80010,20012,900
1 by 16570117,000126,00065,00070,00039,00042,00019,50021,000
2 by 1121132217,800237,600121,000132,00072,60079,20036,30039,600
3 by 1156194280,800349,200156,000194,00093,600116,40046,80058,200
4 by 1161256289,800460,800161,000256,00096,600153,60048,30076,800
5 by 1164279295,200502,200164,000279,00098,400167,40049,20083,700
6 by 1157278282,600500,400157,000278,00094,200166,80047,10083,400
7 by 1163280293,400504,000163,000280,00097,800168,00048,90084,000
8 by 1153279275,400502,200153,000279,00091,800167,40045,90083,700
8 by 2-462-831,600-462,000-277,200-138,600
The following chart shows that adding additional Web servers to a single database server farm increases the capacity of the server farm, but only to a certain point. For the read-only transaction mix, the capacity of the server farm increases steadily for up to four Web servers and stops increasing at six Web servers. For the read/write mix, the capacity does not increase significantly beyond three Web servers.
Single Database Server Throughput vs. Web Server Count
Total capacity does not increase because the throughput is now limited by the one database server computer. Extending capacity beyond this point requires adding another database server to the server farm.
The following chart shows that adding an additional database server to the farm can extend the total capacity of the farm if there are sufficient web servers to handle the load.
Multiple Database Server Throughput

About Capacity and Scale Guidelines

The capacity of Windows SharePoint Services is also affected by scalability (how many objects can be created in a given scope, such as number of documents per folder). There are very few hard limits in Windows SharePoint Services. Most of the scale guidelines are determined by performance. In other words, you can exceed these guidelines, but you may find the resulting performance to be unacceptable.
One of the most important scale dimensions is site collections per database. This scale dimension depends on the number of indexes on the database. As the number of site collections increases, the performance of the system degrades as it serves more and more different site collections. As you can see in following chart, there is no hard limit where performance becomes unacceptable, but performance does degrades faster beyond 10,000 site collections and drops below 100 responses per second beyond 50,000 site collections.
Throughput vs. Site Collections
The other scale guidelines are shown in the following table. None of these are hard limits enforced by the system. They are guidelines for designing a server that has good overall performance.
OBJECTSCOPEGUIDELINE FOR OPTIMUM PERFORMANCECOMMENT
Site collectionsDatabase50,000Total throughput degrades as the number of site collections increases.
Web sitesWeb site2,000The interface for enumerating subsites of a given Web site does not perform well much beyond 2,000 subsites.
Web sitesSite collection250,000You can create a very large total number of Web sites by nesting the subsites. For example, 100 sites each with 1000 subsites is 100,100 Web sites.
DocumentsFolder2,000The interfaces for enumerating documents in a folder do not perform well beyond a thousand entries.
DocumentsLibrary2 millionYou can create very large document libraries by nesting folders.
Security principalsWeb site2,000The size of the access control list is limited to a few thousand security principals, in other words users and groups in the Web site.
UsersWeb site2 millionYou can add millions of people to your Web site by using Microsoft Windows security groups to manage security instead of using individual users.
ItemsList2,000The interface for enumerating list items does not perform well beyond a few thousand items.
Web PartsPage100Pages with more than 100 Web Parts are slow to render.
Web Part personalizationPage10,000Pages with more than a few thousand user personalizations are slow to render.
ListsWeb site2,000The interface for enumerating lists and libraries in a Web site does not perform well beyond a few thousand entries.
Document sizeFile50 MBThe file save performance degrades as the file size grows. The default maximum is 50 MB. This maximum is enforced by the system, but you can change it to any value up to 2 GB (2047 MB) if you have applied Windows SharePoint Services Service Pack 1. For more information, see Configuring large file support in Installing and Using Service Packs for Windows SharePoint Services.

Tested Read/Write Transaction Mix

The following table describes the mix of operations that make up the read/write transaction mix. The Windows SharePoint Services team counted only meaningful end-user operations in the throughput numbers, but the load on the server includes supporting transactions as well, such as getting the images, style sheets, and JavaScript files for the home page.
END USER OPERATIONPERCENTAGE
Get home page9.0%
Get list page (HTML)9.0%
Get list page (grid)9.0%
Get list form6.0%
Get static document15.0%
Insert list item1.5%
Edit list item1.5%
Delete list item1.5%
Insert document1.5%
Open document for edit1.5%
Save document1.5%
Delete document1.5%
List URLs1.5%
Short term check-out15.0%
Get cached document15.0%
404 errors10.0%
 NOTE   There are roughly two supporting transactions for each end-user transaction. In other words, the end-user operations make up about a third of the total transaction load on the server.

Tested Hardware and Software

The following hardware was used to gather the performance and scalability data in this topic.

WEB SERVERS

The Web server computers were Compaq DL360s with two 1 GHz Pentium 3 processors and 1 GB of memory. The computers were running a prerelease version of Microsoft Windows Server 2003, Enterprise Edition, build 3718.
 NOTE   The single computer tests were run on Web server hardware.

DATABASE SERVERS

The database server computers were Compaq DL380s with two 1 GHz Pentium 3 processors and 2 GB of memory. The computers were running Microsoft SQL Server 2000 SP2 and a prerelease version of Windows Server 2003, Enterprise Edition, build 3718.