Debugging io usage

Hi,

I've had problems with using up memory and then VM leading to the expected page-thrashing and excessive IO consumption….

I was wondering if anyone on the forum had any suggestions about the best way to track this.

Linode suggested using iotop -o as a quick way of checking. I'm using Debian and used Aptitude to install it, but am getting a couple of errors:

Could not run iotop as some of the requirements are not met:

  • Python >= 2.5 for AF_NETLINK support: Found

  • Linux >= 2.6.20 with I/O accounting support: Not found

Python tells me it's 2.5.2 (and it says 'Found' above anyway, which is a bit odd as it says that requirement is not met)

But I'm not sure what to do about the Linux problem, as I'm just using one of the standard linux images that Linode provided. Any ideas?

I'm also looking for an elegant way to get my C++ daemon to know when VM is getting thrashed so I can get it to back away……

I'm looking around online and in books, but wondered if there were any quick 2 line nuggets of experience you might be able to share in the meantime.

Best wishes

Peter

6 Replies

I believe you need to go to the dashboard and boot with the latest paravirt kernel, instead of the latest stable.

Chris is correct – I just tried it out. iotop works on my test Linode with Latest 2.6 Paravirt 2.6.32.16-linode28, but when I reboot with Latest 2.6 Stable 2.6.18.8-linode22 I get your errors.

Thanks very much - I'll try that. Always a bit nervous moving to a 'non-stable' kernel on a core production server. The ability to snapshot and revert quickly is quite attractive!

P

I do believe that the "latest paravirt" kernels are considered stable, but that caker hadn't switched over to them as the default due to the clock drift issue; the paravirt kernels can't see the hardware clock, so the clock drifts.

One solution to this is to install ntp (which is as simple as running "sudo apt-get install ntp-simple" and you're done), which will keep the clock perfectly in sync.

The conundrum is that while the solution is simple and effective (and people should really be running ntp anyhow), it requires customer action. If Linode were to suddenly give everybody paravirtualized kernels, everybody's clock would start drifting and people might not realize that they need to do something to fix it (or how to fix it).

AFAIK, a lot of the newer distros you can deploy with Linode actually require the paravirt kernel anyhow, since the stable one is too out of date.

I think the base installs linode provide all come with ntp now, I don't remember ever installing it manually.

@obs:

I think the base installs linode provide all come with ntp now, I don't remember ever installing it manually.

It appears so. Just built a node using Linode's basic LAMP stack script and ntp is installed.

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct