简历 面试准备 ** 博客 课程 * ================================================================================================================================================ 简历 个人信息 姓名 求职意向 工作年限 联系方式:手机、邮箱、微信 教育背景 毕业学校 个人博客 自我评估 专业技能 Linux系统管理 web服务 负载均衡集群 高可用 缓存系统 数据库 自动化运维 监控 虚拟化 工作经验 项目经验 ^个人博客 熟悉 Linux 系统管理及常见服务,Nginx、Apache、Tomcat、DNS等。熟练 shell 脚本编程,辅助完成运维工作。 能够部署实现常见的 web 站点架构,实现站点的反向代理、负载均衡、高可用。 熟悉反向代理、负载均衡技术 LVS、Nginx、HAproxty。 对 Linux 操作系统原理有较为深入的理解,能够解决常见的系统故障。根据不同业务模型对系统进行优化,能够设计完成 web 站点的架构。 可熟练编写 shell 脚本,辅助完成运维工作,提高运维效率。熟悉 Python 编程,能够根据需求开发简单的运维工具。 熟练 Linux 系统管理及常见服务的部署配置,Nginx、Apache、Tomcat、DNS等。 能够独立完成各种负载均衡的解决方案,如 LVS、Nginx、Haproxy。熟悉系统、服务、数据库高可用的解决方案,如 keepalived、corosync、MHA等。 熟悉缓存服务 varnish、memcached、redis,能够利用 varnish实现对 web 站点资源的缓存,利用redis 或 memcached 实现seesion 集群、session服务器,利用 memcached 对 MySQL 查询结果进行缓存,提高 MySQL 的性能。 熟悉 MySQL 的备份与恢复,主从复制、高可用、读写分离。 熟练 ansible、puppet 自动化运维工具,能够利用ansibl、puppet完成自动化运维工作。能够熟练部署配置应用 zabbix 监控系统,以及分布式监控系统。 熟悉虚拟化技术。如XEN、KVM,以及Docker容器技术。 Situation: 事情是在什么情况下发生 Task: 你是如何明确你的任务的 Action: 针对这样的情况分析,你采用了什么行动方式 Result: 结果怎样,在这样的情况下你学习到了什么 有较强的自学能力,有兴趣学习新技术。 项目实践 数据库高可用 MHA 增加缓存系统 由于站点访问量的增加,资源请求响应缓慢。故在负载均衡调度器和 web 服务器之间 添加 varnish 缓存系统。 了解 掌握 精通 熟悉 工作经历 武汉热游信息技术公司 2017年5月 - 2017年10月 湖北大学知行学院 2015年4月 - 2017年1月 工作经历 马哥教育 2017年7月 - 2017年11月 武汉热游信息技术公司 2017年5月 - 2017年7月 湖北大学知行学院 2015年4月 - 2017年1月 感谢您花时间阅读我的简历,期待能有机会和您共事 ================================================================================================================================================ 1、Apache 三种响应模型? Apache的响应模型特性被称为 (Multipath Processing Modules) 多路处理模块。这三种模型分别prefork、worker、event。 prefork模型是由父进程管理多个子进程,一个进程响应一个请求。当 Apache 启动时就预先分配出空闲子进程,当有请求时由子进程负责响应请求, 父进程会负责维护一个进程池,保证最小的空闲进程数和最大空闲进程数,当空闲进程数超出或者低于预设值时,父进程会负责创建或释放子进程。 此种模型尽管能够很好的隔离每个用户请求,在访问量不是很大的场景下也能够稳定运行,但由于先天的设计局限,这种响应模型最多不能超过1024 个并发连接请求。 worker模型由父进程管理多个子进程,由父进程生成多个子进程,子进程生成多个线程,每个线程响应一个请求。和prefork相同,worker模型 也会保持预设好的空闲进程数量,以备应付有大量并发请求的场景。worker模型子进程生成多个线程,而线程之间能够共享内存,所以在承受同等 并发请求的情况下,worker模型相对于prefork模型更节省系统资源。 event模型是apache2.2版本之后引入的特性,在2.4版本之前event模型一直是处于测试状态,官方并不保证能够稳定运行于生产环境中。在apache 2.4版本之后,event模型正式成为稳定运行的特性。在event模型中引入了"代理线程"的概念,也就是说由一个父进程生成个多个子进程,每个子进程 生成多个线程,每个线程响应多个请求,event模型中会有一些不负责接收请求的线程用来监控线程的状态,也就是Linux IO模型的多路复用的概念。 这样带来的好处就是单个线程能够处理多个请求,因此event模型更适合在高并发的场景。event模型的实现也是基于Linux内核2.6版本之后的的epoll 系统调用。epoll对文件描述符的监视数量没有限制,I/O效率不随文件描述的增多而线性下降,所以能够承受高并发的场景。 2、一次网站HTTP请求的全过程? 通常可以对网站发起HTTP请求的方式有很多种,比如PC机上的浏览器、手机端、或者使用Telnet工具也可以手动封装报文发起HTTP请求。我以PC机上的浏览器 请求的方式为例叙述这个过程。当我们在浏览器地址栏输入一个域名并按下回车键的后,键盘适配器会收到一个硬件中断请求,并将这个请求发给CPU, 进而通知给运行在主机上的浏览器程序,由于互联网通信是基于IP地址和端口通信的,所以浏览器会帮助用户解析用户输入的域名相对应的IP地址,浏览器首先 会查询本地hosts文件,看是否有此域名和IP地址向对应的IP地址对应记录,如果没有浏览器会向本地DNS服务器发起递归请求,通常本地DNS服务器指的就 是运营商提供的DNS服务器,如果本地DNS服务器有缓存记录,则直接返回给浏览器IP地址,如果没有,则本地DNS服务器会向根域名服务器发起迭代查询, 根域名服务器返回给本地DNS服务器顶级域名服务器的IP地址,本地DNS服务器再次向顶级域名服务器发起查询请求,顶级域名服务器返回二级域名服务器的IP地址, 浏览器再次发起请求,进而得到域名所对应的IP地址。此后,浏览器开始和此IP地址的主机进行TCP三次握手连接,随后浏览器封装HTTP报文向web服务器发起 请求。 大概过程:建立连接、接受请求、处理请求、访问资源、构建响应、发送响应、记录日志。 服务器接受请求的进程接受请求,分析HTTP请求报文的方法、资源路径、首部及主体部分,此后接受请求的线程发起系统调用,从磁盘读取资源,此后处理请求 线程封装报文,发送响应报文给客户端。 3、Nginx 特性? 1、模块化设计,各种复杂的功能通过模块的实现,在nginx 1.9.11 版本之后支持动态装载模块 2、支持热部署。在不停止服务的情况下对 nginx 进行升级,更新配置文件等等 3、高并发。nginx的高并发依赖于 Linux2.6 版本之后的epool系统调用,而epool采用的是事件驱动的通知机制 4、内置健康状态检测 5、支持 sendfile 机制 4、几种I/O模型? 阻塞式 非阻塞式 多路复用 事件驱动 异步 5、TCP三次握手四次挥手过程? 创建连接过程(三次握手) 1、客户端主动发送一个 [SYN置位的为1的报文段] (TCP头部SYN位'置位'),同时指明自己要连接的 [端口号] 以及 [初始化序列 (ISNc)] , 通常客户端还会发送一个或多个 [选项] 。这个报文段称为段1 {SYN,Seq=ISNc,选项} 2、服务端也发送 [SYN报文段] 作为响应,其中也包含自己的 [初始化序列 ISNs] 。同时,服务器端为了确认收到客户端的 SYN报文段,将接收到的INSc+1作为 ACK [ACK=INSc+1] 返回客户端。这个报文段为段2 {SYN+ACK,Seq=ISNs,ACK=ISNc+1,选项} 3、客户端为了确认服务器的SYN,将服务器端的 ISNs+1 作为ACK数值返回。这个报文段称为段3 {ACK,Seq=INSc+1,ACK=ISNs+1,选项} 记忆:利用 SYN报文段 交换自己的初始化序列 ISN,并使用 ACK 对接收到的 Seq 进行确认 连接终止过程(四次断开) 1、{FIN+ACK,Seq=K,ACK=L,选项} 主动发起断开连接的一方发送一个FIN置位的报文,报文中包括上一次接收的确认码ACK=L,以及自己当前的序列号K 2、{Seq=L,ACK=K+1,选项} 被动关闭者收到主动发起断开者的请求后,被动关闭者将接收到的Seq+1响应给主动发起关闭者 3、{FIN+ACK,Seq=L,ACK=K+1,选项} 被动关闭者此时将身份转换为主动关闭者,同样给主动关闭者发送一个FIN报文,这个报文的序列号的L 4、{ACK,Seq=K,ACK=L+1,选项} 6、LVS三种模型及其调度算法? DR模型 NAT模型 TUN模型:封装一个源IP和目标IP Full-NAT模型:修改源IP和目标IP 7、iptables四表五链? INPUT OUTPUT PREROUTE FORWARD POSTROUTING filter nat mange raw 9、备份恢复方式? 完全备份 增量备份 差异备份 部分备份 热备 xtrabackup(Innodb) 温备 冷备 lvm2 主从复制的方式备份 物理备份 逻辑备份 mysqldump xtrabackup lvm2 10、存储的异同 InnoDB 支持事务 在 MariaDB 上的实现是 Percona 公司实现了 XtraDB 存储引擎。Percona 有自主研发的数据库 Percona-server。 表文件表现格式: 数据存储于表空间中,InnoDB使用表空间的方式有两种,第一种是将所有的数据和索引放置于同一个表空间中,第二种是单独使用一个表空间存储表 的数据和索引,使用innodb_file_per_table=ON参数开启此功能。第一种方式的表空间文件表现为在datadir目录下的ibddata1、ibddata2 .... 等 文件。第二种方式的表空间文件表现为在datadir目录下的xuekaixin.ibd xuekaixin.frm(表格式).... 等文件,但此种方式需要 innodb_file_per_talbe=ON配置。 特性: 事务性存储引擎,适合对事务要求较高的场景中,但比较适用于大量短期事务 基于MVCC(Mutil Version Concurrency Control)支持高并发 支持所有的四个隔离级别,默认级别是REPEATABLE READ 聚集索引:主键索引是聚集索引。{聚集索引只能有一个} 数据和索引在一起 支持自适应hash索引: 行级锁 {锁力度} 间隙锁防止幻读 支持热备 MyISAM 不支持事务 在 MariaDB 上实现是 Aria。适用于只读或写少的场景或者表较小可接受长时间修复操作。每个表保存在一个文件中。 表文件表现格式: 每个表表现为三个文件。 classes.frm # 表格式定义 classes.MYD # 数据文件 classes.MYI # 索引文件 特性: 支持全文索引(FULLTEXT index) 压缩 空间函数(GIS) 不支持事务 表级锁 奔溃后无法安全恢复 非聚集索引 延迟更新索引键 支持压缩表 11、运维开发、架构师 ================================================================================================================================================ 实验 1、ansible实验 HAproxy 灰度发布 tomcat varnish redis ================================================================================================================================================ 博客 1、tomcat 2、数据库 MySQL基础知识 MySQL事务 MySQL日志 MySQL存储引擎 MySQL备份与恢复 MySQL复制架构 主从复制 双主复制 半同步复制 ProxyMySQL MHA 3、redis 4、zabbix ================================================================================================================================================ 课程 * 虚拟化 KVM * 搜索引擎 * Docker * fastdfs *kubernetes hdoop(了解) mogndb(了解) * Openstack ================================================================================================================================================ 博客 安装hexo