要对系统进行性能分析和调试,其前提条件是知道好的性能是什么含义,一般我们可以从以下两个角度来衡量系统性能状态:

1)响应时间(Response Time)
从用户的角度来看,系统处于良好的性能状态是指系统能够快速响应用户的请求,即系统响应时间短。
具体地说,响应时间是指发出请求的时刻到用户的请求的相应结果返回用户的时间间隔。

2)吞吐量(Throughput)
从系统管理员角度来看,系统的吞吐量成为系统处于良好的性能状态的指标。
具体地说,吞吐量是在给定时间段内系统完成的交易数量。即系统的吞吐量越大,说明系统在单位时间内完成的用户或系统请求越多, 系统的资源得到充分利用。

系统管理员的使命

一般地,系统管理员的主要功能为:

Making the system available to others
Monitoring the usage of the system
Maintaining a certain level of performance
Planning for future processing needs


资源与瓶颈


要使系统处于良好性能状态,就必须让所有的系统资源协调工作。

1)系统资源(System Resource)
计算机组成十分复杂,但关键的系统资源不外如下这些:

CPU
内存
磁盘
输入输出,尤其是网络和串行通信
2)瓶颈(Bottleneck)

在计算机的众多资源中,由于系统配置的原因,某种资源成为系统性能的瓶颈是很自然的事情。
当所有用户或系统请求对某种资源的需求超过它的可用数量范围时,我们称这种资源成为瓶颈。
当系统出现瓶颈时,消除瓶颈是方法通常有两种:
增加成为瓶颈的资源的数量;
减少请求的数量;


影响系统性能的因素

应该说,影响系统性能的因素很多,但归纳起来主要有以下几个因素:

硬件因素:CPU个数够不够?内存够不够?等等
操作系统:操作系统的配置是否合理?
应用软件:应用系统设计得如何;
人的因素:操作人员是否有充分的培训,以完全懂得操作系统?
经常性的变化因素:用户的需求是否经常性变化?用户对系统负载的要求是否经常性变化?


系统性能调试的一般原则


对系统进行性能调试必须遵循一定的原则,这些原则都经验丰富的工作师经过多年的实践总结出来的。

性能调试是一件严肃的事情,不要对系统的各种参数进行随意的改动;
一次只对某个领域进行性能调试,例如对CPU的使用情况进行分析;
每次只改动一个设置;
每次对系统性能进行分析时,至少使用两种性能分析和调试工具;
经验是最好的分析和调试工具;
知道什么情况下该停止操作;
一般地,我们有以下四条性能调试的规则:

1)当你回答一个关于计算机系统性能的问题时,最初的回答总是“可能吧,视具体情况而定(It depends)”。

当然这个回答不会让用户满意的,因此,我们必须进一步可能对系统性能产生影响的各种因素进行分析, 它们所有作用是什么,起多大的作用。

2)性能分析和调试总是存在着折衷。

当系统管理员试图对计算机系统的性能进行调整时,们可能需要修改系统参数,或修改应用。然而,性能调试 不存在唯一回答或最优答案。

比如:tuning to improve memory utilization may degrade file system performance;Choosing RAID disk comfigurations for data integrity may be less expersive than altternative mirroring solutions that often improve performance.It is may be more cost-effective to purchase a CPU upgrade rather than spend days or weeks analyzing how the application could be changed to improve performance.

3)在分析系统性能的同时,系统性能将会受到影响。

由于在进行系统性能分析时,性能分析工具本身将会占用一定的系统资源,如CPU资源、内存资源等等。我们必须注意到这点, 即分析工具本身运行可能会导致系统某方面的资源瓶颈情况更加严重。

4)只用一种工具是无法全面、正确地分析出系统的资源瓶颈所在。

现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
作为一台服务器,流量的监控是对服务器及网络状况了解的基本方法。下面介绍几个常见的流量控制命令,测试操作系统为FreeBSD6.0Release。

系统:FreeBSD6.0Release
命令:systat -if 1
作用:查看当前网卡使用带宽

系统:FreeBSD6.0Release
命令:systat -ip 1
作用:查看包的进出流量

系统:FreeBSD6.0Release
命令:netstat -w 1
命令2:netstat -I xl0 -w 1 ( 针对某一网卡 )
显示:

proxy4# netstat -w 1
input (Total) output
packets errs bytes packets errs bytes colls
490 0 293465 471 0 291479 20
637 0 422915 615 0 424242 19
516 0 292878 484 0 287469 1
636 0 359417 623 0 366162 24
643 0 398575 620 0 396108 6
397 0 223827 357 0 216218 1
652 0 387266 594 0 387248 6
1192 0 880611 1211 0 880889 11
1118 0 766515 1158 0 786116 41
683 0 222295 667 0 469522 78
367 0 168580 317 0 168386 11

最后再介绍一种方法,安装软件ifstat (软件缺点为不能对packet进行查看),简单步骤:


1、从ifstat站点下载安装程序ifstat-1.1.tar.gz


2、通过ftp拷贝到服务器目录/home/funpower


3、开始解压安装


# cd /home/funpower
# tar zxvf ifstat-1.1.tar.gz
# cd ifstat-1.1
# ./configure
# make
# make install


安装后运行文件在/usr/local/bin中,运行命令/usr/local/bin/ifstat -T即可,显示:



proxy4# /usr/local/bin/ifstat -T
em0 xl0 Total
KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out
131.43 140.67 138.74 122.00 270.17 262.67
263.71 52.08 76.88 292.99 340.59 345.06
105.56 66.81 77.14 107.89 182.70 174.70
197.34 52.30 56.45 197.04 253.79 249.34
134.58 86.54 91.04 127.76 225.63 214.30
258.52 115.93 122.95 264.30 381.47 380.23
263.18 97.04 99.35 262.61 362.53 359.65
188.37 81.11 85.97 186.95 274.33 268.06
1454.64 254.00 195.22 958.37 1649.86 1212.37
817.75 98.48 89.88 1215.27 907.63 1313.75
103.63 86.91 91.40 100.19 195.04 187.11
169.13 90.91 93.90 169.82 263.03 260.73
98.50 62.44 71.99 100.08 170.49 162.52
229.68 40.02 46.04 234.33 275.72 274.35
127.43 56.29 61.46 126.99 188.89 183.28
215.35 54.20 58.64 206.41 273.99 260.61
150.32 91.31 97.86 161.00 248.18 252.31
348.61 95.47 105.77 393.79 454.38 489.26
256.18 118.05 128.72 274.98 384.90 393.03


现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
除了查看硬盘的空间使用情形外,我们还可以查看目前硬盘是否忙碌中,以了解硬盘的使用效率。我们可以使用 systat 这个指令:

# systat -vm 1
    3 users      Load    0.12    0.12    0.09                     6 26 00:38

Mem:KB      REAL              VIRTUAL                       VN PAGER    SWAP PAGER
        Tot     Share        Tot      Share      Free           in    out       in    out
Act    130120      5436     385556      11716     30540 count    146
All    233584     17544    2762124      45604           pages    846
                                                                 Interrupts
Proc:r    p    d    s    w      Csw    Trp    Sys    Int    Sof    Flt        8 cow       474 total
             75        1514    379 2525    690     66    375     70564 wire      100 0: clk
                                                    132932 act           1: atkb
14.0%Sys     1.6%Intr    2.3%User    0.0%Nice 82.2%Idl      18024 inact         3: sio1
|      |      |      |      |      |      |      |      |      |        13024 cache         4: sio0
=======+>                                             17516 free          7: ppc0
                                                           daefr     128 8: rtc
Namei           Name-cache      Dir-cache                    38 prcfr      40 9: fxp0
    Calls       hits      %       hits      %                    228 react      31 10: fxp
     1020        672     66                                      pdwak         11: hpt
                                       43 zfod               pdpgs         12: psm
Disks     ad0     da0 pass0                  43 ofod              intrn         13: npx
KB/t    28.20    0.00    0.00                     %slo-z      35664 buf       175 14: ata
tps       164       0       0                  70 tfree         334 dirty         15: ata
MB/s     4.52    0.00    0.00                               17810 desiredvnodes
% busy     43       0       0                               16852 numvnodes
                                                     13772 freevnodes
systat 有许多信息,我们使用参数 -vm1 来显示最详细的信息,并设定每 1 秒更新一次信息。在上面一堆复制的信息中,请将重点于在中间「====+>」及左下角的 Disks,中间部份的「====+>」表示目前 CPU 的使用情形,我们可以看到有 82.2% 的 Idle (闲置)。而硬盘的使用情形中,我的第一个硬盘 ad0 正在忙碌中,有 43% 的忙碌。而另一个 SCSI 硬盘 da0 则是完全闲置,也就是没有人正在使用它。

如果您想要知硬盘本身的存取速度,可以使用 diskinfo 这个指令。diskinfo 加了 -t 参数会对硬盘做一些测试并回报结果:

# diskinfo -v -t ad0
ad0
        512               # sectorsize
        40020664320       # mediasize in bytes (37G)
        78165360          # mediasize in sectors
        77545             # Cylinders according to firmware.
        16                # Heads according to firmware.
        63                # Sectors according to firmware.

Seek times:
        Full stroke:        250 iter in     5.199255 sec =     20.797 msec
        Half stroke:        250 iter in     4.011383 sec =     16.046 msec
        Quarter stroke:     500 iter in     6.797812 sec =     13.596 msec
        Short forward:      400 iter in     2.774055 sec =      6.935 msec
        Short backward:     400 iter in     3.257613 sec =      8.144 msec
        Seq outer:         2048 iter in     0.352483 sec =      0.172 msec
        Seq inner:         2048 iter in     0.369383 sec =      0.180 msec
Transfer rates:
        outside:         102400 kbytes in     4.511970 sec =      22695 kbytes/sec
        middle:          102400 kbytes in     4.770641 sec =      21465 kbytes/sec
        inside:          102400 kbytes in     4.174557 sec =      24530 kbytes/sec
diskinfo 指令的 -r 参数会先印出一些分割区的基本信息,包含 sector size、分割区大小、磁柱数量等。接下来的测试会花一点时间,测试结果包含了「Seek times」及「Transfer rates」。「Seek times」指的是硬盘的搜寻速度,而「Transfer rates」是数据找到后从硬盘传到系统的速度。


现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
Tags:
df命令详细用法

a:显示全部的档案系统和各分割区的磁盘使用情形
i:显示i -nodes的使用量
k:大小用k来表示 (默认值)
t:显示某一个档案系统的所有分割区磁盘使用量
x:显示不是某一个档案系统的所有分割区磁盘使用量
T:显示每个分割区所属的档案系统名称
常用命令:df -hi

操作详解
引用
指令 df 可以显示目前所有档案系统的最大可用空间及使用情形,请看下列这个例子:

# df -h
Filesystem       Size      Used     Avail Capacity    Mounted on
/dev/ad0s1a      1.9G      389M      1.4G      21%      /
devfs            1.0K      1.0K        0B     100%      /dev
/dev/ad0s1d      989M       54K      910M       0%      /tmp
/dev/ad0s1f      4.8G      3.8G      657M      86%      /usr
/dev/ad0s1e      1.9G      149M      1.6G       8%      /var
/dev/ad0s1g       26G      890K       24G       0%      /volume2
/dev/da0s1d      325G      261G       38G      87%      /volume1

我们加了参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。

上面的指令输出的第一个字段及最后一个字段分别是档案系统及其挂入点。我们可以看到 /dev/ad0s1a 这个分割区被挂在根目录下。我们在上一小节提到过 ad 所代表的是 IDE 的硬盘,而 s1 表示第一个主要扇区。我另外有一个 SCSI 硬盘,它的代号是 da,它的容量很大,主要用来存放数据。devfs 是一个特别的档案系统,该档案系统并非真的磁盘,而是 FreeBSD 用来管理系统硬件装置的虚拟档案系统。

接下来的四个字段 Size、Used、Avail、及 Capacity 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。

另外,我们还可以使用参数 -i 来查看目前档案系统 inode 的使用情形。有的时候虽然档案系统还有空间,但若没有足够的 inode 来存放档案的信息,一样会不能增加新的档案。

# df -ih
Filesystem       Size      Used     Avail Capacity iused      ifree %iused    Mounted on
/dev/ad0s1a      1.9G      389M      1.4G      21%     20495     262127      7%     /
devfs            1.0K      1.0K        0B     100%         0          0    100%     /dev
/dev/ad0s1d      989M       62K      910M       0%        24     141286      0%     /tmp
/dev/ad0s1f      4.8G      3.8G      657M      86%    311439     348015     47%     /usr
/dev/ad0s1e      1.9G      149M      1.6G       8%      1758     280864      1%     /var
/dev/ad0s1g       26G      890K       24G       0%        12    3532786      0%     /volume2
/dev/da0s1d      325G      261G       38G      87%    707277 43311409      2%     /volume1
我们可以看到根目录的已经用掉的 inode 数量为 20495,还有 262127 的可用 inode。

小提示
还记得什么是 inode 吗?所谓的 inode 是用来存放档案及目录的基本信息 (metadata),包含时间、档名、使用者及群组等。在分割扇区时,系统会先做出一堆 inode 以供以后使用,inode 的数量关系着系统中可以建立的档案及目录总数。如果要存的档案大部分都很小,则同样大小的硬盘中会有较多的档案,也就是说需要较多的 inode 来挂档案及目录。


du:查询档案或目录的磁盘使用空间

a:显示全部目录和其次目录下的每个档案所占的磁盘空间
b:大小用bytes来表示 (默认值为k bytes)
c:最后再加上总计 (默认值)
s:只显示各档案大小的总合
x:只计算同属同一个档案系统的档案
L:计算所有的档案大小
常用命令:du -a

操作详解
引用
指令 du 能以指定的目录下的子目录为单位,显示每个目录内所有档案所占用的磁盘空间大小。例如:

# du -h /etc
104K /etc/defaults
6.0K /etc/X11
8.0K /etc/bluetooth
4.0K /etc/gnats
52K /etc/isdn
388K /etc/mail
68K /etc/mtree
2.0K /etc/ntp
38K /etc/pam.d
44K /etc/periodic/daily
6.0K /etc/periodic/monthly
42K /etc/periodic/security
16K /etc/periodic/weekly
110K /etc/periodic
6.0K /etc/ppp
318K /etc/rc.d
2.0K /etc/skel
130K /etc/ssh
10K /etc/ssl
1.7M /etc
我们目样使用 -h 参数来显示 human-readable 的格式。在应用时,我们可以使用 du 这个指令来查看哪个目录占用最多的空间。不过,du 的输出结果通常很长,我们可以加上 -s 参数来省略指定目录下的子目录,而只显示该目录的总合即可:

# du -sh /etc
1.7M       /etc
在查看目录的使用情形时,我们可以将输出结果导到 sort 指令进行排序,以了解哪个档案用了最多的空间:

# du /etc | sort -nr | more
1746 /etc
388 /etc/mail
318 /etc/rc.d
130 /etc/ssh
110 /etc/periodic
104 /etc/defaults
68 /etc/mtree
52 /etc/isdn
44 /etc/periodic/daily
42 /etc/periodic/security
38 /etc/pam.d
16 /etc/periodic/weekly
10 /etc/ssl
8 /etc/bluetooth
6 /etc/ppp
6 /etc/periodic/monthly
6 /etc/X11
4 /etc/gnats
2 /etc/skel
2 /etc/ntp
sort 的参数 -nr 表示要以数字排序法进行反向排序,因为我们要对目录大小做排序,所以不可以使用 human-readable 的大小输出,不然目录大小中会有 K、M 等字样,会造成排序不正确。



现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
Tags: ,
首先要配置apache服务器,让apache支持shtml的解析.
方法是:

让apache支持shtml 文件
什么是SSI?SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针。SSI具有强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。
如何使你的Apache服务器支持SSI?

Apache默认是不支持SSI的,需要我们更改httpd.conf来进行配置。我这里以windows平台的Apache 2.0.x为例,打开conf目录下的httpd.conf文件,搜索“AddType text/html .shtml”,搜索结果:


# AddType text/html .shtml
# AddOutputFilter INCLUDES .shtml

把这两行前面的#去掉。

然后搜索“Options Indexes FollowSymLinks”
在搜索到的那一行后面添加“ Includes”
即将该行改变为 Options Indexes FollowSymLinks Includes


保存httpd.conf,重起apache即可。

到此我们就完成了对Apache SSI的设置.

shtml可以说是很强大的,shtml又叫做为动态的html.

下面我们来测试一下我们的shtml:

--------------------------------------------------------------
1.shtml文件:

〈!--#include file="info.htm"--〉
〈html〉
〈head〉
〈title〉html的包含测试?????〈/title〉
〈/head〉
〈body〉
哈哈,哈哈  测试了?????
〈!--#include file="1.php"--〉
〈/body〉
〈/html〉

------------------------------------------------------------


现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
Tags: ,
分页: 12/20 第一页 上页 7 8 9 10 11 12 13 14 15 16 下页 最后页 [ 显示模式: 摘要 | 列表 ]