Having a server is great, especially if it is a VPS or a one of the few good shared hosters that allow SSH (shell) access. It is awful though when you start having problems with your server, what do you do? Well contacting your hosts support is always the best thing, but there are a few things you can do to check if the problem can be fixed straight away.
N.B. I would always recommend contacting your hosts support anyway as they will always be able to help you with your problem.
What is Putty?
Putty, or more precisely PuTTY is a telnet/ssh client used to connect to your server via a secure tunnel (of sorts). This allows you to run commands on the server as if you were sitting at it. Cool, huh? As *nix (Unix/Linux) servers are normally solely a command line (terminal) affair you can think of it as a DOS prompt. Take a look below.
See how similar they are? Now let’s get into the good stuff.
Accessing Your Server With PuTTY
First thing you need is to check you have SSH access to your server. The best way is to check your hosts website. If they have a Wiki or FAQ check those for any mention of SSH or Shell and where or what the login details would be. If that fails contact your host and ask if they allow Secure Shell Access to the server and what your login details are. If, however, you are impatient you could always try your SFTP login details as they are sometimes the same as your SSH login.
Next up fire up PuTTY. Place your website’s domain name, or if different, what your host has suggested, in the ‘Host Name’ field and hit ‘Open’. You’ll be asked to enter the user & password details that I mentioned earlier. Oh, and yes it is perfectly normal that you don’t see the password as you are entering it.
Once you’ve logged in you might be thinking: “Oh, crap. Now what do I do? This is all very scary.” Well I’m here to say, don’t panic (We all know the answer is 42!). Let’s take a look at what we can do to diagnose any server problems.
Using PuTTY to Diagnose Problems
One of the most common problems on VPS or shared servers (especially those with resource limits) is running out of memory. If this happens you will experience anything from pages not loading at all, to ‘500 Internal Server Error’ messages. In WordPress you can also get random ‘404 Not Found’ errors when running memory intensive tasks such as posting a comment or publishing a post.
To see if this is the problem you will need to run a command called
top. This is a system monitor for *nix systems, think Windows Task Manager.
Above is the familiar (to most people) sight of the Windows Task Manager.
That is the not so familiar (again to most people) sight of the *nix system monitor. You can see, however, if you look carefully that it gives pretty much the same information as the Windows Task Manager.
The best way to use top is to run
top -c then hit Shift+M to order the processes by memory usage, that way you can see what is using the most memory. Now leave the PuTTY window open & use your browser to try and trigger the error on your website, or even just look at ‘xxxxxxk used, xxxxxxk free’ to see if the amount free drops too low. If it does drop too low, it could just be that you are running out of memory on your server.
If you are running your site on a shared server that probably won’t work. If you are lucky enough to have a shared hoster that does allow you to run
top -c it will probably show the amount of memory available on the entire server. This isn’t really much help. Instead you need to ask your host how much memory your user is allow to use and then guestimate (add up the totals under the RES column) your total from the running processes. The thing to remember is that the totals are in bytes, unless it has a ‘k’ (kilobytes) or ‘m’ (megabytes) next to it.
Fixing The Problem
Unfortunately memory limitations are quite hard to get around. If you are running WordPress or a similar app you could try using a caching plugin, preferably with Mod_Rewrite as this will stop PHP from being called & save you a lot of memory. If you are on a VPS you could try disabling some features you aren’t using, if your host allows, or if you are up for it you could install Nginx or lighttpd which are lightweight alternatives to Apache. Failing the ability to reduce your memory usage, the only solution is to increase the amount of memory you have to play with.
Those are the basics of how you can use PuTTY to debug memory problems on your server. I wrote this tutorial because of quite a few requests I’ve had regarding how I found out that my server was using too much memory (hence the recent server move), I hope it has answered your questions. Please remember that there are lots of other commands you can run via PuTTY, for example it is a lot quicker to delete a large amount of files via PuTTY than it is via SFTP.
If you have any questions about anything in this tutorial please let me know via the comments below and I’ll do my best to answer them. Thank you for reading.