c++ Linux服务器优化( 三 )

si、so的值长期不为0,表示系统内存不足 。需增加系统内存 。
2.4.1磁盘I/O性能评估1.磁盘存储基础频繁访问的文件或数据尽可能用内存读写代替直接磁盘I/O,效率高千倍 。
将经常进行读写的文件与长期不变的文件独立出来,分别放置到不同的磁盘设备上 。

对于写操作频繁的数据,可以考虑使用裸设备代替文件系统 。
裸设备优点:
数据可直接读写,不需经过操作系统级缓存,节省内存资源,避免内存资源争用;避免文件系统级维护开销,如文件系统需维护超级块、I-node等;避免了操作系统cache预读功能,减少了I/O请求使用裸设备的缺点是:
数据管理、空间管理不灵活,需要很专业的人来操作 。
2.利用iostat评估磁盘性能[root@webserver ~]# iostat -d 2 3Linux 2.6.9-42.ELsmp (webserver) 12/01/2008_i686_ (8 CPU) Device: tps Blk_read/sBlk_wrtn/sBlk_read Blk_wrtnsda 1.87 2.58 114.12 6479462 286537372 Device: tps Blk_read/sBlk_wrtn/sBlk_read Blk_wrtnsda 0.00 0.00 0.00 0 0 Device: tps Blk_read/sBlk_wrtn/sBlk_read Blk_wrtnsda 1.00 0.00 12.00 0 24解释如下:
Blk_read/s--每秒读取数据块数Blk_wrtn/s--每秒写入数据块数Blk_read--读取的所有块数Blk_wrtn--写入的所有块数可通过Blk_read/s和Blk_wrtn/s值对磁盘的读写性能有一个基本的了解.
如Blk_wrtn/s值很大,表示磁盘写操作频繁,考虑优化磁盘或程序,
如Blk_read/s值很大,表示磁盘直接读操作很多,可将读取的数据放入内存
规则遵循:
长期的、超大的数据读写,肯定是不正常的,这种情况一定会影响系统性能 。
3.利用sar评估磁盘性能通过“sar –d”组合,可以对系统的磁盘IO做一个基本的统计,请看下面的一个输出:
[root@webserver ~]# sar -d 2 3Linux 2.6.9-42.ELsmp (webserver) 11/30/2008_i686_ (8 CPU)11:09:33 PM DEV tps rd_sec/swr_sec/savgrq-sz avgqu-sz await svctm %util11:09:35 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0011:09:35 PM DEV tps rd_sec/swr_sec/savgrq-sz avgqu-sz await svctm %util11:09:37 PM dev8-0 1.00 0.00 12.00 12.00 0.00 0.00 0.00 0.0011:09:37 PM DEV tps rd_sec/swr_sec/savgrq-sz avgqu-sz await svctm %util11:09:39 PM dev8-0 1.99 0.00 47.76 24.00 0.00 0.50 0.25 0.05Average: DEV tps rd_sec/swr_sec/savgrq-sz avgqu-sz await svctm %utilAverage: dev8-0 1.00 0.00 19.97 20.00 0.00 0.33 0.17 0.02参数含义:
await--平均每次设备I/O操作等待时间(毫秒)svctm--平均每次设备I/O操作的服务时间(毫秒)%util--一秒中有百分之几的时间用于I/O操作对磁盘IO性能评判标准:
正常svctm应小于await值,而svctm和磁盘性能有关,CPU、内存负荷也会对svctm值造成影响,过多的请求也会间接的导致svctm值的增加 。
【c++ Linux服务器优化】await值取决svctm和I/O队列长度以及I/O请求模式,如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题 。%util--衡量磁盘I/O重要指标,
如%util接近100%,表示磁盘产生的I/O请求太多,I/O系统已经满负荷工作,该磁盘可能存在瓶颈 。
可优化程序或者 通过更换 更高、更快的磁盘 。
2.5.1. 网络性能评估(1)通过ping命令检测网络的连通性(2)通过netstat –i组合检测网络接口状况(3)通过netstat –r组合检测系统的路由表信息(4)通过sar –n组合显示系统的网络运行状态三 Linux服务器性能调优1.为磁盘I/O调整Linux内核电梯算法选择文件系统后,该算法可以平衡低延迟需求,收集足够数据,有效组织对磁盘读写请求 。
2.禁用不必要的守护进程,节省内存和CPU资源许多守护进程或服务通常非必需,消耗宝贵内存和CPU时间 。将服务器置于险地 。禁用可加快启动时间,释放内存 。减少CPU要处理的进程数一些应被禁用的Linux守护进程,默认自动运行:
序号 守护进程 描述
1 Apmd 高级电源管理守护进程
2 Nfslock 用于NFS文件锁定
3 Isdn ISDN Moderm支持
4 Autofs 在后台自动挂载文件系统(如自动挂载CD-ROM)
5 Sendmail 邮件传输代理
6 Xfs X Window的字体服务器
3.关掉GUI4、清理不需要的模块或功能服务器软件包中太多被启动的功能或模块实际上是不需要的(如Apache中的许多功能模块),禁用掉有助于提高系统内存可用量,腾出资源给那些真正需要的软件,让它们运行得更快 。
5、禁用控制面板在Linux中,有许多流行的控制面板,如Cpanel,Plesk,Webmin和phpMyAdmin等,禁用释放出大约120MB内存,内存使用量大约下降30-40% 。


推荐阅读