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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 数据的网络传输、服务器并发处理能力、动态内容缓存、动态脚本加速、浏览器缓存、web服务器缓存、反向代理缓存、web组件分离、分布式缓存、数据库性能优化、web负载均衡、共享文件系统、内容分发和同步、分布式文件系统、数据库扩展、分布式计算、性能监控1、数据如何发送:应用程序调用胸痛函数库接口向内核发出调用请求,系统内核随后将数据从用户态内存区复制到内核缓冲区,内核缓冲区是共用的,所以数据要以队列方式传输。

数据的网络传输、服务器并发处理能力、动态内容缓存、动态脚本加速、浏览器缓存、web服务器缓存、反向代理缓存、web组件分离、分布式缓存、数据库性能优化、web负载均衡、共享文件系统、内容分发和同步、分布式文件系统、数据库扩展、分布式计算、性能监控

1、数据如何发送:应用程序调用胸痛函数库接口向内核发出调用请求,系统内核随后将数据从用户态内存区复制到内核缓冲区,内核缓冲区是共用的,所以数据要以队列方式传输。到了内存缓冲区后会复制到网卡的缓冲区,数据之间的复制始终按照连接两端设备的内部总线宽度来复制,也就是字节的整倍数,比如32位总线的主机系统中,任何时候只能复制32位的比特信息。网卡缓冲区中的数据需要被转换成物理信号来发送。

2、阻塞IO和阻塞IO:等不等待

3、PIO和DMA:内存和磁盘的交互是否需要经手CPU

4、nginx占用内存极少

5、长连接:减少连接时间

6、epoll:总调度系统

7、apache的fork模式:一个进程一个连接;worker模式:一个线程一个连接。一般使用第一个种方式

8、nginx的worker_processes 表示启动几个worker进程

9、动态网页做缓存,减少计算和与DB的交互等开销。小站点考虑APC,大站点考虑专门的缓存服务器做memcached。部分做局部无缓存

10、动态脚本加速:APC、XCache、eAccelerator

11、检查函数运行的性能:linux--KCacheGrind  windows--WinCacheGrind

12、浏览器缓存协商,编程语言上可以设置:last-modified,expires,cache-control参数来设置浏览器缓存策略

13、web服务器缓存:apache、nginx都提供了缓存模块

14、反向代理服务器缓存工具:varnish(首选)、squid

15、负载均衡包括DNS负载均衡、反向代理负载均衡、IP负载均衡(LVS-NAT,LVS-DR,LVS-TUN),RR顺序轮询的性能并不好。

16、利用共享文件系统实现图片共享(nfs,samba跨平台),nfs不适合作为I/O密集型文件的共享方案,默认情况下NFS的进程数是4,通过更改/etc/sysconfig/nfs种的进程数:USE_KERNEL_NFSD_NUMBER=“64”。在NFS客户端上查看IO:nfsstat 

17、文件分发机制:nfs,samba,scp,sftp,webdav,rsync

18、分布式文件系统:hadoop,MogileFS

19、nginx可以实现webdav

20、mysql的主从复制:开启主服务器上的二进制日志;在主从服务器上分别进行简单的配置和授权

21、mysql proxy实现mysql的负载均衡,一主多从,一写多读。Spock Proxy,改进版

22、Job Server:Gearman远程函数调用,MemcacheQ,改进版


PDF:http://www.jb51.net/books/560398.html

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
22天前
|
前端开发 JavaScript 开发者
JavaScript:构建动态Web的核心力量
JavaScript:构建动态Web的核心力量
|
5月前
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
4月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
7月前
|
数据可视化 图形学 UED
从模型托管到交互开发:DataV 如何简化三维 Web 应用构建?
从模型托管到交互开发:DataV 如何简化三维 Web 应用构建?
181 2
|
8月前
|
安全 Linux 开发工具
零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
OpenIM 为开发者提供开源即时通讯 SDK,作为 Twilio、Sendbird 等云服务的替代方案。借助 OpenIM,开发者可以构建安全可靠的即时通讯应用,如 WeChat、Zoom、Slack 等。 本仓库基于开源版 OpenIM SDK 开发,提供了一款基于 Electron 的即时通讯应用。您可以使用此应用程序作为 OpenIM SDK 的参考实现。本项目同时引用了 @openim/electron-client-sdk 和 @openim/wasm-client-sdk,分别为 Electron 版本和 Web 版本的 SDK,可以同时构建 PC Web 程序和桌面应用(Wi
508 2
|
10月前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
11月前
|
监控 前端开发 JavaScript
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
204 6
|
11月前
|
存储 消息中间件 缓存
构建互联网高性能WEB系统经验总结
如何构建一个优秀的高性能、高可靠的应用系统对每一个开发者至关重要
86 2
|
11月前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
587 3
|
11月前
|
JSON API 数据格式
使用Python和Flask构建简单的Web API
使用Python和Flask构建简单的Web API