`
ganqing1234
  • 浏览: 171651 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

《构建高性能web站点》笔记

 
阅读更多

一 服务器并发处理能力

Apache ab进行压力测试

ab -n1000 -c10 http://localhost/test.com 总请求次数1000,并发用户10

列出几个重要的字段:

Time token for tests 表示所有这些请求处理完成所花费的时间。

Document length 表示HTTP响应数据的正文长度

Request per second 这是我们关注的吞吐率

Time per request 用户平均请求等待时间

Time per request(across all concurrent requests) 服务器平均请求处理时间

 

cat /proc/loadavg

列出当前系统进程的运行队列:0.00 0.04 0.00 1/768 31940

1表示此事运行队列中的进程个数,768代表此时进程总数。31940表示目前为止,最后创建的进程ID

0.00 0.04 0.00 表示系统负载,负载越高,cpu越忙。三个值表示最近1分钟,5分钟,15分钟的统计,top和w等工具也可查看。

 

二 动态内容缓存

 

三 浏览器缓存

IE直接存储了临时文件。

Chrome和Firefox是采用二进制进行存储的,Chrome用chrome://cache、Firefox用about:cache进行查看。

1. Last-Modified 机制

启用缓存是服务器端处理的,在response消息头中加入Last-Modified:xxxx,这个时间会保存在缓存中,这样浏览器下次请求同样的内容时

消息头里面带If-Modified-Since:xxx发送给服务器,对于静态文件,服务器直接判断是否有改动,没有的话直接返回消息头304 Not Modified

让浏览器直接使用本地缓存,不会传输正文给浏览器。、

2. ETag 简单采用md5值

采用一串编码来标记内容,如果标记没有修改则表示内容没有改动。

启用缓存是服务器端处理的,在response消息头中加入ETag:‘xxxx’,浏览器下次请求同样的内容时带If-None-Match: “xxxx”,xxxx一致就返回

304.

静态内容和动态内容缓存不同,动态内容需要自己控制。

3. Expires机制。 Last-Modified 机制还是需要每次请求服务器查询文档是否有改动,Expires机制在response中直接告诉内容何时过期,在未过期

时效内直接使用缓存即可,无需再询问服务器。

格式如:Expires Sun,19 Feb 2002 16:00:00 GMT.

Ctrl+F5强制刷新,即不使用缓存。

F5,可让Last-Modified发挥效果,对Expires无效

如果服务器和本地不同,会导致Expires不准确,利用Cache-Control来弥补,

格式Cache-Control:max-age=<second> max-age指明缓存过期的相对时间,时间是相对于浏览器的本地时间而言的。

当Expires和Cache-Control同时存在,以Cache-Control优先。

 

四 web服务器缓存

 

五 web组件分离

浏览器并发数,浏览器会为每个域名维护不同的下载队列,wen组件分离后(不同域名)导致下载并发数增多,整体性能提高。

 

六 分布式缓存

 

七 数据库性能优化

索引:一般来说,如果一个字段出现在查询语句中基于行的选择、过滤或者排序条件中,那么为该字段建立索引便是有价值的。

like不能使用索引

组合索引:一次查询对于一个数据表只能使用一个索引,比如 ... where a=1 and b=2 即使a、b都建立的索引,无法进行叠加。

非顺序索引类型(如hash),对于order by是无效的。

慢查询日志

MySql在my.cnf添加配置:

long_query_time=1

long-slow-queries=/data/var/mqsql_slow.log

log-queries-not-using-indexes

这样随着MySql运行,会收集查询日志,以便分析。

 

八 web负载均衡

 

 

分享到:
评论

相关推荐

    Linux性能与安全合集

    Linux Security Tips(Linux 安全技巧).pdf linux 系统安全与优化中文版 by smallfish.pdf Linux 系统安全与优化中文版221.pdf Linux 进程管理.pdf Linux安全和优化.pdf ... 构建高性能WEB站点.p

    笔记资料.zip

    例如,Java应用处理业务逻辑,Nginx负责静态资源服务和负载均衡,两者共同构建出高性能的Web服务架构。 这份笔记资料可能详细记录了作者在学习过程中遇到的问题、解决方法以及一些实用技巧,对于初学者和有经验的...

    SOLR学习笔记

    Solr 的设计目标是为了提供高性能、高可用性的搜索服务,适用于各种规模的企业级应用。 **主要特点** 包括: - **面向应用**:Solr 提供了丰富的特性来满足不同场景的需求,比如高亮显示匹配文本、支持多种输出...

    easyUI笔记

    ### easyUI笔记知识点详解 #### 一、什么是jQuery EasyUI? **jQuery EasyUI** 是一组基于 jQuery 的 UI 插件集合。它的目标是帮助 Web 开发者更容易地创建功能丰富且美观的用户界面。通过使用 **jQuery EasyUI**...

    基于PHP的minIsay php笔记程序beta.zip

    1. **轻量级架构**:minIsay的设计理念是简洁,因此其代码结构清晰,资源占用少,对于小型和个人站点而言,运行效率高,且易于部署和维护。 2. **PHP技术栈**:作为一款PHP程序,minIsay充分利用了PHP的灵活性和...

    Portal门户开发笔记

    这些组件可以增强用户的参与度和工作效率,同时提供数据分析和报告,帮助企业监控门户性能和用户行为。 总的来说,IBM WebSphere Portal提供了一整套工具和框架,使得开发者能够构建复杂的企业级门户,实现内容的...

    ngotes:使用MongoDB的笔记站点

    MongoDB是一款高性能、开源、无模式的文档型数据库,被广泛应用于Web开发中,尤其是对于处理JSON、BSON格式数据的应用场景。Ngotes是一个基于MongoDB构建的笔记站点,它利用了MongoDB的强大功能来存储和检索用户的...

    Nginx-笔记1

    【Nginx】是俄罗斯开发的一款高性能的HTTP和反向代理服务器,因其高效稳定、内存消耗小、并发能力...通过本课程的学习,你将能够全面了解Nginx,掌握其基本配置和应用场景,为构建高效稳定的Web服务环境打下坚实基础。

    尚硅谷_韩顺平_Go语言核心编程.docx

    - **后端服务开发**:由于 Golang 高效的性能表现,非常适合用于构建高性能的 Web 服务器和 API 服务。 - **云计算/云服务后台**:随着云计算的发展,越来越多的企业开始采用 Golang 来构建云服务的后端系统。 ####...

    nginx笔记+JAVA+运维

    Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,由俄罗斯开发者伊戈尔·赛索耶夫为 Rambler.ru 站点开发,以其稳定性、高效能和低系统资源消耗著称。自 2004 年首次发布以来,Nginx 已经发展成为一个广泛使用的...

    老男孩linux运维课程笔记

    - **Nginx优势**:高性能、稳定性好、资源消耗低、易于扩展。 - **模块和工作原理**: - Nginx支持多种模块,如HTTP Proxy模块、HTTP FastCGI模块等。 - 工作模式采用异步非阻塞的方式,能够高效处理大量并发请求...

    lucene笔记

    - **Nutch**: 包含大规模爬虫工具,能够抓取和分析Web站点数据。 - **jsoup**: Java HTML解析器,支持直接解析URL地址、HTML文本。 - **Heritrix**: 开源的网络爬虫,具有良好的可扩展性。 #### 索引文件的逻辑...

    documentation::open_file_folder:我用盖茨比制成的个人笔记本

    首先,Gatsby是一款基于React的静态站点生成器,它结合了现代Web开发的最佳实践,如JAMstack(JavaScript、APIs、Markup),为构建高性能的网站提供了一流的解决方案。通过Gatsby,我们可以快速搭建起个人笔记本的...

    JavaScript_使用 NextJS Notion API 实现的支持多种部署方案的静态博客无需服务器零门槛搭建网站为

    它简化了React应用的开发流程,提供了诸如自动代码分割、预渲染、路由、热模块替换等特性,让开发者可以快速地构建可扩展的、高性能的Web应用。 **Notion API** Notion是一款强大的笔记和项目管理工具,它的API...

    flutter 环境搭建-flutter环境搭建,很不错的学习笔记

    其核心优势在于跨平台性和高性能表现。 **跨平台性**:Flutter 的跨平台特性意味着开发者可以使用同一套代码库来部署应用程序至多个不同的平台。这些平台包括但不限于: - **移动端**:Android 和 iOS。 - **Web端...

    PriorityQueue带优先级的队列md,学习代码笔记

    **PriorityQueue带优先级的队列** `PriorityQueue`是Java集合框架...理解这些技术并合理选择使用,对于构建高性能、安全的Web应用至关重要。在实际开发中,需要根据应用场景和需求来决定使用哪种机制来管理用户状态。

    notebook:每日笔记本迷你博客

    1. **Gatsby**:Gatsby是一个基于React的开源静态站点生成器,用于快速构建现代Web应用。Gatsby以其出色的性能、丰富的插件生态系统和SEO优化而闻名。在“notebook”项目中,Gatsby被用来构建响应式的博客界面,能够...

    《Apache服务器配置与使用工作笔记》.(王江伟).[PDF].&ckook;

    ### Apache服务器配置与使用知识点详解 #### 一、Apache服务器简介...通过以上知识点的学习,读者可以深入了解Apache服务器的基本原理、配置方法及高级用法,从而更好地利用Apache构建稳定、高效、安全的Web服务环境。

    B2C商城系统 PC端+H5移动端 + 微信端 快速为你构建自己的商城系统.rar

    对于高并发的B2C商城,性能优化至关重要,包括缓存策略、负载均衡、CDN内容分发网络等技术的应用,以保证系统的稳定性和响应速度。 11. **API接口**: 商城系统可能需要与其他服务集成,如物流查询、第三方支付、...

Global site tag (gtag.js) - Google Analytics