10种最常见的Web应用程序的性能问题

关于作者:段昕理

蒲京娱乐场网站 1

因为iPod而喜欢上苹果的一系列产品,非常认同他们追求极致的精神。工作之余,喜欢前端的开源项目,Github(https://github.com/sandywalker)

个人主页
·
我的文章
·
15
·
   

蒲京娱乐场网站 2

三、服务层架构

  • 提供基础服务,供应用层调用,完成网站业务。

1、分布式消息

利用消息队列机制,实现业务和业务、业务和服务之间的异步消息发送及低耦合的业务关系。

2、分布式服务

提供高性能、低耦合、易复用、易管理的分布式服务,在网站实现面向服务架构(SOA)。

3、分布式缓存

通过可伸缩的服务器集群提供大规模热点数据的缓存服务,是网站性能优化的重要手段。

4、分布式配置

系统运行需要配置许多参数,如果这些参数需要修改,比如分布式缓存集群加入新的缓存服务器,需要修改应用程序客户端的缓存服务器列表配置,并重启应用程序服务器。分布式配置在系统运行期提供配置动态推送服务,将配置修改实时推送到应用系统,无需重启服务器。

积极主动地解决性能问题

目前你对常见的性能问题有了一个大致印象,事先做更高级别的用户负载测试是非常必要的。看下这些相关文章,阐释了如何搭建高用户负载的服务器。一旦用户开始使用你的网站,就可以利用产品环境中测试(TiP)流程。最后,使用模拟用户脚本来模拟用户导航和购买业务,从而获得反映网站短板的更准确数据。

赞 收藏
评论

六、数据采集与监控

  • 监控网站访问情况与系统运行情况,为网站运营决策和运维管理提供支持保障。

1、浏览器数据采集

通过在网站页面中嵌入JS脚本采集用户浏览器环境与操作记录,分析用户行为。

2、服务器业务数据采集

服务器业务数据包括两种,一种是采集在服务器端记录的用户请求操作日志;一种是采集应用程序运行期业务数据,比如待处理消息数目等。

3、服务器性能数据采集

采集服务器性能数据,如系统负载、内存使用率、网卡流量等。

4、系统监控

将前述采集的数据以图表的方式展示,以便运营和运维人员监控网站运行状况,做到这一步仅仅是系统监视。更先进的做法是根据采集的数据进行自动化运维,自动处理系统异常状况,是吸纳自动化控制。

5、系统报警

如果采集来的数据超过预设的正常情况的阀值,比如系统负载过高,就通过邮件、短信、语音电话等方式发出警报信号,等待工程师干预。

问题 10:多米诺骨牌效应

最后,一定要意识到某一个错误有可能会影响到其它很多你想不到的方方面面。多个问题会纠缠在一起,让人很难确定到底发生了什么。你需要训练团队发现问题根源,通过回溯找到真正的罪魁祸首。你甚至可以考虑Netflix 公司的
Chaos Monkey 模拟策略,通过引入网络异常来探测系统弹性和恢复的能力。

网站系统架构分层:

1、前端架构
2、应用层架构
3、服务层架构
4、储存层架构
5、后台架构
6、数据采集与监控
7、安全架构

问题 9:共享资源和虚拟机

现如今几乎所有的Web应用程序,从扩展到管理再到系统恢复,都依赖于虚拟服务器。可有时候上百个虚拟系统跑在了一个物理的服务器上,结果就会变成一个虚拟机挂掉会影响到所有其它的。毕竟,资源抢夺总是存在的。密切监控系统,当其中一个虚拟机出了问题,你可以很快处理其产生的副作用。

二、应用层架构

应用层是处理网站主要业务逻辑的地方。

1、开发框架

一个好的开发框架至关重要。一个好的开发框架应该能够分离关注面,使美工、开发工程师可以各司其事,易于协作。同时还应该内置一些安全策略,防护Web用攻击。

目前主流的开发框架:EF+MVC+bootstrap+jquery

  • EF(.Net
    Framework):目标是降低面向数据的应用程序所需的代码量并减轻维护工作。
  • MVC(Model View
    Controller):是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
  • bootstrap:bootstrap是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得
    Web 开发更加快捷,提高兼容性
  • jquery:jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库

2、负载均衡

将多台应用服务器组成一个集群,通过负载均衡技术将用户请求分发到不同的服务器上,以应对大量用户同时访问时产生的高并发负载压力。

3、动态页面静态化

对于访问量特别大而更新又不很频繁的动态页面,可以将其静态化,即生成一个静态页面,利用静态页面的优化手段加速用户访问,如反向代理、CDN、浏览器缓存等。

4、业务拆分

将复杂而庞大的业务拆分开来,形成多个规模较小的产品,独立开发、部署、维护,除了降低系统耦合度,也便于数据库业务分库。按业务对关系数据库进行拆分,技术难度相对较小,而效果又相对较好。

蒲京娱乐场网站,问题 2:未经优化的数据库

优化好的数据库可以达到很好的安全级别和处理性能,反之,没有优化的数据库可能会拖垮生产环境下的应用程序。索引的缺失会减慢SQL的查询性能,从而使整个网站变慢。一定要用脚本和文件分析检查任何低效的查询。

五、后台架构

  • 网站应用中,除了要处理用户的实时访问请求外,还有一些后台非实时数据分析要处理。

1、搜索引擎

即使是网站内部的搜索引擎,也需要进行数据增量更新及全量更新、构建索引等。这些操作通过后台系统定时执行。

2、数据仓库

根据离线数据,提供数据分析与数据挖掘服务。

3、推荐系统

社交网站及购物网站通过挖掘人与人之间的关系,人和商品之间的关系,发展潜在的人际关系和购物兴趣,为用户提供个性化推荐服务。

问题 6:默认设置

系统必须适当调整。默认设置会让一个新的组件很容易启动并运行,但对真正生产环境中的Web应用程序来说未必适合。检查每一项设定:线程数、内存和权限分配。确保所有的配置参数匹配Web应用程序的要求,而不是仅仅为了方便。

七、安全架构

  • 保护网站免遭攻击及敏感信息泄露。

1、Web攻击

以HTTP请求的方式发起的攻击,危害最大的就是XSS和SQL注入攻击。但是只要措施得当,这两种攻击都是比较容易防范的。

2、数据保护

敏感信息加密传输与存储,保护网站和用户资产。

问题 7:DNS,防火墙,网络连接

DNS
查询占用了大部分的网站流量。这也是为什么DNS出了问题会引起很多麻烦,阻止访问者正常访问,抛出错误页面、404、以及错误路径。同样的,网络连接和防火墙的效率也是网站访问能力和性能的关键。使用DNS监控保障措施,以便找出手头的问题。此外还可以修改交换机、检查VLAN标记、以及为不同服务器分配任务。上述也只是解决这类性能的一小部分方法。

一切架构、技术都核心都是要以业务为目标