说cpu可以从top中来理解,第一行中load averages代表着运行和等待任务综合取时间的百分比
从以上大家经常误以为都是等待任务的总和时间
在对于很多人应用上得出的结论,load值不应该高于3,如果cpu为2个则不应该高于6
当这个值过大时候,应该先分析linux中内核配置最大线程数是否正确。
在*nix中,没有改过的内核最大能使用51200个线程。linux(redhat)下是/etc/sysctl.conf
而下面行中,对于us sy ni id参数也很重要
us代表 init分配出来的用户进程占用cpu性能百分比
sy代表 系统自身调用占用cpu百分比(例如对于写入硬盘,是设备对于数据包的io写入)
ni代表 用户进程空间内改变过优先级的进程占用cpu百分比
id代表 系统cpu空闲
wa代表 所有进程被阻塞等待完成一次io占用id百分比
还有对于多个cpu查看大多数linux可以在top中点击 数字1开展开查看 若不支持该命令可以使用mpstat -P ALL来查看cpu个数及内核版本
在性能测试中并发情况很多,需要使用vmstat关注
关注1:r 等待运行的进程数
关注2:in(system) 每秒的内核中断次数
关注3:cs(system) 每秒的上下文切换线程次数
r在并发时候应当很稳定为好,至于多少需要根据应用,没有是最好的理想。
对于in和cs在并发时候会很高,原因是内核正在不停的并发处理。需要记录便于以后优化做说明
需要注意当id(cpu)中是否长时间为0 r也很高上10位数字,这时我建议应该查看程序在并发处理时,是否导致cpu调度出现异常处理。
对于内核调度说明,可以让你更好理解in和cs
当系统做上下文切换时,cpu保存所有进程的正文信息并获得新进程的所有正文内容
正文信息包括大量的linux追踪每个进程信息,尤其是一些资源:那些进程正在执行,被分配了哪些内存,
它打开了那些文件,等等。切换正文会触发大量的信息移动,这是比较高的开销,如果可能的话尽量保持很小的上下文切换。
为了尽可能的减小上下文切换,你首先需要知道它们是怎么产生的。
首先,内核调度触发上下文切换.为了保证每个进程平等的共享cpu时间,内核周期性中断的进程,
如果合适,内核调度器会开始一个其他的进程而不是让当前的进程继续执行,每次的周期性中断或者定时中断都可能触发上下文切换,
每秒定时中断的次数因不同架构和不同的内核版本而不同
Tag: linux
*nux系统top与vmstat命令解析
Linux压缩|解压文件命令大全
? *.Z compress 程序压缩的档案;
? *.bz2 bzip2 程序压缩的档案;
? *.gz gzip 程序压缩的档案;
? *.tar tar 程序打包的数据,并没有压缩过;
? *.tar.gz tar 程序打包的档案,其中并且经过 gzip 的压缩;
? *.zip zip 程序压缩文件
? *.rar rar 程序压缩文件
Compress压缩文件
[root@test /root]# cp /etc/man.config /root
[root@test /root]# compress man.config //压缩man.config这个文件
[root@test /root]# compress -d man.config.Z //-d 解压缩这个文件
[root@test /root]# uncompress man.config.Z //解压缩这个文件
当你以 compress 压缩之后,如果没有下达其它的参数,那么原本的档案就会被后来的 *.Z 所取代!
Gzip压缩文件和zcat
[root@test /root]# gzip [-d#] filename <==压缩与解压缩
[root@test /root]# zcat filename.gz <==读取压缩档内容
参数说明:
-d :解压缩的参数!
-r :递归处理,将指定目录下的所有文件及子目录一并处理
-# :压缩等级, 1 最不好, 9 最好, 6 是默认值!
[root@test /root]# gzip man.config //会产生 man.config.gz 这个档案
[root@test /root]# zcat man.config.gz //会读取出 man.config 的内容
[root@test /root]# gzip -d man.config.gz
[root@test /root]# gunzip man.config.gz
解压缩,产生 man.config 这个档案
[root@test /root]# gzip -9 man.config //以最大压缩比压缩 testing 这个档案!
[root@test /root]# gzip -r filename.gz file1 file2 file3 /usr/work/school
//file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.bz2 文件中
Bzip2压缩文件和bzcat
[root@test /root]# bzip2 [-dz] filename <==压缩解压缩指令
[root@test /root]# bzcat filename.bz2 <==读取压缩文件内容指令
参数说明:
-d :解压缩的意思!
-z :压缩的意思!
范例:
同样的,我们以刚刚拷贝过来的 /root/man.config 这个档案为例
[root@test /root]# bzip2 ?z man.config
[root@test /root]# bzcat man.config.bz2
[root@test /root]# bzip2 ?d man.config.bz2
[root@test /root]# bunzip2 man.config.bz2
[root@test /root]# bzip2 filename.bz2 file1 file2 file3 /usr/work/school
//file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.bz2 文件中
Tar压缩文件
[root@test /root]# tar [-zxcvfpP] filename
[root@test /root]# tar -N ‘yyyy/mm/dd’ /path -zcvf target.tar.gz source
参数说明:
-z :是否同时具有 gzip 的属性?
-x :解开一个压缩档案的参数指令!
-t :查看 tarfile 里面的档案!
-c :建立一个压缩档案的参数指令
-v :压缩的过程中显示档案!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
『 tar -zcvPf tfile sfile』才对喔!
-p :使用原档案的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的档案中!
–exclude FILE:在压缩的过程中,不要将 FILE 打包!
范例:
[root@test /root]# tar -cvf directory.tar directory
//只将目录整合打包成一个档案
[root@test /root]# tar -zcvf directory.tar.gz directory
除了将目录打包外,同时以 gzip 压缩
[root@test /root]# tar -zcvf filename.tar.gz /home/test/*
将 /home/test/ 这个目录下的档案全部打包并压缩成为一个 filename.tar.gz 的档案
[root@test /root]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
[root@test /root]# tar -xvf directory.tar
解 tar 的封包,请注意,由于没有 gzip (.tar 而非 .tar.gz) 的作用,所以只要使用 ?xvf 即可!不需要加上 z ,否则会显示有问题!
[root@test /root]# tar -zxvf directory.tar.gz
这个就是有加上 gzip 的压缩的结果!所以需要加上 ?z 呦!
[root@test /root]# tar ?ztvf directory.tar.gz
这个 t 可以用来查看 tar 里面的档案信息呢!而不需要将他解开!
[root@test /root]# tar -zcvPf home.tar.gz /home
则建立起来的压缩档内档案为绝对路径
请注意,使用这个 P 的参数时,不要将 P 加在 f 后面,因为
f 之后要立即接档名才行喔!
[root@test /root]# tar -N ‘2002/06/25′ -zcvf home.tar.gz /home
上面是说 在 /home 这个目录中,比 2002/06/25 日还要新的档案才会被打包进入 home.tar.gz 这个档案中!
[root@test /root]# tar -zcvf host.tar.gz / –exclude /mnt –exclude /proc
上面是说,将根目录的所有数据都打包进 host.tar.gz 这个档案中,但是 /mnt 及 /proc 则不打包!
[root@test /root]# tar -cvf – /home | tar -xvf –
上面的意思是『将 /home 打包之后,直接解压缩在 /root 底下!』嘿嘿!不需要再建立一次中间档案!不过,使用上面的语法最好使用『绝对路径』,比较不会有问题!这个方式适合不想要建立中间档案时!
Zip和unzip压缩文件
[root@test /root]# zip -r myfile.zip ./* //将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.
[root@test /root]# zip -d myfile.zip smart.txt //删除压缩文件中smart.txt文件
[root@test /root]# zip -m myfile.zip ./rpm_info.txt //向压缩文件中myfile.zip中添加rpm_info.txt文件
[root@test /root]# unzip -o -d /home/sunny myfile.zip //把myfile.zip文件解压到 /home/sunny/
Rar压缩文件
现在网上多数压缩包是rar格式的,所以需要一个rar工具。
首先在http://www.rarlab.com/download.htm下载RAR 3.60 beta 6 for Linux
我解压到/opt下,会自动建立rar目录。这个工具无需编译可以直接使用。
在$HOME目录下建立bin目录。
在bin目录中建立一个链接。ln -s /opt/rar/rar rar。
就可以用rar工具压缩和解压.rar文件了。不过此工具是命令方式的,和在DOS下的RAR操作是一样的。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yuyongpeng/archive/2007/10/10/1818717.aspx