A VPS I'm using has become unbearably slow. Over ssh, things like changing directories or opening small files take 5+ seconds to complete. The website hosted on it, however, performs with reasonable latency as long as it doesn't read too more than a couple KB from the DB.

Below is cat /proc/meminfo. I'm not a sys admin, but this looks suspicious to me. Especially Active/Inactive being 0. Does this mean it's not buffering any disk reads? So, does this (partially?) explain the performance problems? Is there a straightforward way to fix this (I have root access, but no access to the hosting provider's control panel).

EDIT: CPU utilization is about zero most of the time and doesn't seem to affect the issues I'm having.


MemTotal:      4190208 kB
MemFree:       3970416 kB
Buffers:             0 kB
Cached:              0 kB
SwapCached:          0 kB
Active:              0 kB
Inactive:            0 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:      4190208 kB
LowFree:       3970416 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:               0 kB
Writeback:           0 kB
AnonPages:           0 kB
Mapped:         219792 kB
Slab:                0 kB
PageTables:          0 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:         0 kB
Committed_AS:  1243020 kB
VmallocTotal:        0 kB
VmallocUsed:         0 kB
VmallocChunk:        0 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     2048 kB
  • what type of vps is ? xen, openvz ? – silviud Jun 16 '11 at 23:21

Few checks to do when a server is slow:

  1. Memory

    free -tom (will show available & used memory)


    do what you've done above :)

  2. CPU usage


    This will show you some key information along the top. Look for these set of numbers along the top:

    load average: 0.00, 0.00, 0.00

    The following article has a good explanation of how to understand these numbers: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages

  3. Get a list of process and see whether there are multiple threads for a service (ex: httpd or the webserver)

    ps awwwwfux | less -S

    The above command is excellent to view all processes in a tree format

  4. Depending on the service which seems to be acting up, try to read through those logs for clues as to what may be happening. Remember, logs can usually be found under /var/log/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.