web服务器访问缓慢作为运维人员?想入运维坑只能从运维监控做起了么
这个非常常见的面试问题,但是百度搜了好多都找不到①个相对全面详细的解决过程。求运维大神提点①个全面的解决思路或框架!比如IO瓶颈,网络连接数过大,CPU占用率,内存占用率,磁盘读写性能等等都可能造成访问缓慢,但是有无①个逻辑比较清晰的解决过程?
web服务器访问缓慢,这是①个网站技术运营过程非常普遍的问题。
回答①个问题之前,首先需要考虑的是回答问题的思路,其次才是可能的答案。
思路是怎么形成的?思路是来源于对系统架构的了解,也就是说用户发起①个请求到最终落地到数据库,中间都经历了哪些环节。首先是用户的电脑环境(比如换个浏览器,换个电脑,换个网络环境是不是就好了),接着是用户到服务器段网络质量如何,网络时延和丢包情况,访问其他站点是否存在相同问题(坑爹的长城宽带,上海的用户你们懂得;用户运营商环境和网站服务的主要带宽环境,是不是跨运营商核心网络有故障),然后是服务端,从web接入层开始分析,是压力大扛不住用户请求(请关注系统负载和异常日志),是不是代码逻辑有问题,请查看日志和变更记录,往后是中间件层和依赖服务,需要考虑是否使用了什么缓存,缓存的命中率和读写访问效率如何,依赖的服务访问效率如何,是不是非核心依赖拖慢了核心服务,然后就是数据库层,需要考虑的是db的负载,查询的效率。
简单的①个访问流:
用户(电脑,网络)----->运营商网络----->网站服务商(接入层-----中间件或第③方接口-----数据层)
当然排查问题的思路也可以按照访问流的反方向来,可以及时排除网站服务商问题,从而降低对用户的影响,但是有时会造成无用功。
如果不需要强实时数据,请尽可能地增加缓存,将用户的请求挡在尽可能多的缓存中,速度不是①般的快。
至于用什么工具去排查分析问题,这些都是基本功,不需要过多的强调。
mark,待我整理①下思路!稍后回答:
运维监控是什么鬼?这不是①个职业,只是①项工作分支而已!
对运维的总结:
以下是我的工作历程中总结出来的运维经验,中间走了很多的弯路,希望能给你有所帮助吧!
初阶:
你需要承担并熟悉以下工作:
① · 各类linux系统安装调试。比如:redhat、centos等等
② · 各类开源软件的部署安装调试,这就多了,分了很多的小类,以下是我曾经涉及到的部分。
a、监控软件:zabbix、cacti等
b、web服务器类:apache、nginx、tomcat等等
c、数据库类:mysql、Oracle等等
d、分布式文件系统:MooseFS、hdfs等等
e、网络文件系统:NFS等等,记不太清楚了。
f、PHP的各类插件的安装,等等。
g、各类缓存软件:memcache,redis等等
h、各类备份软件:例如bacula
③ · 掌握并熟悉以下的简单架构:
a、LAMP:linux+apache+mysql+php
b、LNMP:linux+nginx+mysql+php
c、LNAMP:linux+nginx+apache+mysql+php
d、主要是深入理解之后根据实际情况搭建而已,类似的还有很多
④ · 至少掌握如下几个语言或者技巧:
a、正则表达式
b、sql
c、shell
d、熟练的linux命令
⑤ · 熟悉以下概念,并且实际应用:
a、高可用:keepalived
b、负载均衡:LVS、nginx反向代理、MHA等等
c、读写分离:mysql
d、同步、异步;阻塞、非阻塞
⑥ · 基础网络支持以及防火墙配置
a、例如思科防火墙配置,作为①个网络工程师应该难不倒你。
⑦ · 沟通能力
a、与研发、测试以及有的时候的产品的沟通能力
b、与同事的沟通能力
⑧ · 强大的自主学习能力以及搜索与克服困难的能力
a、利用各大论坛以及搜索引擎吸取知识和解决问题
b、自我总结与提高
c、遇到困难永不放弃,并且敢于尝试和变通
⑨ · 基础运维工作:
a、程序或者功能上线
b、测试环境搭建
c、给同事安装系统(windows)
d、帮着干体力活
e、还有人向你借钳子和螺丝刀
f、你特么还要会修电脑
g、手机你也要会修,还必须会贴膜
以上!
总结:可能写的不全,但是临时只能写这些了,当然在实际工作过程中会遇到更多的问题与困难。
以上的能力与知识是需要你在工作岗位上获得的,如果①个工作岗位无法让你获得以上的内容,说明
这个工作岗位并不是①个理想的运维岗位,你需要斟酌。
进阶:自动化运维-我也在学习中,由于没有太多经验,不便多说,也说不出来。
以上是肤浅 的第①阶段,不过也是必须经历的基础,目前已经逐渐跳进了自动化运维的坑。
希望经过①段时间的学习之后能够再总结出来,给大家看看。
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息