centos安装iotop

由于实验中需要得到某个进程的io使用率,所以需要对进程的io进行 监控,目前比较方便有效的解决是使用iotop(对于内核版本在2.6.20 以上),开发的时候是在ubuntu上搞,内核版本很高,一切很顺利,但部属 的环境是centos,即便是Centos5.5的内核版本仍然是 2.6.18。就需要重新编译内核。

安装步骤如下:

一、编译内核

    [1]下载内核:wgethttp://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.4.tar.bz2

    [2]解压到/usr/src下:cp /当前目录  /usr/src/

                                     cd /usr/src

                                tar -jxvflinux-2.6.35.4.tar.bz2

     [3]配置:make menuconfig

             把General setup——Enable per-task storage I/O accounting这个选项选上。

     

            修改.config文件

            vim .config

            将#CONFIG_SYSFS_DEPRECATED_V2 is not set的注释去掉的,将其改为y。即修改为CONFIG_SYSFS_DEPRECATED_V2=y

   [4]编译和安装:

       makeCONFIG_DEBUG_SECTION_MISMATCH=y

      make modules

      make modules_install

       make install

  [5]修改initrd文件

      cp /boot/initrd-2.6.35.4.img /tmp

      cd /tmp/

      mkdir newinitrd

      cd newinitrd/

      zcat ../initrd-2.6.35.4.img |cpio -i

     vim init删掉其中重复的四行中的两行

         echo"Loading dm-region-hash.ko module"
        insmod /lib/dm-region-hash.ko
        echo "Loading dm-region-hash.ko module"
        insmod /lib/dm-region-hash.ko

     find .|cpio -c -o > ../initrd

    cd ..

     gzip -9 < initrd > initrd.img

     initrd.img就是重新打包的initrd了,然后把initrd.img拷贝到/boot

     mv /boot/initrd-2.6.35.4.img/boot/initrd-2.6.35.4.img.bak

     mv initrd.img /boot/initrd-2.6.35.4.img

  [6]修改配置和启动

    cp /usr/src/linux-2.6.35.4/.config/boot/config-2.6.35.4

    修改默认以新的内核启动

    vi /boot/grub/grub.conf 

       default=0

  [7]reboot

二、由于iotop要求python的版本在2.5以上,而centos安装的版本是2.4则要重新安装python

 [1]下载/安装python 

下载Python2.6.5.tar.bz2(下载地址:http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2)

$tar jxvf  Python2.6.5.tar.bz2

$cd Python2.6.5

$./configure

$make && make install

自此,python2.6安装后路径默认是在/usr/local/lib/python2.6

查看Python版本:

$ /usr/local/bin/python2.6 -V

[2]建立软连接,使系统默认的python指向python2.6

正常情况下即使python2.6安装成功后,系统默认指向的python仍然是2.4.3版本,考虑到yum是基于python2.4.3才能正常工作,不敢轻易卸载。如何实现将系统默认的python指向到2.6版本呢?

mv /usr/bin/python  /usr/bin/python.bak

ln -s //usr/local/bin/python2.6 /usr/bin/python

检验python指向是否成功

python -V

[3] 解决系统python软链接指向python2.6版本后,yum不能正常工作

方法:

$vi /usr/bin/yum

将文本编辑显示的#/usr/bin/python修改为#/usr/bin/python2.4,保存修改即可

三、安装iotop

       下载iotop  http://guichaz.free.fr/iotop/

   tar -xzvf iotop-0.4.2.tar.gz

       cd iotop-0.4.2

       python setup.py build
       python setup.py install

       安装完成如下图所示:

   

    

四、参考资料

IOTOP安装  http://skyeydemon.blog.51cto.com/315899/201667

CentOS 5.5升级内核到2.6.35.4 http://kerry.blog.51cto.com/172631/398554

CentOS5.4上将Python版本升级到2.6.5http://diansummer.javaeye.com/blog/716364

原文地址:https://www.cnblogs.com/smallfa/p/3758800.html