企业应用系统架构优化方法

企业应用系统架构优化方法,第1张

企业应用系统架构优化方法

系统优化是一个全面而复杂的工作,很难通过某一方面的提升而获得很好的效果,也很难在一朝一夕完成系统的全面优化,每个系统都有其特性,需要综合分析综合考虑才能获得比较好的效果。 我下面为大家整理了一些企业应用系统架构优化的方法,欢迎阅读参考:

1 实现动静分离

所谓“动静”分离,就是将静态资源如图片、CSS、Js等和动态资源如JSP、Servlet等进行分开的处理,通过使用不同的服务器,从而加快页面的响应速度,这是目前互联网应用最常用的方式之一,但是在企业应用端相对应用较少。

动静分离至少有两个方面的好处,一是提高了静态资源的处理速度,因为应用服务器处理静态资源的速度—般都不如专业的web服务器,第二个好处就是减少了应用服务器的负担,应用服务器专注于处理动态请求,这对系统的稳定运行是有很大的帮助的。

要实现动静分离,有两种方式,一种是在加载静态资源的HTML语言中,将地址指定到不同的IP/域名上,实现彻底的分离。这种方式需要在设计之初进行考虑,并不适合优化项目,因为这种修改会产生很大的工作量。第二种方式是通过分发器,拦截对静态资源的访问,将动态资源转发给后端的应用服务器,实现动静分离。这种方式的好处是不需要改动现有的代码,仅需要做部署方式故调整,增加web服务器进行静态资源的处理。示意图如下:

目前转发器比较多,既有老牌的Apache Web Server、有性能卓越的Zeus,也有目前如日中天的Nainx,不同的项目可以按照各自的需求进行选择。

2 使用缓存技术

缓存技术是巨型项目、超大型项目中最重要的技术,范围也比较广,从前端的页面、应用中的数据、数据库本身等均可以进行缓存,每个方面使用的技术也千差万别。使用缓存可以带来两个方面的好处,一是缓存的数据可以被高速加载,从内存中读取数据比通过数据库或磁盘读取具有更好的效率二是最重要的,减少了数据库服务器的压力,有利于数据库的稳定,数据库可以使用更多的资源进行查询、统计等工作,有利于提高系统的整体运行速度。对于大中型应用而言,应用中的数据缓存和数据库端的缓存是应该被考虑的。数据库端的缓存在本文数据库章节中进行描述,本节描述应用中数据的缓存。

要使用缓存,首先需要明确缓存的'内容。一般优化项目不建议做全部数据缓存,或者使用内存数据库之类的技术,这种修改工作量巨大,由此带来的安全性、稳定性、数据的一致性都可能存在较大的隐患。所以,缓存的内容需要有所选择,一般的说,应该根据数据的数据量、被读取的次数、增加/更新频率进行选择。如果数据较少、增加/更新频率非常低,那么应该考虑直接缓存在应用服务器端,只有对于重要性较高、读取次数较多、增加/更新频率相对适中的数据,才适合使用独立缓存。 确定缓存的内容之后,就应该确定缓存的方式。对于缓存于应用服务器端的资源,一般选择KEY-ALUE(OBJECT)进行缓存。对于独立缓存,其内容也KEY-VALUE的格式进行存储(如果使用内存数据库实现缓存,那么存储的就是与数据库相同的信息),VALUE可以选择SON或者Java Object,其中JSON占用空间较少,读取的网络流量较少,读取之后需要进行转换为Java对象JavaXCN占用空间较大,读取的网络流量会较多,读取之后无需进行转化(前提是要求该对象已经系列化),不同系统可以各自特点进行选择。

对于独立缓存,接下来的工作是选择缓存服务器,缓存服务器选择需要具有一定的原则:是否满足已经确定的缓存方式、对操作系统要求如何、稳定性如何、是否支持分布式、是否支持多节点热备、客户端(即JAVA调用接口)接口是否支持漂移(一个节点崩溃是否能转移到另外的节点)、客户端是否高效等等。从目前业界来看,memcached、redis都是应用比较广泛的缓存服务器。

选择完缓存服务器之后,就需要对系统的代码进行一定的改造。改造的内容就是将通过数据库读取的信息改为从缓存服务器获得,而对数据的保存、修改、删除操作,既要操作数据库上的数据,也需要对缓存服务器的信息进行更新,如下图所示:

由于是对系统的优化,那么系统中已经具有很多数据且并未进入缓存,因此还需要将缓存服务器中的数据进行初始化。有两种方式来进行,一种方式是直接将数据库中的数据一次性加载到缓存服务器,另外一种方式是在修改Load数据的方式,先从缓存服务器获取,如果没有,则从数据库获取,然后同步到缓存服务器上。对于优化项目,建议使用第二种方式。第二种方式一个额外的好处就是当缓存服务器全部不可用时,系统也能提供完整的服务。

3 使用异步日志记录

对于企业应用而言,对用户的操作的记录是很重要的,在系统出现某些问题的时候,可以通过日志进行数据恢复。一般系统要么没有进行记录,要么使用数据库进行同步记录。这部分数据会比较庞大,少则百万级,多则数亿,并且随着使用量的增加而逐渐增加。这些表属于使用率最高的表之一,在这些表上进行经常性数据插入,有可能会变成系统的噩梦。

为了解决这个问题,引入异步日志记录,是较为理想的选择。通过在web容器中增加过滤器,拦截用户的请求,然后将用户的请求和表单数据封装为JSON格式的数据,采用异步方式发送到NoSQL数据库,需要恢复的时候,通过对JSON数据进行还原。这种方式有如下好处:

1)不需要改动现有代码而进行了用户操作记录

2)由于采用异步模式,几乎不会增加用户操作的时间

3)采用NoSQL+JSON存储,不用为每一类操作特别设置特定的表结构,修改简单。

目前的NoSQL数据库也逐渐显露头角,根据DB Engines在今年10月发布的数据库排名中,MongoDB的NoSQL服务器已经跃居第七位,因此NoSQL服务器目前推荐使用MongoDB。

一、磁盘整理

一般来说,刚安装好 Windows 2000后的十几天里,你会觉得运作的速度和性能都很令人满意。不过好景不长,某一天的某个时候,你就会突然发现计算机爬得比蜗牛还慢,在随便打开个档案时硬盘却跑得跟蚂蚁走一样。其实真正的原因在于档案区段过度分散,这也是谋杀 Windows 2000 性能的头号凶手。

Windows 2000 跟其它的操作系统一样,并不会把档案以连续的形式存在硬盘上,而是散得到处都是,所以如果你的档案片段非常分散,你的硬盘就得花很多时间才能读取一个档案。这个问题和磁盘整理的重要性都常常被忽略,却常是吞噬Windows 2000 性能的罪魁祸首。所以改善系统性能的首要工作,就是磁盘整理。整理以后最多可以加快一倍的处理速度,不过一般都是加快一半的速度。

Windows NT 没有磁盘整理工具,但是 2000 就有 Executive Software 提供好用的 Diskeeper 程序。到「开始」工作列,等菜单展开后选取"程序 o 附件 o 系统工具 o 磁盘整理工具"。然后在最上面的控制面版选择你要检查的硬盘代号,接着按下「分析」。计算机会检查磁盘驱动器,告诉你是否需要整理。如果真的需要整理,只要用鼠标再按一次就可以开始整理工作了。

朋友应该时常整理硬盘,至于整理的频率就要看服务器硬盘有多忙。如果你想表排时间定期整理,必须要有 Diskeeper这个程序的完整版才行,不然可以用其它厂牌的磁盘整理工具,譬如 Raxco Software 出品的 PerfectDisk 2000。这个软件功能非常强大,可以主动整理你的硬盘。

二、优化你的服务器

作个为局域网的主机,你存储档案的服务器每天都得承受无情的摧残。访问者增删或修改档案,所存取的资料量少说也有好几MB,甚至以GB计。如果想知道服务器每天受了多少委屈,你可以利用 Windows 2000 的「性能」公用程序来检测档案服务器的性能。你可以定期检视,得出统计图来找出服务器工作的流动量消长(「性能」程序的详细使用方法请参考 Windows 2000 Server Resource Kit)。

Windows 2000 有一项功能可以马上减轻服务器的负荷,可是一般人却没想到这一点,就是「离线档案」功能。其实正式的名称应该是「客户端快取」,不过这个功能不是用来加速操作系统执行性能的,可是使用者却可以用来改善网络的速度。我们知道服务器的CPU 会把某些工作指示快取到内存,以便加速执行性能;Windows 2000 会把资料快取到内存里,以便加速硬盘执行性能。客户端快取则是以类似的概念把网络资料快取到客户端的硬盘上,以降低网络流量。虽然这样并不能真的促进服务器的性能,但是因为本地端快取的关系,所以网络的使用者可以发觉网络速度变快,也因为整体网络的负荷量减轻,所以服务器比较能处理其它的工作。

那么如何使用这个功能呢?

(1) 一个步骤当然是启动全公司系统的客户端快取功能。在群组原则中把离线档案的客户端快取功能打开。除了开启这个功能外,还可以把使用者存到网络上的档案也快取一份到本地端,然后 Windows 2000 会直接使用本地端的这份快取档案,除非档案有所更动。

(2) 第二步是启动每一个共享资料夹的客户端快取功能。在档案总管里共享的文件夹上按鼠标右键点选「共享」选项,然后按「快取处理」,之后会有三个选择:手动快取文件。使用者必须告诉计算机要让文件在离线以后也可以使用。如果你只想让 Windows 2000 对使用者在网络上制作的档案进行快取工作,就要选这个设定。

(3) 自动快取文件。如果共享的数据夹内的数据常常变动,最好就选这个选项。如果使用者开启这个共享资料夹的文件,Windows 2000 就会自动快取到本地端,这样一来就算服务器离线,档案仍然可以用。不过这个选项对性能没有助益。

(4) 自动快取程序。这个选项对里面有只读数据的共享数据夹最有用。如果使用者打开这个资料夹的档案,Windows 2000 会自动快取到本地端,除非服务器端的档案版本比较新。这就是你能节省频宽的地方。

三、增加内存

微软的 Office 2000 可能是在Windows 2000网络中最常执行的应用程序,可是内存不足也是影响 Office 2000 执行性能的首因之一。但只要有充足的内存,大部分程序的执行性能都会改善。

所以解决方法当然是多买几条内存。但是到底要多少?首先必须知道 Windows 2000 需要多少内存。微软的官方说法是 Windows 2000 只需要 64MB 就可以动,不过我建议至少要有 96MB。另外如果要同时跑好几个 Office 程序,那么每执行一个 Office 程序就要多加 4MB;Access 和 Outlook 要另计,因为这两个程序更耗内存,所以要多加 8MB。举个例子,如果你们公司的使用者要同时执行 Word、Excel 和 Outlook,那么计算机里至少要有 96MB + 4MB + 4MB + 8MB = 112MB 的内存,所以买的时候要买 128MB。

如果朋友不想花那个钱买内存,这个时候可能就要用优化内存的软件来协助解决内存不足的问题,不过效果没那么显著。

四、删除不需要的功能

Windows 2000 因为影响执行能力、消耗存储器的主要原因就是安装了太多不必要的功能。例如 Computer Browser 这项功能对于台式计算机其实是不必要的。这个服务的功能在于记录网络上有哪些计算机,再把这份清单提供给其它计算机。大部分的公司都是让服务器执行这项功能,而不是台式计算机。

想知道可以关闭哪些功能,唯一的方法就是直接看功能清单,然后看看关闭这些功能后有什么影响。在「功能」的控制面板有每项功能的简短说明做为参考。到「控制面板」选择"系统管理工具/功能"。Windows 2000 预设开机时启动某些后台程序的功能,但有很多根本不是每天都要用到的。不过在把某项功能完全停用之前,最好在「启动类型」那一栏把那项功能改设成「手动」,这样子真的需要时就可以重新启动这项服务。

五、加速登录

你登录Windows 2000 时,「开始」工作菜单应该只要几秒钟就会出现,关机注销也应该是差不多时间。可是如果你的计算机上有太多使用者的设定文档,开关机的动作就会像老牛拖破车。这是因为使用者设定文件资料之故。如果你增加自己专属的使用者文件,开关机时间会更久。

微软为此开发了很好用的修正程序,叫做:「数据夹重新导向」。资料夹重新导向功能会把文件和设定移出使用者的设定档,然后集中存放在网络上。这样一来 Windows 2000 在使用者登录的时候需要下载的资料量就少了很多,登录时间自然大幅缩短。

要开启这个功能必须使用群组原则。选择"使用者设定 o Windows 设定 o 资料夹重新导向",然后在以下列出的项目上按下鼠标右键,重新导引同名的资料夹:

(1) 用程序资料

(2) 桌面

(3) 我的文档

(4) 「开始」菜单

资料夹重新导向还有一个好处,就是可以简化文件备份的手续,因为所有文件都放在同一个地方。不过最大的挑战是在教育使用者把他们的文件都存放在「我的文件夹」里。

不过你得花点时间学习资料夹重新导向功能每个选项的意思,还要看看 resource kit 里面有哪些执行这个功能的最佳方法。不过一般说来,预设设定提供的就是最好的方法。

六、驱动程序的升级

加强 Windows 2000 执行性能的基本功就是要时时更新。 Windows 2000 内建的驱动程序不一定是最好的,所以你要把各项设备的驱动程序时时更新,或是安装最新版的 Windows 2000 组件。好好利用 Windows Update这个功能,时时与硬件厂商保持联系,让你的驱动程序保持在最新的状态。

务器系统安装优化:

1在安装的时候选择最小安装

在安装时候选择Minimal,自定义工具可以有developmenttools 、debugging tools、base、compatibliitylibraries

2 需要开启的服务

sshd rsyslog network crondsysstat iptables 如果是web服务器还要有apache

3.需要关闭的服务

关闭不需要的tty

Vi /etc/inittab 在前面加上#注释掉多余的

执行init q

关闭atime

vi /etc/fstab

在包含大量小文件的分区中使用noatime,nodiratime两项

例如:

/dev/md5 /data/pics1 ext3noatime,nodiratime 0 0

4 需要优化的服务

优化sshd

X11Forwarding no //不进行x图形的转发

UseDNS no //不对IP地址做反向的解析

port 52113 端口范围0-655535

Protocol 2

useDNS no DNS 内网连接都是ip 不用解析,速度会很快

permitrootlogin no 不允许root通过ssh 连接

listenaddress 改成服务器的内网ip地址

GSSAPIAuthentication no 这个解决两个机器之间连接慢的问题

PermitEmptyPasswords no

优化shell

# vi /etc/profile

找到 HISTSIZE=1000 改为HISTSIZE=100

然后 source /etc/profile

优化runlevel

vi/etc/inittab

id:3:initdefault:

让服务器运行X是没有必要的

5 需要系统最小优化

.开机启动最小化

操作命令最小化

.普通用户权限最小化

.Linux系统文件及目录的权限最小化

.登录Linux用户最小化,平时没有需求root用户,绝对不用root账号登录


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/549201.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-28
下一篇2023-06-28

发表评论

登录后才能评论

评论列表(0条)

    保存