Showing entries 1 to 10 of 31
10 Older Entries »
Displaying posts with tag: GNU/Linux (reset)
Run nodejs server continuously using forever

By last Friday morning the open bugs count raised above 150 mark and we managed to take it down to under 25 by the end of the day, thanks to the dedicated effort by the team. Among them, one was to make the Nodejs server run continuously. In our application we are using the Nodejs […]

Moved to a new hosting provider

Again, I have moved to a new hosting provider after my free-tier with Amazon EC2 expired.  As usual I was looking for a good VPS provider with a decent price, providing good support and in particular a provider supporting FreeBSD, my favorite OS for server (for desktop I still prefer GNU/Linux.)

This time I have carefully reviewed many options and have finally settled with RootBSD, one of the reputed VPS hosting providers if you are choosing FreeBSD as your server OS.  One of the prime reasons for choosing FreeBSD is its performance, stability and the FreeBSD ports system.

Although my …

[Read more]
Downloading, compiling, and installing MySQL Server from source code

This content has been updated and moved to a new place.

If you are running any GNU/Linux server operating system like RHEL 5 or CentOS 5, you may probably install MySQL server that comes with the operating system packages either during the initial setup or later using yum(8). The advantage being addition/removal of packages either using the GUI package manager or rpm(8), yum(8). Fair enough. But unfortunately the MySQL package (mysql-server) that comes bundled with RHEL 5.5 or CentOS 5.5 is fairly old (5.0.77). What if you want to install the latest stable version of MySQL yet have the advantage of removing/re-installing the software using rpm(8)?

In this blog post, I will guide you with compiling MySQL from source code yet installing the software through rpm(8) so that we tune and …

[Read more]
How to read Linux’s /proc/diskstats easily

These days I spend more time looking at /proc/diskstats than I do at iostat. The problem with iostat is that it lumps reads and writes together, and I want to see them separately. That’s really important on a database server (e.g. MySQL performance analysis).

It’s not easy to read /proc/diskstats by looking at them, though. So I usually do the following to get a nice readable table:

  • Grep out the device I want to examine.
  • Push that through “rel” from the Aspersa project.
  • Add column headers, then format it with “align” from the same project.

Here’s a recipe. You might want to refer to the kernel iostat documentation too.

chmod +x rel align
while sleep 1; do grep sdb1 …
[Read more]
How Linux iostat computes its results

iostat is one of the most important tools for measuring disk performance, which of course is very relevant for database administrators, whether your chosen database is Postgres, MySQL, Oracle, or anything else that runs on GNU/Linux. Have you ever wondered where statistics like await (average wait for the request to complete) come from? If you look at the disk statistics the Linux kernel makes available through files such as /proc/diskstats, you won’t see await there. How does iostat compute await? For that matter, how does it compute the average queue size, service time, and utilization? This blog post will show you how that’s computed.

First, let’s look at the fields in /proc/diskstats. The order and location varies between kernels, but the following applies to 2.6 kernels. For reads and writes, the file contains the number of …

[Read more]
Version 1.1.2 of improved Cacti templates released

I’ve packaged up and released version 1.1.2 of the Cacti templates I’ve written for MySQL, Apache, memcached, nginx etc.

Anyone who would like to help write documentation (or do anything else, for that matter) is welcomed to participate. I’ll give commit access at the drop of a hat.


2009-05-07: version 1.1.2

        * The parsing code did not handle InnoDB plugin / XtraDB (issue 52).
        * The servername was hardcoded in ss_get_by_ssh.php (issue 57).
        * Added Handler_ graphs (issue 47).
        * Config files can be used instead of editing the .php file (issue 39).
        * binary log space is now calculated without a MySQL query (issue 48).
        * There was no easy way to force inputs to be filled (issue 45).
        * Some graphs were partially hidden without --lower-limit (issue 43).
        * Flipped some elements across the …
[Read more]
Why MySQL might not benefit from having a mother ship

As I was driving with a colleague in California a couple of weeks ago during the conference, the topic of conversation turned to the notion that Percona and the rest of the MySQL community really need the presence of a central entity that provides a recognized home for the MySQL server. The conversation went something like “I was talking to so-and-so, and he said, you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.”

I happen to believe this is FUD, and that the reverse might actually be true. (This is one reason why we’re competing head-on with MySQL.) Having a “mother ship” is in the long run, a very complex scenario to fully understand. There are all sorts of causes and effects that play out in subtle ways. I honestly doubt anyone can really …

[Read more]
Secure, easy Cacti graphing without SNMP

Cacti is a great tool for collecting information about systems and graphing it. However, it likes to use SNMP, and SNMP is often not desirable. Instead, I often see the need for a method that is:

  • Secure. Use trusted, well-known, encrypted communication. Do not open up new ports.
  • Zero install on the monitored system.
  • As little installation or modification on the monitoring system as possible.

Over the last several years, I’ve slowly created more and more software to create Cacti graphs via standard POSIX command-line utilities over SSH with key-pair authentication. (I’ve also created similar software for Nagios, but that’s another matter.) The major problem with the work I’ve done is that it’s totally un-publicized.

The system works by passing command-line arguments to a local PHP script like any other Cacti script. This …

[Read more]
iopp: a tool to print I/O operations per-process

Mark Wong’s entry titled “Following up a couple questions from the presentation at PSU on January 8, 2009” just caught my eye:

What is ‘iopp’?

It’s a custom tool to go through the Linux process table to get i/o statistics per process. It is open source and can be downloaded from:;a=summary

If you know me, you know I [...]

How to set up host interface networking for VirtualBox on Ubuntu

VirtualBox is really nice, but if you’re like me, maybe you found the networking confusing. There are three ways to do it, as explained by the manual, and the best way is with host interfaces, which don’t have limitations like the inability to ping and so on. I found what I think is [...]

Showing entries 1 to 10 of 31
10 Older Entries »