构建高并发网站架构
构建高并发网站架构
https://www.cnblogs.com/leefreeman/p/3993449.html
特点:并发数高、访问量大、数据量大、用户分布广泛、网络环境复杂、稳定性高、易于扩展、安全性高
基础设施
服务器介绍:塔式服务器、机架式服务器、刀片式服务器、虚拟主机、虚拟机、服务器、云主机
网络设备介绍:交换机、防火墙、路由器
存储设备:san、nas、das
IDC:机房、机柜、网络、电源、空调
基本概念
head详解:kb.cnblogs.com/page/92320/
http协议:超文本传输协议,http1.0是没有办法保持连接,http1.1可以保持连接,http1.1支持host请求头(一个服务器上配置多个域名)
linux查看head
[root@centos-01 kvm_data]# curl -I http://www.baidu.com HTTP/1.1 200 OK Accept-Ranges: bytes Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform Connection: Keep-Alive Content-Length: 277 Content-Type: text/html Date: Thu, 12 Jul 2018 01:35:20 GMT Etag: "575e1f5d-115" Last-Modified: Mon, 13 Jun 2016 02:50:05 GMT Pragma: no-cache Server: bfe/1.0.8.18 [root@centos-01 kvm_data]#
http状态码:200正常请求、301永久跳转、302临时跳转、304从缓存中取、401需要认证、403无权限、404图片或网页找不到、500服务器问题、502nginx服务器+php-fpm中常见,nginx请求php发现php文件找不到会报502、503常出现在代理服务器、504访问超时
url和uri:uri包含url
常用服务器
apache、nginx、iis、tomcat
awstat日志分析
http://blog.51cto.com/freeloda/1346412
Apache服务器下查看服务器吞吐量
loadrunner
临时测试工具ab(如果没有ab命令yum安装httpd包)
ab -c 100 -n 1000 http://www.baidu.com/index.php
-c指定并发送 -n指定访问多少次
[root@centos-04 src]# ab -c 10 -n 100 http://www.qq.com/index.php This is ApacheBench, Version 2.3 <$Revision: 1430300 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking www.qq.com (be patient).....done Server Software: stgw/1.3.6.2_1.13.5 Server Hostname: www.qq.com Server Port: 80 Document Path: /index.php Document Length: 168 bytes Concurrency Level: 10 Time taken for tests: 0.275 seconds Complete requests: 100 Failed requests: 0 Write errors: 0 Non-2xx responses: 100 Total transferred: 37300 bytes HTML transferred: 16800 bytes Requests per second: 364.20 [#/sec] (mean) (吞吐量、并发送) Time per request: 27.457 [ms] (mean) (每个请求花费的时间,不超过3秒就没问题) Time per request: 2.746 [ms] (mean, across all concurrent requests) Transfer rate: 132.66 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 6 11 2.8 11 21 Processing: 6 12 4.7 11 29 Waiting: 5 9 2.5 9 18 Total: 13 23 5.7 21 39 Percentage of the requests served within a certain time (ms) 50% 21 66% 24 75% 26 80% 28 90% 30 95% 32 98% 38 99% 39 100% 39 (longest request) [root@centos-04 src]#
网站架构角色web
第一种:client-》web-》db
第二种:client-》cdn-》代理-》web-》缓存-》db
cdn:加速器,解决由于网络带宽小、用户访问量大、网点分布不均而产生的用户访问网站响应速度慢的根本原因,CDN目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决 Internet 网络拥塞状况,提高用户访问网站的响应速度。
web:iis、Apache、nginx+php-fpm、tomcat+jdk nginx+uwsgi+python
db:mysql/maridb/、postgresql、oracle、mangodb
nosql:memcached、redis
代理:squid和varnish(不仅仅可以做代理还可以缓存)、nginx
cdn就是一个带缓存的代理,
存储:fastdfs gfs hdfs tfs glusterfs
架构
网站架构演变 - 小型网站
网站架构演变 - 小型网站
网站架构演变 - 中小型网站
网站架构演变 - 中型网站
架构优化-CDNnginx调优
架构优化-硬件优化
架构优化-CDNnginx调优
架构优化-使用nosql
架构优化-业务调优
架构优化-内核调优
架构优化-使用异步通信
架构优化-案例分析
减少 http请求
记录慢执行慢查询日志
将动态内容静态化
图片延迟加载
动静分离
应用无状态
查看当前系统运行进程
[root@centos-04 nginx-1.14.0]# pstree systemd─┬─NetworkManager─┬─dhclient │ └─2*[{NetworkManager}] ├─auditd───{auditd} ├─crond ├─dbus-daemon ├─dockerd-current─┬─docker-containe─┬─docker-containe─┬─mysqld───29*[{mysqld}] │ │ │ └─7*[{docker-containe}] │ │ ├─docker-containe─┬─php-fpm───2*[php-fpm] │ │ │ └─7*[{docker-containe}] │ │ ├─docker-containe─┬─nginx───nginx │ │ │ └─7*[{docker-containe}] │ │ └─10*[{docker-containe}] │ ├─3*[docker-proxy-cu───3*[{docker-proxy-cu}]] │ └─9*[{dockerd-current}] ├─gssproxy───5*[{gssproxy}] ├─login───bash ├─lvmetad ├─master─┬─pickup │ └─qmgr ├─polkitd───6*[{polkitd}] ├─rpc.idmapd ├─rpc.mountd ├─rpc.statd ├─rpcbind ├─rsyslogd───2*[{rsyslogd}] ├─sshd─┬─sshd───bash───pstree │ ├─sshd───9*[sftp-server] │ └─2*[sshd───sftp-server] ├─systemd-journal ├─systemd-logind ├─systemd-udevd └─tuned───4*[{tuned}] [root@centos-04 nginx-1.14.0]#
文件倒序排列
[root@centos-04 nginx-1.14.0]# ls -lt|head 总用量 740 drwxr-xr-x 2 1001 1001 4096 12月 25 15:53 conf drwxr-xr-x 4 root root 4096 7月 30 05:59 objs -rw-r--r-- 1 root root 376 7月 30 05:57 Makefile drwxr-xr-x 9 1001 1001 84 7月 25 00:14 src drwxr-xr-x 2 1001 1001 20 7月 25 00:12 man drwxr-xr-x 6 1001 1001 4096 7月 25 00:06 auto drwxr-xr-x 4 1001 1001 68 7月 25 00:06 contrib drwxr-xr-x 2 1001 1001 38 7月 25 00:06 html -rw-r--r-- 1 1001 1001 286953 4月 17 2018 CHANGES [root@centos-04 nginx-1.14.0]#
php-fpm配置文件
配置php慢程序日志
https://www.cmhello.com/php-fpm.html
安装xhprof
http://blog.chinaunix.net/uid-20622737-id-3820457.html