工作经验问题

目录


+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
张贺,多年互联网行业工作经验,担任过网络工程师、系统集成工程师、LINUX系统运维工程师
个人网站:www.zhanghehe.cn
笔者微信:zhanghe15069028807,现居济南历下区
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-


下面是一些在面试的时候常常问到的与工作经验相关的问题,记录总结一下;

工作经验问题

常用的服务器型号

dell r640

dell r710

dell r720

如何给服务器安装系统

口头描述一下即可,过于简单,这里就略过了。

给你100台服务器,你要如何管理?

首先,我要知道要项目内容是什么?然后根据项目内容思考如何完成这个项目?在思考的同时把拓扑图要画出来,每一台机器要安装什么服务?完成什么任务?都要规划好,生成规范化的文档。

第一步是装系统,我们可以选项使用kickstart批量部署系统

第二步是连接系统,我们可以通过脚本批量推送公钥

第三步是批量优化系统和部署服务:ansible

第四步是测试服务,还有用脚本

第五步:批量监控,可以选项用zabbix

平时的工作内容?

  1. 睡觉之前和起床之后,先看有没有监控系统发的报警邮件。
  2. 上班第一件事,看监控,看日志,看有没有什么异常,该扩容扩容,该修复修复。
  3. 问问领导,今天有没有什么任务,如果有就干呗!如果没有就思考思考还有什么地方需要优化,找同事或找领导讨论讨论。
  4. 维护好同事关系,去给开发聊一聊天,吃个饭,让工作好干一点!
  5. 开放性,经常看看公众号,看有没有新的漏洞,的技术,想想能不能应用到实际环境当中。看看社区解决里面有没有人提问什么问题,力所能及的帮一把。思考最近做了什么事情?解决了什么故障?写成博客,分享在网上,在自己所在的QQ群和微信群都发一发,保持在活跃度,其目的是形成个人品牌效应。
  6. 下班之前写一写日报,及时向领导汇报工作。

网站无法访问时排障思路

有个客户说访问不到你们的网站,但是你们自己测试内网和外网访问都没问题。你会怎么排查并解决客户的问题?

我们自己测了都没问题,只是这个客户访问有问题,那肯定是要先联系到这个客户,能远程最好,问一下客户的网络是不是正常的,访问其它的网站有没有问题(比如京东、百度什么的)。如果访问其它网站有问题,那叫客户解决本身网络问题。如果访问其它网站都没问题,用ping和nslookup解析一下我们的网站是不是正常的,让客户用IP来访问我们的网站是否可行,如果IP访问没问题,那就是客户的DNS服务器有问题或者DNS服务器解析不到我们的网站。还有一种可能就是跨运营商访问的问题,比如我们的服务器用的是北方联通、而客户用的是南方移动,就也有可能突然在某个时间段访问不到,这种情况在庞大的中国网络环境中经常发生(一般是靠CDN解决)。还有可能就是我们的网站没有SSL证书,在公网是使用的是http协议,这种情况有可能就是没有用https协议网站被运营商劫持了。

你会用什么方法查看某个应用服务的流量使用情况

笔者回答:如果是单一应用的服务器,只需要用iftop、sar等工具统计网卡流量就可以。如果服务器跑了多个应用,可以使用nethogs工具实现,它的特别之处在于可以显示每个进程的带宽占用情况,这样可以更直观获取网络使用情况。

怎么去查看io负载信息用哪些命令 (top uptime)

平时遇到故障时的处理思路

说一下你遇到的解决不了的问题?

怎么查看cup进程负载信息

说一下你们公司怎么发版的(代码怎么发布的)?

jenkins配置好代码路径(SVN或GIT),然后拉代码,打tag。需要编译就编译,编译之后推送到发布服务器(jenkins里面可以调脚本),然后从分发服务器往下分发到业务服务器上。

ansbile同时分发过程很慢(默认逐台),如果解决

用过ansible的(copy file yum ping command shell)等模块;ansible默认只会创建5个进程,所以一次任务只能同时控制5台机器执行.那如果你有大量的机器需要控制,或者你希望减少进程数,那你可以采取异步执行.ansible的模块可以把task放进后台,然后轮询它.这使得在一定进程数下能让大量需要的机器同时运作起来.

用什么命令可以查看上一次服务器启动的时间、上一次谁登录过服务器?

笔者回答:w命令查看上次服务器启动时间。last命令 查看登录。

你在工作的过程中,遇到过你映像最深的是什么故障问题,你又是如何解决?

你在工作当中写什么脚本?(起码要举出三个例子吧!)

自动化部署脚本你写过哪些 哪个脚本自己感觉写的特别好

本地的一个文件上传到服务器完成后,服务器上还是什么都没有,这有可能是什么问题?

你解决过哪些感觉有成就的问题,说下你自己在此事件中发挥的作用

网站访问的慢

我是这么说的:问清楚反应的人哪个服务应用或者页面调取哪个接口慢,叫他把页面或相关的URL发给你,首先,最直观的分析就是用浏览器按F12,看下是哪一块的内容过慢(DNS解析、网络加载、大图片、还是某个文件内容等),如果有,就对症下药去解决(图片慢就优化图片、网络慢就查看内网情况等)。其次,看后端服务的日志,其实大多数的问题看相关日志是最有效分析,最好用tail -f 跟踪一下日志,当然你也要点击测试来访问接口日志才会打出来。最后,排除sql,,找到sql去mysql执行一下,看看时间是否很久,如果很久,就要优化SQL问题了,expain一下SQL看看索引情况啥的,针对性优化。数据量太大的能分表就分表,能分库就分库。如果SQL没啥问题,那可能就是写的逻辑代码的问题了,一行行审代码,找到耗时的地方改造,优化逻辑。

我需要查看某个时间段的日志(比如access.log日志),如何实现?

笔者回答:方法有很多种,比如我要看查的时间是2018年1月9号--1月10号的日志吧。

比如可以用sed命令,格式为:sed -n '/起始时间/,/结束时间/p' 日志文件,如下:

sed -n '/09/Jan/2018/,/10/Jan/2018/p' access.log

比如可以用grep,格式为:grep -E '起始时间|结束时间' 日志文件,如下:

grep -E '09/Jan/2018|10/Jan/2018' access.log

当然,你还可以结合cat、grep 、awk这些命令一起来使用都行。

给你一套环境,你会如何设计高可用、高并发的架构?

如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的SLB+ECS+RDS这套标准的高可用、高并发的架构。对外服务直接上SLB负载均衡技术,由阿里的SLB分发到后端的ECS主机;ECS主机部署多台,应用拆分在不同的ECS主机上,尽量细分服务。数据库用RDS高可用版本(一主一备的经典高可用架构)、或者用RDS金融版(一主两备的三节点架构)。在结合阿里其它的服务就完全OK,业务量上来了,主机不够用了,直横向扩容ECS主机搞定。

如果这套环境托管在IDC,那么你就要从硬件、软件(应用服务)双面去考虑了。硬件要达到高可用、高并发公司必须买多套网络硬件设备(比如负载设备F5、防火墙、核心层交换、接入层交换)都必须要冗余,由其是在网络设计上,设备之间都必须有双线连接。设备如果都是跑的单机,其中一个设备挂了,你整个网络都瘫痪了,就谈不上高可用、高并发了。其次在是考虑应用服务了,对外服务我会采用成熟的开源方案LVS+Keepalived或者Nginx+Keepalived,缓存层可以考虑redis集群及Mongodb集群,中间件等其它服务可以用kafka、zookeeper,图片存储可以用fastDFS或MFS,如果数据量大、又非常多,那么可采用hadoop这一套方案。后端数据库可采用 “主从+MHA”。这样一套环境下来是绝对满足高可用、高并发的架构。

假如有人反应,调取后端接口时特别慢,你会如何排查

问清楚反应的人哪个服务应用或者页面调取哪个接口慢,叫他把页面或相关的URL发给你,首先,最直观的分析就是用浏览器按F12,看下是哪一块的内容过慢(DNS解析、网络加载、大图片、还是某个文件内容等),如果有,就对症下药去解决(图片慢就优化图片、网络慢就查看内网情况等)。其次,看后端服务的日志,其实大多数的问题看相关日志是最有效分析,最好用tail -f 跟踪一下日志,当然你也要点击测试来访问接口日志才会打出来。最后,排除sql,,找到sql去mysql执行一下,看看时间是否很久,如果很久,就要优化SQL问题了,expain一下SQL看看索引情况啥的,针对性优化。数据量太大的能分表就分表,能分库就分库。如果SQL没啥问题,那可能就是写的逻辑代码的问题了,一行行审代码,找到耗时的地方改造,优化逻

mysql数据库用的是主从读写分离,主库写,从库读,假如从库无法读取了、或者从库读取特别慢,你会如何解决

笔者回答:这个问题笔者觉得回答的不太好,对mysql比较在行的朋友希望能给点建议。以解决问题为前提条件,先添加从库数量,临时把问题给解决,然后抓取slow log ,分析sql语句,该优化就优化处理。慢要不就是硬件跟不上,需要升级;要不就是软件需要调试优化,等问题解决在细化。

你会怎么统计当前访问的IP,并排序?

笔者回答:统计用户的访问IP,用awk结合uniq、sort过滤access.log日志就能统计并排序好。一般这么回答就够了,当然你还可以说出其它方式来统计,这都是你的加分项。

redis用在了哪些环境

java、php环境用到了redis,主要缓存有登录用户信息数据、设备详情数据、会员签到数据等

Redis 原理?有哪几种持久化存储?集群怎么做的

MySQL主从怎么做的?原理?生产环境用什么?备份策略是咋样的?

posted @ 2020-04-04 15:05  张贺贺呀  阅读(364)  评论(0编辑  收藏  举报