[web] 系统运维--单机
处理过程
- 浏览器发送请求经过网络到达web服务器
- web服务器处理请求并响应数据
- 响应数据从web服务器发送到用户端
- 用户浏览器接收数据,本地计算渲染
指标
- 响应时间
- 吞吐量
响应时间
- 响应时间 = 发送时间 + 传输时间 + 处理时间
- 发送时间 = 数据量比特数 / 带宽
- 传输时间 = 传播距离 / 传播速度
缩短处理时间
- 单机性能优化
- 集群
- 缓存
- 瓶颈点优化
- 多机房部署,就近访问
单机架构
- 单机模式
- 单台服务器web+DB
- 数据库每日凌晨备份,保存到本地
- 动静分离
- 单台服务器web+DB
- Nginx+PHP实现动静分离
- 数据库每日凌晨备份,保存到本地
- 数据库分离
- 将web服务器和数据库单独部署
- web服务器资源备份到数据库服务器
- 数据库每日凌晨备份存放到web服务器
- 组件分离
- 静态服务器使用单独的服务器
- 静态服务器使用独立一级域名防止Cookie提交
- 静态服务器使用多个二级域名提高加载速度(下载网页数据,每遇到1个图片,浏览器会开启1个线程去下载,每个域名只能开6-8个线程)
- 静态资源作为NFS,静态资源存放于NFS上
- 数据库每日凌晨备份到NFS上
web性能优化
- CPU
- 进程数
- CPU绑定
- 内存
- JVM设置
- GC优化
- 大页内存
- 内存合并
- 磁盘
- Openfile
- Sendfile
- IO调度算法
- 网络
- Epool
- Socket优化
- 持久连接
- 随机端口限制
- 65536(2^16-1)
- nc -l -4 -p 9999 -k
- nc 192.168.174.111 9999

- TCP状态转换:FIN_WAIT2,TIME_WAIT(主动关闭方,1个60s,消耗socket)


- TIME_WAIT优化
- reuse:都可以开,时间戳(timestamps)要开
- recycle:不等60s,快速销毁TIME_WAIT,当客户端出于NAT网络时,不能打开(网关 / 负载均衡器,多个客户端通过一个IP访问外网)
- 绑定多个ip地址
- TIME_WAIT优化
- 性能测试
- ab -n 10000 -c -1000 http://www.baidu.com/
- 以1000个并发,共10000个请求访问百度
- 报错:too many open file(默认1024)
- 1个http请求对应1个tcp,对应1个socket文件
- ulimit -a
参考
运维知识体系
https://www.unixhot.com/page/ops
TCP的随机端口为什么不能像服务端口一样复用?
https://www.zhihu.com/question/342296674
[web] 系统运维--单机的更多相关文章
- 解决CentOS无法显示中文字体 | 系统运维 | Web2.0
解决CentOS无法显示中文字体 | 系统运维 | Web2.0 About Me 博客园 devops 前端 张家港水蜜桃 傍晚好! 2013年09月12日 17:56:08 ...
- 浅谈Linux系统运维工程师必备技能
一.什么是运维工程师 相信读者们必定听说过Linux,也听说过运维工程师.那么运维工程师是个什么概念呢? 百度百科上的官方解释如下: 运维工程师(Operations)在国内又称为运维开发工程师(De ...
- Linux系统运维笔记(五),CentOS 6.4安装java程序
Linux系统运维笔记(五),CentOS 6.4安装java程序 用eclipse编译通的java程序,现需要实施到服务器.实施步骤: 一,导出程序成jar包. 1,在主类编辑界面点右健,选 ru ...
- Linux系统运维笔记(四),CentOS 6.4安装 MongoDB
Linux系统运维笔记(四),CentOS 6.4安装 MongoDB 1,下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...
- Linux系统运维笔记(四),CentOS 6.4安装Nginx
Linux系统运维笔记(四),CentOS 6.4安装Nginx 1,安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool op ...
- Linux系统运维笔记(三),设置IP和DNS
Linux系统运维笔记(三),设置IP和DNS 手工配置静态的IP地址 也就是手工配置IP地址.子网掩码.网关和DNS. vi /etc/sysconfig/network-scripts/ifcfg ...
- Linux系统运维笔记(二),Linux文件编辑命令
Linux系统运维笔记 Linux文件编辑命令 首先我们使用命令 vi filename 打开一个文件,这个时候进入到的是命令模式 接下来我们按i,然后键盘随便输入写内容. 然后按ESC重新进入到命令 ...
- Linux系统运维笔记(一),查看系统版本和设置系统时间
Linux系统运维笔记 查看系统版本和设置系统时间 查看系统版本 lsb_release -a (适用于所有的linux,包括Redhat.SuSE.Debian等发行版,但是在debian下要安装l ...
- Linux系统运维笔记(6),CentOS 7.6双网卡路由配置
Linux系统运维笔记(6),CentOS 7.6双网卡路由配置. 一,先确认系统版本: [root@localhost ~]# cat /etc/redhat-releaseCentOS Linux ...
随机推荐
- Flex属性你真的搞清楚了吗?我深表怀疑
背景 在使用弹性布局实现两侧宽度固定,中间宽度自适应的效果时,发现自己理解的和实际效果不一致,所以亲自实践验证了一个flex属性的诸多场景的表现,不仅解开了我之前使用过程遇到的疑惑,而且发现了许多自己 ...
- [Fundamental of Power Electronics]-PART I-3.稳态等效电路建模,损耗和效率-3.5/3.6 示例:Boost变换器中包含的半导体传导损耗/要点小结
3.5 示例:Boost变换器中包含的半导体传导损耗 作为最后一个示例,让我们考虑对图3.22所示的Boost变换器中的半导体传导损耗进行建模.功率损耗的另一个主要来源是半导体器件的正向电压降引起的传 ...
- .NET WebSockets 核心原理初体验
上个月我写了<.NET gRPC核心功能初体验>, 里面使用gRPC双向流做了一个打乒乓球的Demo, 实时双向这两个标签是不是很熟悉,对, WebSockets也可以做实时双向通信. 本 ...
- 1. Intellij IDEA导入,主题修改,布局界面+部分工具栏菜单介绍
Project 和module 的区别 module 相当与eclispe的项目project 相当与eclpise的工作空间 主题的修改 Setting的快捷键:Ctrl+shift+S
- S-Trees UVA - 712
A Strange Tree (S-tree) over the variable set Xn = {x1,x2,...,xn} is a binary tree representing a ...
- map的遍历方法 map.entrySet()
代码: @Test public void TestMap() throws Exception { Map<String, String> map = new HashMap<&g ...
- 用Qt(C++)实现如苹果般的亮屏效果
用Qt(C++)实现如苹果般的亮屏效果 苹果的亮屏效果可能有很多人没注意到,和其他大部分手机或电脑不同的是,苹果的亮屏特效不是简单的亮度变化,而是一个渐亮的过程.详细来说就是,图片中较亮的部分先显示出 ...
- 功能:Linux运行jar包Shell脚本
一.删除jar进程 # 删除指定jar的进程 ps -ef | grep java | grep testJar.1.0.1 | grep -v grep | cut -c 9-15 | xargs ...
- 【Java注解】@PostConstruct 注解相关
不多逼逼,直接看注解上面的文档, @PostConsturct PostConstruct注释用于需要执行的方法在依赖注入完成后执行任何初始化.这个方法必须在类投入服务之前调用. 这个所有支持依赖关系 ...
- jumpserver2
测试环境 CPU: 64位双核处理器 内存: 4G DDR3 数据库:mysql 版本大于等于 5.6 mariadb 版本大于等于 5.5.6 环境 系统: CentOS 7 IP: 192.168 ...