linux下使用iostat和pidstat查看进程使用资源情况

引言

在查看系统资源使用情况时,很多工具为我们提供了从设备角度查看的方法。例如使用iostat查看磁盘io统计信息:

linux:~ # iostat -d 3
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               1.67         0.00        40.00          0        120

以上显示的是从sda的角度统计的结果。当我们需要从进程的角度,查看每个进程使用系统资源的情况,有什么方法吗?

使用pidstat工具可以获取每个进程使用cpu、内存和磁盘等系统资源的统计信息,pidstat由sysstat rpm包提供,可在suse11使用。下面我们来看pidstat的具体用法。

默认输出

执行pidstat,将输出系统启动后所有活动进程的cpu统计信息:

linux:~ # pidstat
Linux 2.6.32.12-0.7-default (linux)             06/18/12        _x86_64_

11:37:19          PID    %usr %system  %guest    %CPU   CPU  Command
……
11:37:19        11452    0.00    0.00    0.00    0.00     2  bash
11:37:19        11509    0.00    0.00    0.00    0.00     3  dd

以上输出,除最开头一行显示内核版本、主机名、日期和cpu架构外,主要列含义如下: Continue reading

如果查看vps使用的是哪种虚拟化软件(kvm、xen、openvz、vmware、Hyper-V、HVM)

现在的VPS市场鱼龙混杂,如何检测自己购买的VPS是否如服务商列举出来的参数和配置以及环境呢?
如果你要检测自己购买的是否为真的Xen,可以用如下方法进行测试,比较专业的就是用virt-what脚本进行检测:

[shell]wget http://people.redhat.com/~rjones/virt-what/files/virt-what-1.12.tar.gz
tar zxvf virt-what-1.12.tar.gz
cd virt-what-1.12/
./configure
make && make install
virt-what[/shell]

如果是Xen的VPS,则会返回如下信息:

xen
xen-domU

如果是vmware的话,会返回 vmware.

对于想知道自己用的服务器是不是vps,也可以用这种办法来判断的.

jquery实现鼠标移到层上面实现边框加色效果

要实现多个li实现的边框显示,但给li设定一个border:1px #fff solid后,发现有以下问题.两个相邻的li放在一起,就会显示边框宽度为2px的问题.

jquery-demo-mouse-0



 
 
 
 演示代码

 



 

实现原理:

默认情况下,多个li的边框都发生重复问题.就是相信的边框会显示两个边线.而通过 margin-left:-1可以实现左侧重复边线只显示一个,对于上面的重复利用margin-top:-1来解决.(当然也可以利用margin-right:-1px;margin-bottom:-1px来实现)

主要用的是一句样式 position: relative 这句,没有这句的话,会出现问题.

jquery-demo-mouse

演示地址:http://runjs.cn/detail/ybhmpemt

centos下安装openvz(转载整理)

经常有人问到 OpenVZ 和 Xen 哪个好,事实上 OpenVZ 和 Xen 不是同一层面的技术,OpenVZ 是操作系统层面(Operating system-level virtualization)的虚拟产品,和 FreeBSD Jail, Solaris Zone, Linux-VServer 等类似;而 Xen 和 VMware, KVM, Hyper-V 等产品站在同一阵营。OpenVZ VPS 实际上提供的是一个虚拟环境(Virtual Environment/VE),也叫容器(Container);而 Xen VPS 提供的是基于 Hypervisor 的虚拟机(Virtual Machine),这是本质上的不同,现在大家已经习惯用 VPS 这个名字把这两种不同的产品和技术混为一谈了。比起 Xen 专注于企业虚拟化和云计算领域,OpenVZ 最大的应用可能就在低端 VPS 市场,有无数的 VPS 服务商都使用 OpenVZ 提供10美元以下的 VPS 产品。了解一下 OpenVZ 的安装和配置也会对使用 OpenVZ VPS 有所帮助,以下的安装和配置操作在 VPSee 的一台空闲 PC 和 CentOS 5.5 上完成。对 Xen 和 KVM 感兴趣的童鞋请看:在 CentOS 上安装和配置 Xen (或http://wiki.centos.org/HowTos/Xen/Xen4QuickStart)和 在 CentOS 上安装和配置 KVM.

安装 OpenVZ

首先加入 openvz 源、升级系统、安装 openvz 内核和 vzctl, vzquota 等工具:

# cd /etc/yum.repos.d
# wget http://download.openvz.org/openvz.repo
# rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ
# yum update

# yum install vzkernel
# yum install vzctl vzquota

调整内核参数

为了能让 VE/VPS 访问外部网络,我们必须启动 ip forwarding;如果内核出错或者运行很慢,我们希望能用特殊按键 dump 一些信息到控制台并结合 log 排错,所以建议打开 kernel.sysrq:

# vi /etc/sysctl.conf
...
net.ipv4.ip_forward = 1
kernel.sysrq = 1
...

为了减少麻烦最好关闭 selinux,selinux 带来的麻烦往往比得到的好处多: Continue reading

sysctl -P 报错 error: “net.bridge.bridge-nf-call-arptables” is an unknown key 的解决办法

今天在安装openvz的时候(安装教程:http://blog.haohtml.com/archives/14724),修改完内核参数后,执行

[shell]sysctl -P[/shell]

后,提示

[shell]net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 1
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296[/shell]

错误.解决方法:

[shell]modprobe bridge
lsmod|grep bridge[/shell]

使用Vagrant在Windows下部署开发环境[转]

做Web开发少不了要在本地搭建好开发环境,虽然说目前各种脚本都有对应的Windows版,甚至是一键安装包,但很多时候和Windows环境的相性并不是那么好,各麻烦的问题是实际部署的环境通常是Linux,常常还要面临着开发和部署环境不一致,上线前还要大量的调试。更要命的是,如果有很多机器需要装的话,那就真是一个灾难了。

Windows下玩Linux少不了虚拟机,但装系统依旧是相当费事。在现在什么都在自动化的今天,Vagrant就是这么一个神器,基于Ruby开发,使用开源 VirtualBox 作为虚拟化支持,可以轻松的跨平台部署。

今天试着把几台机器的环境都换成Vagrant,很爽很顺畅,于是就试着整理了一下使用小结: Continue reading

使用vagrant中遇到的问题

参考文章:http://blog.haohtml.com/archives/14677 教程,下面将安装过程中遇到的问题收集一下.这里使用的是centos6.4 64位的系统. VirtualBox 4.3.0

当执行 vgrant up的时候时候,提示无法启用,内容模块未载入,下面为解决办法.

[root@bogon dev]# vagrant up

VirtualBox is complaining that the kernel module is not loaded. Please
run `VBoxManage –version` or open the VirtualBox GUI to see the error
message which should contain instructions on how to fix this error.

[root@bogon dev]# VBoxManage –version
WARNING: The vboxdrv kernel module is not loaded. Either there is no module
available for the current kernel (2.6.32-358.el6.x86_64) or it failed to
load. Please recompile the kernel module and install it by Continue reading

使用 Vagrant 打造跨平台开发环境

Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用,“代码在我机子上运行没有问题”这种说辞将成为历史。

我们可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员。成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行,非常霸气。 Continue reading