医院信息系统软硬件性能优化方案同名8714.docx
《医院信息系统软硬件性能优化方案同名8714.docx》由会员分享,可在线阅读,更多相关《医院信息系统软硬件性能优化方案同名8714.docx(7页珍藏版)》请在冰豆网上搜索。
![医院信息系统软硬件性能优化方案同名8714.docx](https://file1.bdocx.com/fileroot1/2022-10/25/9e6e3a9d-8807-4b65-83b5-d2f193b6f82a/9e6e3a9d-8807-4b65-83b5-d2f193b6f82a1.gif)
医院信息系统软硬件性能优化方案同名8714
医院信息系统软硬件性能优化方案(同名8714)
[背景]
随着医院业务量的增长和所使用信息系统模块的增加,数据库容量增长很快,三级医院保留半年的数据情况下,可以达到25G-30G,且使用模块和接口的数量也在增加,现象是速度明显放慢,操作人员使用不顺畅,影响了窗口正常工作,带来软件性能低下的评价。
硬件方案设计时要考虑承载能力和生命周期;对性能问题的考虑应贯穿于开发阶段的全过程,不应只在出现问题时才考虑性能问题。
[目标]
性能调节的目的是通过将网络流通、磁盘I/O和CPU时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量。
最终通过对性能分析,制定相应的编程规范,引导开发工作,提高产品质量。
[性能分析]
分析对象:
一、服务器
1、处理器:
峰值在85%以下
2、缓存、内存:
达到一个稳定值
3、磁盘:
检测磁盘错误信息和磁盘空间大小(!
!
)
4、网络:
跟踪网络流量
二、数据库
三、应用程序
分析手段方式:
1、性能跟踪器:
发现服务器性能瓶颈
2、检查数据库(使用dbcc工具):
是否是数据库对象错误引起
3、SQLSERVERProfiler:
跟踪软件后台脚本性能,通过统计分析语句问题
4、主业务程序单元运行调试
5、其他跟踪分析工具
[优化内容和步骤]
一、硬件配置
1、硬件性能降低原因
(1)资源不足,并且需要附加或升级的组件;局部硬件存在瓶颈
(2)资源共享工作负载不平均,需要平衡。
(3)资源出现故障,需要替换。
(4)资源不正确,需要更改配置设置。
2、解决办法(升级的量级待定?
)
(1)服务器升级硬件配置或增加服务器,更改软件配置
(2)升级网络设备,或更改逻辑结构
(3)客户端升级硬件配置
二、软件优化
1、配置优化
1)负荷分摊:
不同系统的数据库分开配置服务器。
坚持将决策支持和联机事务处理(OLTP)查询混在一起
2)服务配置:
(1)命名管道与TCP/IP的使用;
(2)SQLServer内存分配设置
(3)最大化吞吐量:
是否需要配置连接数量
(4)配置虚拟内存:
配置合适的值,SQLServer最多能利用2GB虚拟内存,当给SQLServer分配的虚拟内存多于可用的物理内存时,会降低SQL的性能
(5)使用哪种类型的磁盘硬件,如RAID(独立磁盘冗余阵列)设备。
(6)如何将数据放置在磁盘上:
怎样放置文件组
(7)如何适当设置数据库的所有配置参数以使数据库很好地运行:
例如简单日志等
3)缩减数据库:
导出数据到历史库、年表,收缩数据库;尽可能减少日表数据和正式库数据
4)优化tempdb性能,合理配置文件增长比,初始化大小防止频繁扩展。
对于日志文件放到单独的磁盘上,定期清理日志文件。
2、程序优化
1)适当修改索引:
针对我们程序读写特点,增加或减少索引,通过跟踪执行计划分析。
2)重建索引
3)优化处理流程,单元处理流程,和业务处理流程
4)修改SQL语句:
(1)能用表的就不用试图,视图中多用静态表
(2)无须用年表的就不要关联年表
(3)多表关联时可以考虑分步骤关联
(4)只在必要时才使用游标
(5)不要使用SELECT*
(6)不要给“性别”列创建索引
(7)使用适当的事务,尽可能简短
(8)不要使用INSERT导入大批的数据
(9)在细节表中插入纪录时,不要在主表执行SELECTMAX(ID)
(10)尽量不要使用TEXT数据类型
(11)tempdb的使用规范:
i.尽量避免使用distinct、orderby、groupby、having、join、cumpute,因为这些语句会加重tempdb的负担。
ii.避免频繁创建和删除临时表,减少系统表资源的消耗。
iii.在新建临时表时,如果一次性插入数据量很大,那么可以使用selectinto代替createtable,避免log,提高速度;如果数据量不大,为了缓和系统表的资源,建议先createtable,然后insert。
iv.如果临时表的数据量较大,需要建立索引,那么应该将创建临时表和建立索引的过程放在单独一个子存储过程中,这样才能保证系统能够很好的使用到该临时表的索引。
v.如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除
vi.慎用大的临时表与其他大表的连接查询和修改,减低系统表负担,因为这种操作会在一条语句中多次使用tempdb的系统表。
(12)用exists替代in,可以提高查询的效率
(13)通过使用存储过程,可以将网络往返减到最小,存储过程中使用SETNOCOUNT可以减少返回给客户端的消息操作;使用小结果集返
附:
一、性能跟踪计数器的可接受值
资源
对象\计数器
建议的阈值
注释
磁盘
PhysicalDisk\%FreeSpace
LogicalDisk\%FreeSpace
15%
磁盘
PhysicalDisk\\%DiskTime
LogicalDisk\%DiskTime
90%
磁盘
PhysicalDisk\DiskReads/sec、PhysicalDisk\DiskWrites/sec
取决于制造商的规格
检查磁盘的指定传送速度,以验证此速度没有超出规格。
通常,UltraWideSCSI磁盘每秒可以处理50到70次I/O操作。
磁盘
PhysicalDisk\CurrentDiskQueueLength
主轴数加2
这是即时计数器;观察在多个间隔上的值。
对于随时间变化的平均值,请使用PhysicalDisk\Avg.DiskQueueLength。
内存
Memory\AvailableBytes
少于4MB
考察内存使用情况在需要时添加内存。
内存
Memory\Pages/sec
20
研究页交换活动。
页面文件
PagingFile\%Usage
70%以上
与AvailableBytes和Pages/sec一起复查该值,了解计算机的页交换活动。
处理器
Processor\%ProcessorTime
85%
查找使用处理器时间高百分比的进程。
升级到更快的处理器或安装其他处理器。
处理器
Processor\Interrupts/sec
取决于处理器;每秒1000次中断是好的起点
此计数器的值明显增加,而系统活动没有相应的增加则表明存在硬件问题。
标识导致中断的网卡。
可能需要安装额外的适配器或者控制器卡。
服务器
Server\BytesTotal/sec
如果所有服务器的BytesTotal/sec和与网络的最大传送速度大致相等,则可能需要将网络分段。
服务器
Server\WorkItemShortages
3
如果值达到该阀值,请考虑将DWORD项“InitWorkItems”(在启动期间分配给处理器的工作项数)或者MaxWorkItems(服务器可以分配的接收缓冲区的最大数)添加到注册表(在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters下面)。
InitWorkItems的范围可以是从1到512,同时MaxWorkItems的范围可以是从1到65535。
以InitWorkItems的任何值以及MaxWorkItems的值4096开始,并一直加倍这些值直到Server\WorkItemShortages阀值低于3。
有关修改注册表的信息,请参阅注册表编辑器帮助。
小心
∙编辑注册表不当可能会严重损坏您的系统。
在更改注册表之前,应备份计算机上任何有价值的数据。
服务器
服务器\分页池峰值
物理RAM的数量
此值是最大页面文件大小和物理内存数量的指示器。
服务器
ServerWorkQueues\QueueLength
4
如果值到达此阈值,则可能存在处理器瓶颈。
这是即时计数器;观察在多个间隔上的值。
多个处理器
System\ProcessorQueueLength
2
这是即时计数器;观察在多个间隔上的值。
二、硬件配置参照
(一)在选择服务器时关注的参数(针对三级医院最低默认值):
1、处理器:
2、缓存、内存:
3、磁盘:
4、网络:
(二)配置方案: