Dec
5
webmin是很好的管理工具。
配上virtualmin是免费的linux下的虚拟主机开设管理工具。
这几天测试使用了一下。几个常见问题。
1.apache默认utf-8编码问题。在上传一些gb2312的网页时,默认是乱码。
解决办法:
安装好webmin/virtualmin,apache的默认编码是UTF-8,这样如果我们是gb2312的中文编码的网页,打开后会乱码。怎么办呢?
webmin修改apache的默认编码UTF-8改成OFF就可以了,方法如下:变更 vi /etc/httpd/conf/httpd.conf 中的
AddDefaultCharset UTF-8 将其注释掉。
2.webmin的伪静态支持。
3.安装php及php-mysql等
yum -y install php
yum -y install php-mysql
扩展内容与知识:
1.伪静态支持、语法、及理论。
2.伪静态规则细则及写法。
3.httpd.conf 配置参数及内容,意义。
配上virtualmin是免费的linux下的虚拟主机开设管理工具。
这几天测试使用了一下。几个常见问题。
1.apache默认utf-8编码问题。在上传一些gb2312的网页时,默认是乱码。
解决办法:
安装好webmin/virtualmin,apache的默认编码是UTF-8,这样如果我们是gb2312的中文编码的网页,打开后会乱码。怎么办呢?
webmin修改apache的默认编码UTF-8改成OFF就可以了,方法如下:变更 vi /etc/httpd/conf/httpd.conf 中的
AddDefaultCharset UTF-8 将其注释掉。
2.webmin的伪静态支持。
3.安装php及php-mysql等
yum -y install php
yum -y install php-mysql
扩展内容与知识:
1.伪静态支持、语法、及理论。
2.伪静态规则细则及写法。
3.httpd.conf 配置参数及内容,意义。
Nov
29
今天为了部门买书,在当当网上选了十几本书。
下单的时候,发现多选了一本多余的,于是在支付页返回,发现无法单独操作。
打电话给当当客服,在转了两次遇忙等待后,一位客服MM接了电话,我告诉他我的订单号,很明显的需要其帮我将不需要的那本书去掉,重新重成订单,可爱的客服MM没按我的要求做,她告诉我,我可以自己操作,
,可以点订单页下面的灯泡图标的“如需再次购买订单中的商品,您可以在此 将商品放入购物车 或者 将商品加入收藏” 中的将商品放入购物车中,重新将订单生成。
可事实上,我已按那个要求操作了一次了。操作的结果是到了出错页,其页面提供了一个客服电话和一个email地址。
我告诉了客服MM这个问题,客服要我点击浏览器上的工具-》清cookie啥的~
好,清cookie嘛,我常做。就挂了电话了,挂电话前还让我填个满意度反馈。
1,非常满意 2,满意 3,XXXX 4XXXX
我一向是个好人,一下子给个1
挂了电话,清除cookie,重登陆当当网,再点击“将商品放入购物车” 还是一样到出错页,唉~
这个应该是逻辑上的问题,这个功能应该是有成功下单后的订单页,再次下订时,才能到正常的页面吧。
算了。放入收藏夹中吧,
再次选书,再次下订单,晕忽忽的从收藏夹中,再次从几十本书中再选出之前的十本书。下单,晕。这次操作得太快了,发票信息忘写了。再次回到那个让我无语的界面了。除了操作支付外,没有任何其他有帮助的按钮。
没填写发票信息,我不好随意付款,一直想找个客服在线问问,发现整个页面没有任何在线客服的链接。
内容如下:
“非常抱歉!您现在无法访问此页。
您可以把此情况告诉我们的客户服务部或访问当当首页。
[返回上一页]
客服热线:010-51236699;E-mail:service@dangdang.com
”
打电话,抱歉,现在都晚上十点了,估计也不可能有客服的。
想找个在线反馈信息提交的,看能否明天客服帮我处理一下发票信息的,发现我的个人信息页没有任何可以反馈的地方。当然除了一个“我的问答”可那个选项是干嘛的,是其他用户给我回答?我的这个问题其他客户能告诉我?能帮我解决?
没办法,发现右下脚有一个小调查“您对新版“我的当当”还满意么?”,我将我的碰到的问题只好发在那个小角落里了。
为了找这个反馈的地方,我看到了当当网的官方blog 提到所谓的商家的有效订单发货比为50%~60% 的问题,我就想笑。很明显的,当当发现了问题,但很明显的。他却没注意到原因!
给当当一个自认价值至少5万的建议:
投入足够的客服在你的订单生成页面~ 不管是在线客服,还是call center或是在线反馈的。将这部分即将要付钱给你的客户留下。
为了这十本书,却没想今天在当当网上浪费了不下一个小时。实在是郁闷。
摘录下当当官方blog上的2010.11.11日的blog内容
"根据统计,商城订单发出率一直维持在50%-60%之间,甚至有个别月份还不足50%,也就是说顾客在招商商城下100张订单,商户实际发出了50张订单,另外50张订单因为各种原因被取消,这是非常可惜的。"
唉。若明天的电话,客服还不能解决我的问题,就不再当当网买书了~
现在终于知道。为什么360能抓住客户了。倾听客户的心声,关注客户的需求。在关建的地方关注,更是一件可以直接受益的事~
下单的时候,发现多选了一本多余的,于是在支付页返回,发现无法单独操作。
打电话给当当客服,在转了两次遇忙等待后,一位客服MM接了电话,我告诉他我的订单号,很明显的需要其帮我将不需要的那本书去掉,重新重成订单,可爱的客服MM没按我的要求做,她告诉我,我可以自己操作,
,可以点订单页下面的灯泡图标的“如需再次购买订单中的商品,您可以在此 将商品放入购物车 或者 将商品加入收藏” 中的将商品放入购物车中,重新将订单生成。
可事实上,我已按那个要求操作了一次了。操作的结果是到了出错页,其页面提供了一个客服电话和一个email地址。
我告诉了客服MM这个问题,客服要我点击浏览器上的工具-》清cookie啥的~
好,清cookie嘛,我常做。就挂了电话了,挂电话前还让我填个满意度反馈。
1,非常满意 2,满意 3,XXXX 4XXXX
我一向是个好人,一下子给个1
挂了电话,清除cookie,重登陆当当网,再点击“将商品放入购物车” 还是一样到出错页,唉~
这个应该是逻辑上的问题,这个功能应该是有成功下单后的订单页,再次下订时,才能到正常的页面吧。
算了。放入收藏夹中吧,
再次选书,再次下订单,晕忽忽的从收藏夹中,再次从几十本书中再选出之前的十本书。下单,晕。这次操作得太快了,发票信息忘写了。再次回到那个让我无语的界面了。除了操作支付外,没有任何其他有帮助的按钮。
没填写发票信息,我不好随意付款,一直想找个客服在线问问,发现整个页面没有任何在线客服的链接。
内容如下:
“非常抱歉!您现在无法访问此页。
您可以把此情况告诉我们的客户服务部或访问当当首页。
[返回上一页]
客服热线:010-51236699;E-mail:service@dangdang.com
”
打电话,抱歉,现在都晚上十点了,估计也不可能有客服的。
想找个在线反馈信息提交的,看能否明天客服帮我处理一下发票信息的,发现我的个人信息页没有任何可以反馈的地方。当然除了一个“我的问答”可那个选项是干嘛的,是其他用户给我回答?我的这个问题其他客户能告诉我?能帮我解决?
没办法,发现右下脚有一个小调查“您对新版“我的当当”还满意么?”,我将我的碰到的问题只好发在那个小角落里了。
为了找这个反馈的地方,我看到了当当网的官方blog 提到所谓的商家的有效订单发货比为50%~60% 的问题,我就想笑。很明显的,当当发现了问题,但很明显的。他却没注意到原因!
给当当一个自认价值至少5万的建议:
投入足够的客服在你的订单生成页面~ 不管是在线客服,还是call center或是在线反馈的。将这部分即将要付钱给你的客户留下。
为了这十本书,却没想今天在当当网上浪费了不下一个小时。实在是郁闷。
摘录下当当官方blog上的2010.11.11日的blog内容
"根据统计,商城订单发出率一直维持在50%-60%之间,甚至有个别月份还不足50%,也就是说顾客在招商商城下100张订单,商户实际发出了50张订单,另外50张订单因为各种原因被取消,这是非常可惜的。"
唉。若明天的电话,客服还不能解决我的问题,就不再当当网买书了~
现在终于知道。为什么360能抓住客户了。倾听客户的心声,关注客户的需求。在关建的地方关注,更是一件可以直接受益的事~
Jun
9
今天帮一朋友检查他的论坛程序.访问的时候,在firefox会提供压缩格式不支持问题,显示空白页.
一般为gzip配置问题引发.暂时性关闭gzip压缩使其站点恢复正常.
以下为资料,记录一下.方便后用.
以下为转摘:
告诉你如何关闭GZIP,多种程序方法
现在非常时期,相信很多主机商开启了拦截系统,对于使用GZIP技术的程序来说,只要开启拦截,就会出现乱码。
现在总结这段时间开启拦截系统以后,出现问题的常见程序解决方法。
1、Discuz! 论坛:
登录论坛后台,找到基本设置--服务器优化,禁止GZIP功能。
后台登录地址:http://您的域名/logging.php?action=login
2、PHPWind 论坛:
登录论坛后台,找到论坛核心设置--核心功能设置,禁止GZIP功能。
后台登录地址为:http://您的域名/admincp.php
3、ShopEx 商城:
4.7.1版本解决办法:由于ShopEX设计上的缺陷,无法单独修改设置,需要下载经过修改index.php文件替换您的网站根目录下的index.php 点击这里下载
4.7.2版本解决办法:在根目录的include目录中找到mall_config.php文件(此文件在安装成功后都会有的),在?>前增加下面一段话就可以关闭系统的gzip功能
define('SYS_GZIP', false);
ShopEx 商城后台地址为:http://您的域名/syssite/shopadmin/
4、SaBlog 博客:
登录FTP,下载cache/cache_settings.php这个文件,将第64行的
'gzipcompress' => '1',
修改为
'gzipcompress' => '0',
然后上传覆盖回去即可。
SaBlog 博客后台地址为:http://您的域名/?action-login
5、动网PHP版本论坛:
登录FTP,下载论坛根目录下的global.php,查找以下内容,
if (!$zliboutputenable AND function_exists('ob_gzhandler')) {
$db_obstart = 1;
修改为
if (!$zliboutputenable AND function_exists('ob_gzhandler')) {
$db_obstart = 0;
然后上传覆盖即可。
6、SupeSite/X-Space:
登录FTP,下载data\system\config.cache.php,查找以下内容,
'gzipcompress' => 1
修改为
'gzipcompress' => 0
然后上传覆盖即可。
SupeSite/X-Space后台地址为:http://您的域名/?action-login
Mar
20
今天在智联招俜站点做了一下行为类型判定.
结果如下:典型A型人格特点. 做了60个判断题的结果.
您的行为类型评定为:典型A型人格特点
- 生活中,有的人在人际交往时如鱼得水,轻松处理各种关系,在面对问题和困境时,也能沉着应对;而有的人则对人对事都表现得不合时宜。这体现了个体的成熟程度。
- 通常情况下,个体会随着年龄的增长而逐渐成熟起来,但是还另有一些除了年龄以外的因素对个体的成熟程度起着重要的作用。
- 一个人的成熟程度与其阅历、经验、成长环境及性格也有着密切的联系。事实证明,一个经历过很多生活的艰辛、有着拼搏奋斗历程的人要比一个未经世事、初出茅庐的人成熟很多。一个从小成长在有着很多人际交往关系的家庭中的儿童也要比那些生活在简单人际关系家庭中的儿童更快的成熟起来。一个有着稳重、踏实的行为特征的人要比那些遇事着急忙慌、火急火燎的人看上去更成熟。这些因素决定了个体成熟的早晚差异。
- 您的结果解释:
- 测评结果表明,典型A型人格特点。
- 具有A型人格特征的人好胜心强、雄心勃勃、努力工作而又急躁易怒,常有时间紧迫感和竞争敌意倾向。你做事不喜欢浪费时间,喜欢以有激情的高效方式做事。
- 与那些稀松平常的任务比较,你更愿意接受有挑战性工作,并且有强烈的动机克服困难,努力达到目标。你喜欢在有竞争的情境下工作,因为这能激起你的斗志,让你精神抖擞、摩拳擦掌。
- 你的时间观念很强,常有紧迫感,因为你认为时间是宝贵的,不能浪费,因此你会比别人更早地投入工作,悠闲拖沓绝不是你的风格。对成功的渴望和激情使你更少感受到压力和疲劳,你会认为没有什么做不到的。
- 这使你在很多时候比别人做的更出色,同时也会增加你成功的可能性。在人群中,你喜欢成为核心,控制支配别人而不是被别人支配。在挫折情境中,你会变得易激惹,容易产生攻击性和敌意。
- 值得注意的是,你的行为方式会使你成为某些疾病(如心脏病、胆固醇升高)的易感者,所以建议你应学会放松,正确的看待事情,不要把小小的不便看成灾难。
Mar
9
vmstat命令应该算是linux维护人员经常使用的命令行了.类似windows下的资源管理器了.
现从网上找到相关说明如下.以做后续解释说明之用.
名称: 报告磁盘活动统计情况,同时也会汇报出CPU使用情况
格式: iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval
描述: iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出 CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
常用选项: -c为汇报CPU的使用情况;
-d为汇报磁盘的使用情况;
-k表示每秒按kilobytes字节显示数据;
-p显示所有存储设备分区信息。
-t为打印汇报的时间;
-v表示打印出版本信息和用法;
-x device指定要统计的设备名称,默认为所有的设备;
interval指每次统计间隔的时间;
count指按照这个时间间隔统计的次数。
输出信息简介: rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s: 每秒读扇区数。即 delta(rsect)/s
wsec/s: 每秒写扇区数。即 delta(wsect)/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。即 delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是 非空的。
CPU:表示机器内所有的CPU;
%user 表示CPU的利用率;
%nice 表示CPU在用户层优先级的百分比,0表示正常;
%system 表示当系统运行时,在用户应用层上所占用的CPU百分比;
%iowait 表示请求硬盘I/0数据流出时,所占用CPU的百分比;
%idle 表示空闲CPU百分比,值越大系统负载越低
情景分析: delta(use)/s/1000 (因为use的单位为毫秒)
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘
可能存在瓶颈。
svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),
svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多
也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及
I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明
I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用
得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑
更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。
队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是
按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。
用vmstat监视内存使用情况
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
vmstat的语法如下:
vmstat [-V] [-n] [delay [count]]
其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。对于vmstat输出各字段的含义,可运行man vmstat查看。
用iostat监视I/O子系统情况
iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
iostat的语法如下:
iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]
其中,-c为汇报CPU的使用情况;-d为汇报磁盘的使用情况;-k表示每秒按kilobytes字节显示数据;-t为打印汇报的时间;-v表示打印出版本信息和用法;-x device指定要统计的设备名称,默认为所有的设备;interval指每次统计间隔的时间;count指按照这个时间间隔统计的次数。
iostat一般的输出格式如下:
Linux 2.4.18-18smp (builder.linux.com) 2003年03月07日
avg-cpu: %user %nice %sys %idle
4.81 0.01 1.03 94.15
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
dev3-0 30.31 1117.68 846.52 16104536 12197374
dev3-1 7.06 229.61 40.40 3308486 582080
对于输出中各字段的含义,iostat的帮助中有详细的说明。
vmstat 命令报告虚拟内存统计信息和CPU负荷:页面调度,交换,任务交换,CPU利用率。命令的语法是:
vmstat [-cisS] [d1 d2 d3 d4] [interval [count]]
当不用选项时,vmstat显示一条曲线表示自从系统启动后活动的信息。如果指定interval(时间间隔),接下来的线是重复显示最后的interval期间活动的情况,直到用户中断命令执行。当同时提供计数器时,统计信息按时间计数来显示。
如果指定了一个磁盘名(如d1,d2,等等。),这些磁盘得到优先显示。通常,系统上的前4个磁盘设备是显示的,因为只有四个设备能在一线条上显示,这个选项允许性能分析员修改缺省显示选项。(*磁盘名通常随id,sd,xd,或xy (取决于类型和I/0界面)加一个数字,如id0,sd2,xd1等等命名而定。),vmstat 命令显示若干字段信息:
procs 报表下面三种状态的进程数:
r--在运行队列中等候运行
b--被资源阻塞(I/0,页面调度,等等.)
w--可运行但是被换出的
memory 报告虚拟内存和实存信息:
swap--以千字节为单位的当前可用交换空间的数量
free--以千字节为单位的页自由表大小
page 报告每秒页面调度活动数量的信息:
re-从自由表回收页
mf--次要的错误;地址空间或硬件地址转换错误
pi--页入的千字节数
po -页出的千字节数
fr- 释放的千字节数
de--以千字节为单位的可接受的短期内存不足数
sr--页由时钟算法扫描
disk 可以为四个磁盘报告每秒磁盘I/O的数量
faults 报告每秒系统软件中断和硬件中断的速率
in-设备中断,不包括系统时钟中断
sy-系统调用
cs-CPU任务(上下文)交换
cpu-- CPU故障时间的百分比,在多处理器系统上,这是全部处理器的平均值:
us- 用户时间
sy-- 系统时间
id-- 闲置时间
vmstat命令有四个可选标志可供使用。如果机器有虚拟地址缓存-c标志就改变输出报告缓存刷新统计数据。报告包括自从系统启动后每种缓存刷新全部总量。六个缓存类型是用户,上下文,区域,段,页,部分页。
-i标志 使输出变为报告中断的数量。如果给出设备名,如d1,d2等,监控将在设备级*执行,(*注,参阅第十二章有关打开设备级监控的信息。)并报告每个给定设备的统计信息。
修改"普通"报告来显示交换而非页面调度活动的信息。这选项改变显示的两个字段:si(换入)和so(换出)替代了re和mf字段。
值得注意是,interval 和count选项对-i或-s选项是非法的。
vmstat 参数详解
procs:
r-->在运行队列中等待的进程数
b-->在等待io的进程数
w-->可以进入运行队列但被替换的进程
memoy
swap-->现时可用的交换内存(k表示)
free-->空闲的内存(k表示)
pages
re--》回收的页面
mf--》非严重错误的页面
pi--》进入页面数(k表示)
po--》出页面数(k表示)
fr--》空余的页面数(k表示)
de--》提前读入的页面中的未命中数
sr--》通过时钟算法扫描的页面
disk 显示每秒的磁盘操作。 s表示scsi盘,0表示盘号
fault 显示每秒的中断数
in--》设备中断
sy--》系统中断
cy--》cpu交换
cpu 表示cpu的使用状态
cs--》用户进程使用的时间
sy--》系统进程使用的时间
id--》cpu空闲的时间
FIELD DESCRIPTIONS
Procs
r: The number of processes waiting for run time.
b: The number of processes in uninterruptable sleep.
w: The number of processes swapped out but otherwise runnable.
Thisfield is calculated, but Linux never desperation swaps.
Memory
swpd: the amount of virtual memory used (kB).
free: the amount of idle memory (kB).
buff: the amount of memory used as buffers (kB).
Swap
si: Amount of memory swapped in from disk (kB/s). 虚拟内存的页导入(从SWAP DISK导入RAM)
so: Amount of memory swapped to disk (kB/s). 虚拟内存的页导出.
(从RAM到SWAP DISK)
IO
bi: Blocks sent to a block device (blocks/s).写入
bo: Blocks received from a block device (blocks/s).写出
System
in: The number of interrupts per second, including the clock.
cs: The number of context switches per second.
: CPU
These are percentages of total CPU time.
us: user time
sy: system time
id: idle time
如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果pi,po 长期不等于0,表示内存不足。
如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。
由vmstat看服务器
说明:由于STATSPACK并不能获取全面分析性能问题所需要的所有信息,所以需要扩展其收集服务器的统计信息。
VMSTAT介绍
通过STATSPACK收集服务器信息,主要通过收集VMSTAT的信息来展现服务器状况。VMSTAT工具是最常见的UNIX监控工具,可以展现给定时间间隔的服务器的状态值。
一般VMSTAT工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。如:
[oracle@brucelau oracle]$ vmstat 1 2
procs memory swap io system CPU
r b w swpd free buff cache si so bi bo in cs us sy id
1 0 0 0 271844 186052 255852 0 0 2 6 102 10 0 0 100
0 0 0 0 271844 186052 255852 0 0 0 0 104 11 0 0 100
(注:目前系统几乎空闲,并且不同操作系统VMSTAT输出内容有所不同)
目前说来,对于服务器监控有用处的度量主要有:
r(运行队列)
pi(页导入)
us(用户CPU)
sy(系统CPU)
id(空闲)
通过VMSTAT识别CPU瓶颈
r(运行队列)展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了。
获得CPU个数的命令(LINUX环境):
cat /proc/cpuinfo|grep processor|wc –l
当r值超过了CPU个数,就会出现CPU瓶颈,解决办法大体几种:
1. 最简单的就是增加CPU个数
2. 通过调整任务执行时间,如大任务放到系统不繁忙的情况下进行执行,进尔平衡系统任务
3. 调整已有任务的优先级
通过VMSTAT识别CPU满负荷
首先需要声明一点的是,vmstat中CPU的度量是百分比的。当us+sy的值接近100的时候,表示CPU正在接近满负荷工作。但要注意的是,CPU满负荷工作并不能说明什么,UNIX总是试图要CPU尽可能的繁忙,使得任务的吞吐量最大化。唯一能够确定CPU瓶颈的还是r(运行队列)的值。
通过VMSTAT识别RAM瓶颈
数据库服务器都只有有限的RAM,出现内存争用现象是Oracle的常见问题。
首先察看RAM的数量,命令如下(LINUX环境):
[root@brucelau root]#free
total used free shared buffers cached
Mem: 1027348 873312 154036 185736 187496 293964
-/+ buffers/cache: 391852 635496
Swap: 2096440 0 2096440
当然可以使用top等其他命令来显示RAM。
当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,这样会出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,但页导入操作就表明了服务器需要更多的内存了,页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。
解决的办法有几种:
1. 最简单的,加大RAM
2. 改小SGA,使得对RAM需求减少
3. 减少RAM的需求(如:减少PGA)
我们基本的了解了VMSTAT工作,下面是STATSPACK通过vmstat统计收集服务器性能数据。
STATSPACK通过vmstat收集服务器信息
首先在perfstat用户下建一个存储服务器信息的表:如
建表:
create table stats$vmstat
(
start_date date, --系统时间
duration date, --时间间隔
server_name varchar2(20), --服务器名称
runque_waits number, --运行队列数据
page_in number, --页导入数据
page_out number, --页导出数据
user_cpu number, --用户cpu数据
system_cpu number, --系统cpu数据
idle_cpu number, --空闲cpu数据
wait_cpu number –等待cpu数据(只是aix存在)
)
tablespace perfstat;
然后,通过UNIX/LINUX的shell变成,利用vmstat的结果来获取相应的服务器信息,并且存放到表中。
部分来自:http://www.ixpub.net/645961.html
现从网上找到相关说明如下.以做后续解释说明之用.
名称: 报告磁盘活动统计情况,同时也会汇报出CPU使用情况
格式: iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval
描述: iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出 CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
常用选项: -c为汇报CPU的使用情况;
-d为汇报磁盘的使用情况;
-k表示每秒按kilobytes字节显示数据;
-p显示所有存储设备分区信息。
-t为打印汇报的时间;
-v表示打印出版本信息和用法;
-x device指定要统计的设备名称,默认为所有的设备;
interval指每次统计间隔的时间;
count指按照这个时间间隔统计的次数。
输出信息简介: rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s: 每秒读扇区数。即 delta(rsect)/s
wsec/s: 每秒写扇区数。即 delta(wsect)/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。即 delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是 非空的。
CPU:表示机器内所有的CPU;
%user 表示CPU的利用率;
%nice 表示CPU在用户层优先级的百分比,0表示正常;
%system 表示当系统运行时,在用户应用层上所占用的CPU百分比;
%iowait 表示请求硬盘I/0数据流出时,所占用CPU的百分比;
%idle 表示空闲CPU百分比,值越大系统负载越低
情景分析: delta(use)/s/1000 (因为use的单位为毫秒)
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘
可能存在瓶颈。
svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),
svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多
也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及
I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明
I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用
得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑
更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。
队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是
按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。
用vmstat监视内存使用情况
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
vmstat的语法如下:
vmstat [-V] [-n] [delay [count]]
其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。对于vmstat输出各字段的含义,可运行man vmstat查看。
用iostat监视I/O子系统情况
iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
iostat的语法如下:
iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]
其中,-c为汇报CPU的使用情况;-d为汇报磁盘的使用情况;-k表示每秒按kilobytes字节显示数据;-t为打印汇报的时间;-v表示打印出版本信息和用法;-x device指定要统计的设备名称,默认为所有的设备;interval指每次统计间隔的时间;count指按照这个时间间隔统计的次数。
iostat一般的输出格式如下:
Linux 2.4.18-18smp (builder.linux.com) 2003年03月07日
avg-cpu: %user %nice %sys %idle
4.81 0.01 1.03 94.15
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
dev3-0 30.31 1117.68 846.52 16104536 12197374
dev3-1 7.06 229.61 40.40 3308486 582080
对于输出中各字段的含义,iostat的帮助中有详细的说明。
vmstat 命令报告虚拟内存统计信息和CPU负荷:页面调度,交换,任务交换,CPU利用率。命令的语法是:
vmstat [-cisS] [d1 d2 d3 d4] [interval [count]]
当不用选项时,vmstat显示一条曲线表示自从系统启动后活动的信息。如果指定interval(时间间隔),接下来的线是重复显示最后的interval期间活动的情况,直到用户中断命令执行。当同时提供计数器时,统计信息按时间计数来显示。
如果指定了一个磁盘名(如d1,d2,等等。),这些磁盘得到优先显示。通常,系统上的前4个磁盘设备是显示的,因为只有四个设备能在一线条上显示,这个选项允许性能分析员修改缺省显示选项。(*磁盘名通常随id,sd,xd,或xy (取决于类型和I/0界面)加一个数字,如id0,sd2,xd1等等命名而定。),vmstat 命令显示若干字段信息:
procs 报表下面三种状态的进程数:
r--在运行队列中等候运行
b--被资源阻塞(I/0,页面调度,等等.)
w--可运行但是被换出的
memory 报告虚拟内存和实存信息:
swap--以千字节为单位的当前可用交换空间的数量
free--以千字节为单位的页自由表大小
page 报告每秒页面调度活动数量的信息:
re-从自由表回收页
mf--次要的错误;地址空间或硬件地址转换错误
pi--页入的千字节数
po -页出的千字节数
fr- 释放的千字节数
de--以千字节为单位的可接受的短期内存不足数
sr--页由时钟算法扫描
disk 可以为四个磁盘报告每秒磁盘I/O的数量
faults 报告每秒系统软件中断和硬件中断的速率
in-设备中断,不包括系统时钟中断
sy-系统调用
cs-CPU任务(上下文)交换
cpu-- CPU故障时间的百分比,在多处理器系统上,这是全部处理器的平均值:
us- 用户时间
sy-- 系统时间
id-- 闲置时间
vmstat命令有四个可选标志可供使用。如果机器有虚拟地址缓存-c标志就改变输出报告缓存刷新统计数据。报告包括自从系统启动后每种缓存刷新全部总量。六个缓存类型是用户,上下文,区域,段,页,部分页。
-i标志 使输出变为报告中断的数量。如果给出设备名,如d1,d2等,监控将在设备级*执行,(*注,参阅第十二章有关打开设备级监控的信息。)并报告每个给定设备的统计信息。
修改"普通"报告来显示交换而非页面调度活动的信息。这选项改变显示的两个字段:si(换入)和so(换出)替代了re和mf字段。
值得注意是,interval 和count选项对-i或-s选项是非法的。
vmstat 参数详解
procs:
r-->在运行队列中等待的进程数
b-->在等待io的进程数
w-->可以进入运行队列但被替换的进程
memoy
swap-->现时可用的交换内存(k表示)
free-->空闲的内存(k表示)
pages
re--》回收的页面
mf--》非严重错误的页面
pi--》进入页面数(k表示)
po--》出页面数(k表示)
fr--》空余的页面数(k表示)
de--》提前读入的页面中的未命中数
sr--》通过时钟算法扫描的页面
disk 显示每秒的磁盘操作。 s表示scsi盘,0表示盘号
fault 显示每秒的中断数
in--》设备中断
sy--》系统中断
cy--》cpu交换
cpu 表示cpu的使用状态
cs--》用户进程使用的时间
sy--》系统进程使用的时间
id--》cpu空闲的时间
FIELD DESCRIPTIONS
Procs
r: The number of processes waiting for run time.
b: The number of processes in uninterruptable sleep.
w: The number of processes swapped out but otherwise runnable.
Thisfield is calculated, but Linux never desperation swaps.
Memory
swpd: the amount of virtual memory used (kB).
free: the amount of idle memory (kB).
buff: the amount of memory used as buffers (kB).
Swap
si: Amount of memory swapped in from disk (kB/s). 虚拟内存的页导入(从SWAP DISK导入RAM)
so: Amount of memory swapped to disk (kB/s). 虚拟内存的页导出.
(从RAM到SWAP DISK)
IO
bi: Blocks sent to a block device (blocks/s).写入
bo: Blocks received from a block device (blocks/s).写出
System
in: The number of interrupts per second, including the clock.
cs: The number of context switches per second.
: CPU
These are percentages of total CPU time.
us: user time
sy: system time
id: idle time
如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果pi,po 长期不等于0,表示内存不足。
如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。
由vmstat看服务器
说明:由于STATSPACK并不能获取全面分析性能问题所需要的所有信息,所以需要扩展其收集服务器的统计信息。
VMSTAT介绍
通过STATSPACK收集服务器信息,主要通过收集VMSTAT的信息来展现服务器状况。VMSTAT工具是最常见的UNIX监控工具,可以展现给定时间间隔的服务器的状态值。
一般VMSTAT工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。如:
[oracle@brucelau oracle]$ vmstat 1 2
procs memory swap io system CPU
r b w swpd free buff cache si so bi bo in cs us sy id
1 0 0 0 271844 186052 255852 0 0 2 6 102 10 0 0 100
0 0 0 0 271844 186052 255852 0 0 0 0 104 11 0 0 100
(注:目前系统几乎空闲,并且不同操作系统VMSTAT输出内容有所不同)
目前说来,对于服务器监控有用处的度量主要有:
r(运行队列)
pi(页导入)
us(用户CPU)
sy(系统CPU)
id(空闲)
通过VMSTAT识别CPU瓶颈
r(运行队列)展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了。
获得CPU个数的命令(LINUX环境):
cat /proc/cpuinfo|grep processor|wc –l
当r值超过了CPU个数,就会出现CPU瓶颈,解决办法大体几种:
1. 最简单的就是增加CPU个数
2. 通过调整任务执行时间,如大任务放到系统不繁忙的情况下进行执行,进尔平衡系统任务
3. 调整已有任务的优先级
通过VMSTAT识别CPU满负荷
首先需要声明一点的是,vmstat中CPU的度量是百分比的。当us+sy的值接近100的时候,表示CPU正在接近满负荷工作。但要注意的是,CPU满负荷工作并不能说明什么,UNIX总是试图要CPU尽可能的繁忙,使得任务的吞吐量最大化。唯一能够确定CPU瓶颈的还是r(运行队列)的值。
通过VMSTAT识别RAM瓶颈
数据库服务器都只有有限的RAM,出现内存争用现象是Oracle的常见问题。
首先察看RAM的数量,命令如下(LINUX环境):
[root@brucelau root]#free
total used free shared buffers cached
Mem: 1027348 873312 154036 185736 187496 293964
-/+ buffers/cache: 391852 635496
Swap: 2096440 0 2096440
当然可以使用top等其他命令来显示RAM。
当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,这样会出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,但页导入操作就表明了服务器需要更多的内存了,页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。
解决的办法有几种:
1. 最简单的,加大RAM
2. 改小SGA,使得对RAM需求减少
3. 减少RAM的需求(如:减少PGA)
我们基本的了解了VMSTAT工作,下面是STATSPACK通过vmstat统计收集服务器性能数据。
STATSPACK通过vmstat收集服务器信息
首先在perfstat用户下建一个存储服务器信息的表:如
建表:
create table stats$vmstat
(
start_date date, --系统时间
duration date, --时间间隔
server_name varchar2(20), --服务器名称
runque_waits number, --运行队列数据
page_in number, --页导入数据
page_out number, --页导出数据
user_cpu number, --用户cpu数据
system_cpu number, --系统cpu数据
idle_cpu number, --空闲cpu数据
wait_cpu number –等待cpu数据(只是aix存在)
)
tablespace perfstat;
然后,通过UNIX/LINUX的shell变成,利用vmstat的结果来获取相应的服务器信息,并且存放到表中。
部分来自:http://www.ixpub.net/645961.html







