目录
1.运维工作人员每日工作流程
2.linux非正常关机后如何处理可以尽量避免数据的丢失?
3.远程连接不到服务器的原因可能有哪些
4.cpu负载过高怎么处理
5.如果不小心删除了一个系统命令,在不影响其他程序运行的前提下,如何进行恢复
6.网站打开速度慢的原因以及解决办法?
7.服务器开不了机怎么解决?
8.9Linux系统中病毒怎么解决
9.发现一个病毒文件你删了他又自动创建怎么解决
10.有哪些方面的因素会导致网站网站访问慢?
11.什么叫 CC 攻击?什么叫 DDOS 攻击?
12.怎么判定两台主机是完好的可以正常通信的,除了ping
13.使用类似lrzsz等传输文件失败的原因是什么
14.有个客户说访问不到你们的网站,但是你们自己测试内网和外网访问都没问题。你会怎么排查并解决客户的问题?
15.在 linux服务器上,不管是用 rz-y命令还是 tftp工具上传,我把本地的一个文件上传到服务器完成后, 服务器上还是什么都没有,这有可能是什么问题?
16.怎么查看两台服务器之间的网络是不是正常的,服务器是禁 ping的?
17.给你一套环境,你会如何设计高可用、高并发的架构?
18.现在给你三百台服务器,你怎么对他们进行管理?
19.文件删了磁盘空间没释放
20.什么情况下,CPU的利用率很低但负载很高,如何排查此类问题?
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
22.针对网站访问慢,怎么去排查?
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
24.Ceph存储服务常见故障
1.运维工作人员每日工作流程
初中级运维的日常涉及工作:
1) 评估产品需求及发展需求,设计网站架构。
2) 选择IDC公司、云产品,CDN等产品。
3) 采购服务器、安装系统、配置服务、服务器IDC上架。
4) 调试网络、优化系统及服务。
5) 上线代码、配合研发搭建环境、调试、测试代码。
6) 监控硬件、软件及各种业务应用。
7) 配置收集日志,根据日志信息报警及优化系统及服务
8) 解决日常问题,如硬件(服务器、交换机、硬件、网络等)、软件(网络服务)、各类业务服务故障。
9) 编写自动化脚本(Shell、Python),自动化部署服务高级运维涉及的工作:
1) 监控带宽、流量、并发、业务接口等关键资源及访问信息的变化趋势。
2) 根据相应趋势变化不断优化网站架构。
3) 设计各类解决方案,解决公司业务发展中的遇到的网站瓶颈。
4) 编写各种自动化脚本(Shell、Python),自动化部署优化服务。
5) 开发自动化部署和管理平台(CMDB),实现平台化运维。
6) 开发运维管理平台、及运维工具产品,提升服务效率。
7) 制定运维流程、规范、制度,并有序推进。
8) 研究先进运维理念、模式,确保业务持续稳定、有序。
2.linux非正常关机后如何处理可以尽量避免数据的丢失?
linux 非正常关机引起的磁盘文件损坏
磁盘的连接线又松了,引起机器黑屏,只好强制按重启按钮,启动后就报上面的错误
输入root密码进去后,什么都干不了,执行命令没有反应(当然了,因为文件系统是在只读模式下了)
Google了一下,找到了解决办法:执行 fsck一路按Y
完事后重启机器,OK,正常了!
另:
功能说明:检查文件系统并尝试修复错误。
语 法:fsck [-aANPrRsTV][-t <文件系统类型>][文件系统...]
补充说明:当文件系统发生错误四化,可用fsck指令尝试加以修复。
参 数:
-a 自动修复文件系统,不询问任何问题。
-A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统。
-N 不执行指令,仅列出实际执行会进行的动作。
-P 当搭配”-A”参数使用时,则会同时检查所有的文件系统。
-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。-R 当搭配”-A”参数使用时,则会略过/目录的文件系统不予检查。
-s 依序执行检查作业,而非同时执行。
-t<文件系统类型> 指定要检查的文件系统类型。
-T 执行fsck指令时,不显示标题信息。
-V 显示指令执行过程。
注意 :
此指令可与 /etc/fstab 相互参考操作来加以了解。
运行fsck命令后产生的文件有什么用?
当执行fsck命令时,fsck命令如果发现存在孤立的文件或目录,这些孤立的文件或目录对于系
统管理员或用户来说,无法访问到它,因为它与它的上级目录失去了关联,如果用户允许fsck重新把它们找回来的话,fsck命令就会把这些孤立的文件或目录放在文件系统的/lost+found目录下,并用各自的i-node号来命名,以便用户查找自己需要的文件。Lost+found目录通过它的英文含义我们都可以知道,它是一个失物认领处。
因此当某个用户发现自己丢失了某个文件,可以在执行fsck之后到/lost+found目录下去查
找,这时通过文件名已无法辨认出文件的作用,只能用fifile之类的命令来确定文件的类型,如果是数据文件,可以用more或vi命令来查看,如果是二进制文件,可以用dbx命令来调试或者试着执行它(注意它可能是一个具有破坏性的程序),知道文件或目录的作用之后,可以对其进行改名。
如果用户不允许fsck把这些孤立的文件或目录找回来,那么fsck命令就会破坏这些文件或目
录,彻底丢失这些文件或目录,用户或系统管理员永远也无法找回它们
3.远程连接不到服务器的原因可能有哪些
1,安全组未开放指定端口
2,服务器开启了防火墙
3,指定端口未处于工作监听状态(即被服务占用)
4,指定端口处于工作监听状态,但绑定了指定ip地址(bindIp)
4.cpu负载过高怎么处理
1、用top查看具体是那个程序占用cpu资源。
2、确认程序负载过高是否正常(是正常并发量增加还是给人攻击)。
3、正常的访问并发增加可加服务器或限制并发量。给人攻击就禁ip。
4、查看web是不是给人植入修改代码,有的话升级版本。
5、用MD5效验确认top命令有没有给人修改过代码。确认top的输出结果是否正确。
5.如果不小心删除了一个系统命令,在不影响其他程序运行的前提下,如何进行恢复
利用yum provides找出产生该程序文件的软件包
再利用yum reinstall重新安装即可
6.网站打开速度慢的原因以及解决办法?
服务器带宽问题,大图片,数据库,代码
解决办法:
查看流量(Zabbix,ifconfifig,sar,ping延迟… …)
系统负载(Zabbix,uptime,sar,top,ps,free查看CPU和内存)
日志(数据库日志-慢查询日志、web服务器日志、ELK)
DNS解析;ss端口状态、并发量;本机时间(时间错误会导致服务器故障)
浏览器F12(开发者工具)
7.服务器开不了机怎么解决?
A,造成服务器故障的原因可能有一下几点:
1)服务器电源有问题(断电,电源松动,认为原因)
2)服务器系统文件丢失,硬件问题,散热不良造成蓝屏和死机
3)服务器网络参数配置错误,物理链路原因
B,排查服务器故障的处理步骤如下:
1)先看服务器的电源指示灯是否亮,如果电源灯不亮,先检查并确认电源没问题,试着按开机键是否能点亮服务器,如果不能点亮,和数据确认后先更换备用服务器以便快速恢复业务
2)如果服务器电源灯亮,接上显示器和键盘,如果服务器系统有异常,不能登录系统,先和数据确认,是否指定能重启服务器或是更换备用服务器,以便快速恢复业务
3)如果正确输入用户名和密码情况下登录系统,查看网卡指示灯是否正常,并用ifconfifig命令查看网卡接口状态.用ping对ip测试网络是否连通
4)如果ping不通,先和数据人员确认并检查网卡配置文件参数是否配置正确,是否正确配置网关,用 ifdown;ifup 网卡名"命令重启单个网卡,网卡接口(指示灯)状态正常后,再用ping命令测试"
5)还ping不通,即使排查并确保本地尾纤,模块等物理设备接入正常,收发光在规定范围内,和数据人 员确认是否可以重启服务器,并确认数据方没有网络配置和数据方面的变化
6)能ping通告知数据人员,并让数据人员帮忙确认链路是否正常,有没有丢包现象等,没有丢包就OK, 有就继续排查尾纤,模块等,直到链路正常没有丢包,数据人员能及时的从远程登录服务器做数据配置,快速恢复业务为OK
7)如果不能接入服务器,与数据确认是否可以重启.
8.9Linux系统中病毒怎么解决
1)最简单有效的方法就是重装系统
2)要查的话就是找到病毒文件然后删除中毒之后一般机器cpu、内存使用率会比较高,机器向外发包等异常情况,排查方法简单介绍下,top 命令找到cpu使用率最高的进程,一般病毒文件命名都比较乱,可以用 ps aux 找到病毒文件位置,rm -f 命令删除病毒文件,检查计划任务、开机启动项和病毒文件目录有无其他可以文件等
3)由于即使删除病毒文件不排除有潜伏病毒,所以最好是把机器备份数据之后重装一下
9.发现一个病毒文件你删了他又自动创建怎么解决
公司的内网某台linux服务器流量莫名其妙的剧增,用iftop查看有连接外网的情况针对这种情况一般 重点查看netstat连接的外网ip和端口。用lsof -p pid可以查看到具体是那些进程,哪些文件,经 查勘发现/root下有相关的配置conf.n hhe两个可疑文件,rm -rf后不到一分钟就自动生成了,由此推断是某个母进程产生的这些文件。所以找到母进程就是找到罪魁祸首
查杀病毒最好断掉外网访问,还好是内网服务器,可以通过内网访问
断了内网,病毒就失去外联的能力,杀掉它就容易的多,怎么找到呢,找了半天也没有看到蛛丝马迹,没办法只有ps axu一个个排查,方法是查看可以的用户和和系统相似而又不是的冒牌货,果然,看到了如下进程可疑,看不到图片就是/usr/bin/.sshd,于是我杀掉所有.sshd相关的进程,然后直接删掉.sshd这个可执行文件,然后才删掉了文章开头提到的自动复活的文件
总结一下,遇到这种问题,如果不是太严重,尽量不要重装系统
一般就是先断外网,然后利用iftop,ps,netstat,chattr,lsof,pstree这些工具顺藤摸瓜一般都能找到元凶。但是如果遇到诸如此类的问题/boot/efifi/EFI/redhat/grub.efifi:
Heuristics.Broken.Executable FOUND,个人觉得就要重装系统了
10.有哪些方面的因素会导致网站网站访问慢?
1、服务器出口带宽不够用
本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
2、服务器负载过大,导致响应不过来
可以从两个方面入手分析:
分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
3、数据库瓶颈
如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、网站开发代码没有优化好例如 SQL 语句没有优化,导致数据库读写相当耗时。
11.什么叫 CC 攻击?什么叫 DDOS 攻击?
CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。
DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。
攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。
怎么预防 CC 攻击和 DDOS 攻击?
防 CC、DDOS 攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。
流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。
12.怎么判定两台主机是完好的可以正常通信的,除了ping
在两台主机分别部署相同的服务,分别访问对方的服务端口
tracert 用来追踪从本机到目的地的地址所经过的路由
netstat 用来查看最近活动的网络(也就是你最近访问了哪些网站)
ipconfifig/all 用来查看本机ip地址(加上/all就是详细信息)
13.使用类似lrzsz等传输文件失败的原因是什么
1)服务器的磁盘存储空间已满
2)文件的权限不正确
3)文件过大
4)内存不足
5)文件的md5值发生变化
14.有个客户说访问不到你们的网站,但是你们自己测试内网和外网访问都没问题。你会怎么排查并解决客户的问题?
我们自己测了都没问题,只是这个客户访问有问题,那肯定是要先联系到这个客户,能远程最好,问一
下客户的网络是不是正常的,访问其它的网站有没有问题(比如京东、百度什么的)。
如果访问其它网站有问题,那叫客户解决本身网络问题。如果访问其它网站都没问题,用ping和
nslookup解析一下我们的网站是不是正常的,让客户用 IP 来访问我们的网站是否可行,如果 IP 访问
没问题,那就是客户的 DNS 服务器有问题或者 DNS 服务器解析不到我们的网站。还有一种可能就
是跨运营商访问的问题,比如我们的服务器用的是北方联通、而客户用的是南方移动,就也有可能突
然在某个时间段访问不到,这种情况在庞大的中国网 络环境中经常发生(一般是靠 CDN 解决)。
还有可能就是我们的网站没有 SSL 证书,在公网是使用的是 http协议,这种情况有可能就是没有用
https协议网站被运营商劫持了。
15.在 linux服务器上,不管是用 rz-y命令还是 tftp工具上传,我把本地的一个文件上传到服务器完成后, 服务器上还是什么都没有,这有可能是什么问题?
根据这种现象有可能是:服务器磁盘满了;文件格式破坏了;或者你用的是普通用户上传,正
好上传的目录没有权限;还有可能就是你上传的文件大小超出了该目录空间的范围
16.怎么查看两台服务器之间的网络是不是正常的,服务器是禁 ping的?
不能用 ping,那可以用 telnet对方服务器的端口、或者互相访问对方打开的服务
17.给你一套环境,你会如何设计高可用、高并发的架构?
如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的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”。这样一套环境下来是绝对满足高可用、高并发的架构。
18.现在给你三百台服务器,你怎么对他们进行管理?
管理3百台服务器的方式:
1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。
3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息 记录。
19.文件删了磁盘空间没释放
问题:
某天发现某台机器df-h已用磁盘空间为90G,而du-sh/*显示所有使用空间加起来才30G。
原因:
可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题
解决:
1)最简单重启系统或者重启相关服务。
2)干掉进程
lsof | grep deleted # 查看delete进程
kill -9 pid # 杀掉进程
从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文
件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:echo > /proc/25575 /fd/33
3)删除正在写的文件一般用cat /dev/null >file
20.什么情况下,CPU的利用率很低但负载很高,如何排查此类问题?
原因总结
产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。
什么场景会造成CPU低而负载确很高?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又必须等待队列前的进程处理完成的进程个数。具体来说,也就是如下两种情况:
等待被授权予CPU运行权限的进程
等待磁盘I/O完成的进程
cpu低而负载高也就是说等待磁盘I/O完成的进程过多,就会导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去执行别的任务或空闲,具体场景有如下几种。
场景一:磁盘读写请求过多就会导致大量I/O等待
上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。
场景二:MySQL中存在没有索引的语句或存在死锁等情况
我们都知道MySQL的数据是存储在硬盘中,如果需要进行sql查询,需要先把数据从磁盘加载到内存中。当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。具体解决方法可以在MySQL中运行show full processlist命令查看线程等待情况,把其中的语句拿出来进行优化。
场景三:外接硬盘故障,常见有挂了NFS,但是NFS server故障
比如我们的系统挂载了外接硬盘如NFS共享存储,经常会有大量的读写请求去访问NFS存储的文件,如果这个时候NFS Server故障,那么就会导致进程读写请求一直获取不到资源,从而进程一直是不可中断状态,造成负载很高。
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
22.针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
初中级运维的日常涉及工作:
1) 评估产品需求及发展需求,设计网站架构。
2) 选择IDC公司、云产品,CDN等产品。
3) 采购服务器、安装系统、配置服务、服务器IDC上架。
4) 调试网络、优化系统及服务。
5) 上线代码、配合研发搭建环境、调试、测试代码。
6) 监控硬件、软件及各种业务应用。
7) 配置收集日志,根据日志信息报警及优化系统及服务
8) 解决日常问题,如硬件(服务器、交换机、硬件、网络等)、软件(网络服务)、各类业务服务故障。
9) 编写自动化脚本(Shell、Python),自动化部署服务高级运维涉及的工作:
1) 监控带宽、流量、并发、业务接口等关键资源及访问信息的变化趋势。
2) 根据相应趋势变化不断优化网站架构。
3) 设计各类解决方案,解决公司业务发展中的遇到的网站瓶颈。
4) 编写各种自动化脚本(Shell、Python),自动化部署优化服务。
5) 开发自动化部署和管理平台(CMDB),实现平台化运维。
6) 开发运维管理平台、及运维工具产品,提升服务效率。
7) 制定运维流程、规范、制度,并有序推进。
8) 研究先进运维理念、模式,确保业务持续稳定、有序。
linux 非正常关机引起的磁盘文件损坏
磁盘的连接线又松了,引起机器黑屏,只好强制按重启按钮,启动后就报上面的错误
输入root密码进去后,什么都干不了,执行命令没有反应(当然了,因为文件系统是在只读模式下了)
Google了一下,找到了解决办法:执行 fsck一路按Y
完事后重启机器,OK,正常了!
另:
功能说明:检查文件系统并尝试修复错误。
语 法:fsck [-aANPrRsTV][-t <文件系统类型>][文件系统...]
补充说明:当文件系统发生错误四化,可用fsck指令尝试加以修复。
参 数:
-a 自动修复文件系统,不询问任何问题。
-A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统。
-N 不执行指令,仅列出实际执行会进行的动作。
-P 当搭配”-A”参数使用时,则会同时检查所有的文件系统。
-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。-R 当搭配”-A”参数使用时,则会略过/目录的文件系统不予检查。
-s 依序执行检查作业,而非同时执行。
-t<文件系统类型> 指定要检查的文件系统类型。
-T 执行fsck指令时,不显示标题信息。
-V 显示指令执行过程。
注意 :
此指令可与 /etc/fstab 相互参考操作来加以了解。
运行fsck命令后产生的文件有什么用?
当执行fsck命令时,fsck命令如果发现存在孤立的文件或目录,这些孤立的文件或目录对于系
统管理员或用户来说,无法访问到它,因为它与它的上级目录失去了关联,如果用户允许fsck重新把它们找回来的话,fsck命令就会把这些孤立的文件或目录放在文件系统的/lost+found目录下,并用各自的i-node号来命名,以便用户查找自己需要的文件。Lost+found目录通过它的英文含义我们都可以知道,它是一个失物认领处。
因此当某个用户发现自己丢失了某个文件,可以在执行fsck之后到/lost+found目录下去查
找,这时通过文件名已无法辨认出文件的作用,只能用fifile之类的命令来确定文件的类型,如果是数据文件,可以用more或vi命令来查看,如果是二进制文件,可以用dbx命令来调试或者试着执行它(注意它可能是一个具有破坏性的程序),知道文件或目录的作用之后,可以对其进行改名。
如果用户不允许fsck把这些孤立的文件或目录找回来,那么fsck命令就会破坏这些文件或目
录,彻底丢失这些文件或目录,用户或系统管理员永远也无法找回它们
3.远程连接不到服务器的原因可能有哪些
1,安全组未开放指定端口
2,服务器开启了防火墙
3,指定端口未处于工作监听状态(即被服务占用)
4,指定端口处于工作监听状态,但绑定了指定ip地址(bindIp)
4.cpu负载过高怎么处理
1、用top查看具体是那个程序占用cpu资源。
2、确认程序负载过高是否正常(是正常并发量增加还是给人攻击)。
3、正常的访问并发增加可加服务器或限制并发量。给人攻击就禁ip。
4、查看web是不是给人植入修改代码,有的话升级版本。
5、用MD5效验确认top命令有没有给人修改过代码。确认top的输出结果是否正确。
5.如果不小心删除了一个系统命令,在不影响其他程序运行的前提下,如何进行恢复
利用yum provides找出产生该程序文件的软件包
再利用yum reinstall重新安装即可
6.网站打开速度慢的原因以及解决办法?
服务器带宽问题,大图片,数据库,代码
解决办法:
查看流量(Zabbix,ifconfifig,sar,ping延迟… …)
系统负载(Zabbix,uptime,sar,top,ps,free查看CPU和内存)
日志(数据库日志-慢查询日志、web服务器日志、ELK)
DNS解析;ss端口状态、并发量;本机时间(时间错误会导致服务器故障)
浏览器F12(开发者工具)
7.服务器开不了机怎么解决?
A,造成服务器故障的原因可能有一下几点:
1)服务器电源有问题(断电,电源松动,认为原因)
2)服务器系统文件丢失,硬件问题,散热不良造成蓝屏和死机
3)服务器网络参数配置错误,物理链路原因
B,排查服务器故障的处理步骤如下:
1)先看服务器的电源指示灯是否亮,如果电源灯不亮,先检查并确认电源没问题,试着按开机键是否能点亮服务器,如果不能点亮,和数据确认后先更换备用服务器以便快速恢复业务
2)如果服务器电源灯亮,接上显示器和键盘,如果服务器系统有异常,不能登录系统,先和数据确认,是否指定能重启服务器或是更换备用服务器,以便快速恢复业务
3)如果正确输入用户名和密码情况下登录系统,查看网卡指示灯是否正常,并用ifconfifig命令查看网卡接口状态.用ping对ip测试网络是否连通
4)如果ping不通,先和数据人员确认并检查网卡配置文件参数是否配置正确,是否正确配置网关,用 ifdown;ifup 网卡名"命令重启单个网卡,网卡接口(指示灯)状态正常后,再用ping命令测试"
5)还ping不通,即使排查并确保本地尾纤,模块等物理设备接入正常,收发光在规定范围内,和数据人 员确认是否可以重启服务器,并确认数据方没有网络配置和数据方面的变化
6)能ping通告知数据人员,并让数据人员帮忙确认链路是否正常,有没有丢包现象等,没有丢包就OK, 有就继续排查尾纤,模块等,直到链路正常没有丢包,数据人员能及时的从远程登录服务器做数据配置,快速恢复业务为OK
7)如果不能接入服务器,与数据确认是否可以重启.
8.9Linux系统中病毒怎么解决
1)最简单有效的方法就是重装系统
2)要查的话就是找到病毒文件然后删除中毒之后一般机器cpu、内存使用率会比较高,机器向外发包等异常情况,排查方法简单介绍下,top 命令找到cpu使用率最高的进程,一般病毒文件命名都比较乱,可以用 ps aux 找到病毒文件位置,rm -f 命令删除病毒文件,检查计划任务、开机启动项和病毒文件目录有无其他可以文件等
3)由于即使删除病毒文件不排除有潜伏病毒,所以最好是把机器备份数据之后重装一下
9.发现一个病毒文件你删了他又自动创建怎么解决
公司的内网某台linux服务器流量莫名其妙的剧增,用iftop查看有连接外网的情况针对这种情况一般 重点查看netstat连接的外网ip和端口。用lsof -p pid可以查看到具体是那些进程,哪些文件,经 查勘发现/root下有相关的配置conf.n hhe两个可疑文件,rm -rf后不到一分钟就自动生成了,由此推断是某个母进程产生的这些文件。所以找到母进程就是找到罪魁祸首
查杀病毒最好断掉外网访问,还好是内网服务器,可以通过内网访问
断了内网,病毒就失去外联的能力,杀掉它就容易的多,怎么找到呢,找了半天也没有看到蛛丝马迹,没办法只有ps axu一个个排查,方法是查看可以的用户和和系统相似而又不是的冒牌货,果然,看到了如下进程可疑,看不到图片就是/usr/bin/.sshd,于是我杀掉所有.sshd相关的进程,然后直接删掉.sshd这个可执行文件,然后才删掉了文章开头提到的自动复活的文件
总结一下,遇到这种问题,如果不是太严重,尽量不要重装系统
一般就是先断外网,然后利用iftop,ps,netstat,chattr,lsof,pstree这些工具顺藤摸瓜一般都能找到元凶。但是如果遇到诸如此类的问题/boot/efifi/EFI/redhat/grub.efifi:
Heuristics.Broken.Executable FOUND,个人觉得就要重装系统了
10.有哪些方面的因素会导致网站网站访问慢?
1、服务器出口带宽不够用
本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
2、服务器负载过大,导致响应不过来
可以从两个方面入手分析:
分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
3、数据库瓶颈
如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、网站开发代码没有优化好例如 SQL 语句没有优化,导致数据库读写相当耗时。
11.什么叫 CC 攻击?什么叫 DDOS 攻击?
CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。
DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。
攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。
怎么预防 CC 攻击和 DDOS 攻击?
防 CC、DDOS 攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。
流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。
12.怎么判定两台主机是完好的可以正常通信的,除了ping
在两台主机分别部署相同的服务,分别访问对方的服务端口
tracert 用来追踪从本机到目的地的地址所经过的路由
netstat 用来查看最近活动的网络(也就是你最近访问了哪些网站)
ipconfifig/all 用来查看本机ip地址(加上/all就是详细信息)
13.使用类似lrzsz等传输文件失败的原因是什么
1)服务器的磁盘存储空间已满
2)文件的权限不正确
3)文件过大
4)内存不足
5)文件的md5值发生变化
14.有个客户说访问不到你们的网站,但是你们自己测试内网和外网访问都没问题。你会怎么排查并解决客户的问题?
我们自己测了都没问题,只是这个客户访问有问题,那肯定是要先联系到这个客户,能远程最好,问一
下客户的网络是不是正常的,访问其它的网站有没有问题(比如京东、百度什么的)。
如果访问其它网站有问题,那叫客户解决本身网络问题。如果访问其它网站都没问题,用ping和
nslookup解析一下我们的网站是不是正常的,让客户用 IP 来访问我们的网站是否可行,如果 IP 访问
没问题,那就是客户的 DNS 服务器有问题或者 DNS 服务器解析不到我们的网站。还有一种可能就
是跨运营商访问的问题,比如我们的服务器用的是北方联通、而客户用的是南方移动,就也有可能突
然在某个时间段访问不到,这种情况在庞大的中国网 络环境中经常发生(一般是靠 CDN 解决)。
还有可能就是我们的网站没有 SSL 证书,在公网是使用的是 http协议,这种情况有可能就是没有用
https协议网站被运营商劫持了。
15.在 linux服务器上,不管是用 rz-y命令还是 tftp工具上传,我把本地的一个文件上传到服务器完成后, 服务器上还是什么都没有,这有可能是什么问题?
根据这种现象有可能是:服务器磁盘满了;文件格式破坏了;或者你用的是普通用户上传,正
好上传的目录没有权限;还有可能就是你上传的文件大小超出了该目录空间的范围
16.怎么查看两台服务器之间的网络是不是正常的,服务器是禁 ping的?
不能用 ping,那可以用 telnet对方服务器的端口、或者互相访问对方打开的服务
17.给你一套环境,你会如何设计高可用、高并发的架构?
如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的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”。这样一套环境下来是绝对满足高可用、高并发的架构。
18.现在给你三百台服务器,你怎么对他们进行管理?
管理3百台服务器的方式:
1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。
3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息 记录。
19.文件删了磁盘空间没释放
问题:
某天发现某台机器df-h已用磁盘空间为90G,而du-sh/*显示所有使用空间加起来才30G。
原因:
可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题
解决:
1)最简单重启系统或者重启相关服务。
2)干掉进程
lsof | grep deleted # 查看delete进程
kill -9 pid # 杀掉进程
从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文
件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:echo > /proc/25575 /fd/33
3)删除正在写的文件一般用cat /dev/null >file
20.什么情况下,CPU的利用率很低但负载很高,如何排查此类问题?
原因总结
产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。
什么场景会造成CPU低而负载确很高?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又必须等待队列前的进程处理完成的进程个数。具体来说,也就是如下两种情况:
等待被授权予CPU运行权限的进程
等待磁盘I/O完成的进程
cpu低而负载高也就是说等待磁盘I/O完成的进程过多,就会导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去执行别的任务或空闲,具体场景有如下几种。
场景一:磁盘读写请求过多就会导致大量I/O等待
上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。
场景二:MySQL中存在没有索引的语句或存在死锁等情况
我们都知道MySQL的数据是存储在硬盘中,如果需要进行sql查询,需要先把数据从磁盘加载到内存中。当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。具体解决方法可以在MySQL中运行show full processlist命令查看线程等待情况,把其中的语句拿出来进行优化。
场景三:外接硬盘故障,常见有挂了NFS,但是NFS server故障
比如我们的系统挂载了外接硬盘如NFS共享存储,经常会有大量的读写请求去访问NFS存储的文件,如果这个时候NFS Server故障,那么就会导致进程读写请求一直获取不到资源,从而进程一直是不可中断状态,造成负载很高。
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
22.针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
1,安全组未开放指定端口
2,服务器开启了防火墙
3,指定端口未处于工作监听状态(即被服务占用)
4,指定端口处于工作监听状态,但绑定了指定ip地址(bindIp)
1、用top查看具体是那个程序占用cpu资源。
2、确认程序负载过高是否正常(是正常并发量增加还是给人攻击)。
3、正常的访问并发增加可加服务器或限制并发量。给人攻击就禁ip。
4、查看web是不是给人植入修改代码,有的话升级版本。
5、用MD5效验确认top命令有没有给人修改过代码。确认top的输出结果是否正确。
5.如果不小心删除了一个系统命令,在不影响其他程序运行的前提下,如何进行恢复
利用yum provides找出产生该程序文件的软件包
再利用yum reinstall重新安装即可
6.网站打开速度慢的原因以及解决办法?
服务器带宽问题,大图片,数据库,代码
解决办法:
查看流量(Zabbix,ifconfifig,sar,ping延迟… …)
系统负载(Zabbix,uptime,sar,top,ps,free查看CPU和内存)
日志(数据库日志-慢查询日志、web服务器日志、ELK)
DNS解析;ss端口状态、并发量;本机时间(时间错误会导致服务器故障)
浏览器F12(开发者工具)
7.服务器开不了机怎么解决?
A,造成服务器故障的原因可能有一下几点:
1)服务器电源有问题(断电,电源松动,认为原因)
2)服务器系统文件丢失,硬件问题,散热不良造成蓝屏和死机
3)服务器网络参数配置错误,物理链路原因
B,排查服务器故障的处理步骤如下:
1)先看服务器的电源指示灯是否亮,如果电源灯不亮,先检查并确认电源没问题,试着按开机键是否能点亮服务器,如果不能点亮,和数据确认后先更换备用服务器以便快速恢复业务
2)如果服务器电源灯亮,接上显示器和键盘,如果服务器系统有异常,不能登录系统,先和数据确认,是否指定能重启服务器或是更换备用服务器,以便快速恢复业务
3)如果正确输入用户名和密码情况下登录系统,查看网卡指示灯是否正常,并用ifconfifig命令查看网卡接口状态.用ping对ip测试网络是否连通
4)如果ping不通,先和数据人员确认并检查网卡配置文件参数是否配置正确,是否正确配置网关,用 ifdown;ifup 网卡名"命令重启单个网卡,网卡接口(指示灯)状态正常后,再用ping命令测试"
5)还ping不通,即使排查并确保本地尾纤,模块等物理设备接入正常,收发光在规定范围内,和数据人 员确认是否可以重启服务器,并确认数据方没有网络配置和数据方面的变化
6)能ping通告知数据人员,并让数据人员帮忙确认链路是否正常,有没有丢包现象等,没有丢包就OK, 有就继续排查尾纤,模块等,直到链路正常没有丢包,数据人员能及时的从远程登录服务器做数据配置,快速恢复业务为OK
7)如果不能接入服务器,与数据确认是否可以重启.
8.9Linux系统中病毒怎么解决
1)最简单有效的方法就是重装系统
2)要查的话就是找到病毒文件然后删除中毒之后一般机器cpu、内存使用率会比较高,机器向外发包等异常情况,排查方法简单介绍下,top 命令找到cpu使用率最高的进程,一般病毒文件命名都比较乱,可以用 ps aux 找到病毒文件位置,rm -f 命令删除病毒文件,检查计划任务、开机启动项和病毒文件目录有无其他可以文件等
3)由于即使删除病毒文件不排除有潜伏病毒,所以最好是把机器备份数据之后重装一下
9.发现一个病毒文件你删了他又自动创建怎么解决
公司的内网某台linux服务器流量莫名其妙的剧增,用iftop查看有连接外网的情况针对这种情况一般 重点查看netstat连接的外网ip和端口。用lsof -p pid可以查看到具体是那些进程,哪些文件,经 查勘发现/root下有相关的配置conf.n hhe两个可疑文件,rm -rf后不到一分钟就自动生成了,由此推断是某个母进程产生的这些文件。所以找到母进程就是找到罪魁祸首
查杀病毒最好断掉外网访问,还好是内网服务器,可以通过内网访问
断了内网,病毒就失去外联的能力,杀掉它就容易的多,怎么找到呢,找了半天也没有看到蛛丝马迹,没办法只有ps axu一个个排查,方法是查看可以的用户和和系统相似而又不是的冒牌货,果然,看到了如下进程可疑,看不到图片就是/usr/bin/.sshd,于是我杀掉所有.sshd相关的进程,然后直接删掉.sshd这个可执行文件,然后才删掉了文章开头提到的自动复活的文件
总结一下,遇到这种问题,如果不是太严重,尽量不要重装系统
一般就是先断外网,然后利用iftop,ps,netstat,chattr,lsof,pstree这些工具顺藤摸瓜一般都能找到元凶。但是如果遇到诸如此类的问题/boot/efifi/EFI/redhat/grub.efifi:
Heuristics.Broken.Executable FOUND,个人觉得就要重装系统了
10.有哪些方面的因素会导致网站网站访问慢?
1、服务器出口带宽不够用
本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
2、服务器负载过大,导致响应不过来
可以从两个方面入手分析:
分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
3、数据库瓶颈
如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、网站开发代码没有优化好例如 SQL 语句没有优化,导致数据库读写相当耗时。
11.什么叫 CC 攻击?什么叫 DDOS 攻击?
CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。
DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。
攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。
怎么预防 CC 攻击和 DDOS 攻击?
防 CC、DDOS 攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。
流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。
12.怎么判定两台主机是完好的可以正常通信的,除了ping
在两台主机分别部署相同的服务,分别访问对方的服务端口
tracert 用来追踪从本机到目的地的地址所经过的路由
netstat 用来查看最近活动的网络(也就是你最近访问了哪些网站)
ipconfifig/all 用来查看本机ip地址(加上/all就是详细信息)
13.使用类似lrzsz等传输文件失败的原因是什么
1)服务器的磁盘存储空间已满
2)文件的权限不正确
3)文件过大
4)内存不足
5)文件的md5值发生变化
14.有个客户说访问不到你们的网站,但是你们自己测试内网和外网访问都没问题。你会怎么排查并解决客户的问题?
我们自己测了都没问题,只是这个客户访问有问题,那肯定是要先联系到这个客户,能远程最好,问一
下客户的网络是不是正常的,访问其它的网站有没有问题(比如京东、百度什么的)。
如果访问其它网站有问题,那叫客户解决本身网络问题。如果访问其它网站都没问题,用ping和
nslookup解析一下我们的网站是不是正常的,让客户用 IP 来访问我们的网站是否可行,如果 IP 访问
没问题,那就是客户的 DNS 服务器有问题或者 DNS 服务器解析不到我们的网站。还有一种可能就
是跨运营商访问的问题,比如我们的服务器用的是北方联通、而客户用的是南方移动,就也有可能突
然在某个时间段访问不到,这种情况在庞大的中国网 络环境中经常发生(一般是靠 CDN 解决)。
还有可能就是我们的网站没有 SSL 证书,在公网是使用的是 http协议,这种情况有可能就是没有用
https协议网站被运营商劫持了。
15.在 linux服务器上,不管是用 rz-y命令还是 tftp工具上传,我把本地的一个文件上传到服务器完成后, 服务器上还是什么都没有,这有可能是什么问题?
根据这种现象有可能是:服务器磁盘满了;文件格式破坏了;或者你用的是普通用户上传,正
好上传的目录没有权限;还有可能就是你上传的文件大小超出了该目录空间的范围
16.怎么查看两台服务器之间的网络是不是正常的,服务器是禁 ping的?
不能用 ping,那可以用 telnet对方服务器的端口、或者互相访问对方打开的服务
17.给你一套环境,你会如何设计高可用、高并发的架构?
如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的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”。这样一套环境下来是绝对满足高可用、高并发的架构。
18.现在给你三百台服务器,你怎么对他们进行管理?
管理3百台服务器的方式:
1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。
3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息 记录。
19.文件删了磁盘空间没释放
问题:
某天发现某台机器df-h已用磁盘空间为90G,而du-sh/*显示所有使用空间加起来才30G。
原因:
可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题
解决:
1)最简单重启系统或者重启相关服务。
2)干掉进程
lsof | grep deleted # 查看delete进程
kill -9 pid # 杀掉进程
从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文
件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:echo > /proc/25575 /fd/33
3)删除正在写的文件一般用cat /dev/null >file
20.什么情况下,CPU的利用率很低但负载很高,如何排查此类问题?
原因总结
产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。
什么场景会造成CPU低而负载确很高?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又必须等待队列前的进程处理完成的进程个数。具体来说,也就是如下两种情况:
等待被授权予CPU运行权限的进程
等待磁盘I/O完成的进程
cpu低而负载高也就是说等待磁盘I/O完成的进程过多,就会导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去执行别的任务或空闲,具体场景有如下几种。
场景一:磁盘读写请求过多就会导致大量I/O等待
上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。
场景二:MySQL中存在没有索引的语句或存在死锁等情况
我们都知道MySQL的数据是存储在硬盘中,如果需要进行sql查询,需要先把数据从磁盘加载到内存中。当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。具体解决方法可以在MySQL中运行show full processlist命令查看线程等待情况,把其中的语句拿出来进行优化。
场景三:外接硬盘故障,常见有挂了NFS,但是NFS server故障
比如我们的系统挂载了外接硬盘如NFS共享存储,经常会有大量的读写请求去访问NFS存储的文件,如果这个时候NFS Server故障,那么就会导致进程读写请求一直获取不到资源,从而进程一直是不可中断状态,造成负载很高。
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
22.针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
利用yum provides找出产生该程序文件的软件包
再利用yum reinstall重新安装即可
服务器带宽问题,大图片,数据库,代码
解决办法:
查看流量(Zabbix,ifconfifig,sar,ping延迟… …)
系统负载(Zabbix,uptime,sar,top,ps,free查看CPU和内存)
日志(数据库日志-慢查询日志、web服务器日志、ELK)
DNS解析;ss端口状态、并发量;本机时间(时间错误会导致服务器故障)
浏览器F12(开发者工具)
7.服务器开不了机怎么解决?
A,造成服务器故障的原因可能有一下几点:
1)服务器电源有问题(断电,电源松动,认为原因)
2)服务器系统文件丢失,硬件问题,散热不良造成蓝屏和死机
3)服务器网络参数配置错误,物理链路原因
B,排查服务器故障的处理步骤如下:
1)先看服务器的电源指示灯是否亮,如果电源灯不亮,先检查并确认电源没问题,试着按开机键是否能点亮服务器,如果不能点亮,和数据确认后先更换备用服务器以便快速恢复业务
2)如果服务器电源灯亮,接上显示器和键盘,如果服务器系统有异常,不能登录系统,先和数据确认,是否指定能重启服务器或是更换备用服务器,以便快速恢复业务
3)如果正确输入用户名和密码情况下登录系统,查看网卡指示灯是否正常,并用ifconfifig命令查看网卡接口状态.用ping对ip测试网络是否连通
4)如果ping不通,先和数据人员确认并检查网卡配置文件参数是否配置正确,是否正确配置网关,用 ifdown;ifup 网卡名"命令重启单个网卡,网卡接口(指示灯)状态正常后,再用ping命令测试"
5)还ping不通,即使排查并确保本地尾纤,模块等物理设备接入正常,收发光在规定范围内,和数据人 员确认是否可以重启服务器,并确认数据方没有网络配置和数据方面的变化
6)能ping通告知数据人员,并让数据人员帮忙确认链路是否正常,有没有丢包现象等,没有丢包就OK, 有就继续排查尾纤,模块等,直到链路正常没有丢包,数据人员能及时的从远程登录服务器做数据配置,快速恢复业务为OK
7)如果不能接入服务器,与数据确认是否可以重启.
8.9Linux系统中病毒怎么解决
1)最简单有效的方法就是重装系统
2)要查的话就是找到病毒文件然后删除中毒之后一般机器cpu、内存使用率会比较高,机器向外发包等异常情况,排查方法简单介绍下,top 命令找到cpu使用率最高的进程,一般病毒文件命名都比较乱,可以用 ps aux 找到病毒文件位置,rm -f 命令删除病毒文件,检查计划任务、开机启动项和病毒文件目录有无其他可以文件等
3)由于即使删除病毒文件不排除有潜伏病毒,所以最好是把机器备份数据之后重装一下
9.发现一个病毒文件你删了他又自动创建怎么解决
公司的内网某台linux服务器流量莫名其妙的剧增,用iftop查看有连接外网的情况针对这种情况一般 重点查看netstat连接的外网ip和端口。用lsof -p pid可以查看到具体是那些进程,哪些文件,经 查勘发现/root下有相关的配置conf.n hhe两个可疑文件,rm -rf后不到一分钟就自动生成了,由此推断是某个母进程产生的这些文件。所以找到母进程就是找到罪魁祸首
查杀病毒最好断掉外网访问,还好是内网服务器,可以通过内网访问
断了内网,病毒就失去外联的能力,杀掉它就容易的多,怎么找到呢,找了半天也没有看到蛛丝马迹,没办法只有ps axu一个个排查,方法是查看可以的用户和和系统相似而又不是的冒牌货,果然,看到了如下进程可疑,看不到图片就是/usr/bin/.sshd,于是我杀掉所有.sshd相关的进程,然后直接删掉.sshd这个可执行文件,然后才删掉了文章开头提到的自动复活的文件
总结一下,遇到这种问题,如果不是太严重,尽量不要重装系统
一般就是先断外网,然后利用iftop,ps,netstat,chattr,lsof,pstree这些工具顺藤摸瓜一般都能找到元凶。但是如果遇到诸如此类的问题/boot/efifi/EFI/redhat/grub.efifi:
Heuristics.Broken.Executable FOUND,个人觉得就要重装系统了
10.有哪些方面的因素会导致网站网站访问慢?
1、服务器出口带宽不够用
本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
2、服务器负载过大,导致响应不过来
可以从两个方面入手分析:
分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
3、数据库瓶颈
如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、网站开发代码没有优化好例如 SQL 语句没有优化,导致数据库读写相当耗时。
11.什么叫 CC 攻击?什么叫 DDOS 攻击?
CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。
DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。
攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。
怎么预防 CC 攻击和 DDOS 攻击?
防 CC、DDOS 攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。
流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。
12.怎么判定两台主机是完好的可以正常通信的,除了ping
在两台主机分别部署相同的服务,分别访问对方的服务端口
tracert 用来追踪从本机到目的地的地址所经过的路由
netstat 用来查看最近活动的网络(也就是你最近访问了哪些网站)
ipconfifig/all 用来查看本机ip地址(加上/all就是详细信息)
13.使用类似lrzsz等传输文件失败的原因是什么
1)服务器的磁盘存储空间已满
2)文件的权限不正确
3)文件过大
4)内存不足
5)文件的md5值发生变化
14.有个客户说访问不到你们的网站,但是你们自己测试内网和外网访问都没问题。你会怎么排查并解决客户的问题?
我们自己测了都没问题,只是这个客户访问有问题,那肯定是要先联系到这个客户,能远程最好,问一
下客户的网络是不是正常的,访问其它的网站有没有问题(比如京东、百度什么的)。
如果访问其它网站有问题,那叫客户解决本身网络问题。如果访问其它网站都没问题,用ping和
nslookup解析一下我们的网站是不是正常的,让客户用 IP 来访问我们的网站是否可行,如果 IP 访问
没问题,那就是客户的 DNS 服务器有问题或者 DNS 服务器解析不到我们的网站。还有一种可能就
是跨运营商访问的问题,比如我们的服务器用的是北方联通、而客户用的是南方移动,就也有可能突
然在某个时间段访问不到,这种情况在庞大的中国网 络环境中经常发生(一般是靠 CDN 解决)。
还有可能就是我们的网站没有 SSL 证书,在公网是使用的是 http协议,这种情况有可能就是没有用
https协议网站被运营商劫持了。
15.在 linux服务器上,不管是用 rz-y命令还是 tftp工具上传,我把本地的一个文件上传到服务器完成后, 服务器上还是什么都没有,这有可能是什么问题?
根据这种现象有可能是:服务器磁盘满了;文件格式破坏了;或者你用的是普通用户上传,正
好上传的目录没有权限;还有可能就是你上传的文件大小超出了该目录空间的范围
16.怎么查看两台服务器之间的网络是不是正常的,服务器是禁 ping的?
不能用 ping,那可以用 telnet对方服务器的端口、或者互相访问对方打开的服务
17.给你一套环境,你会如何设计高可用、高并发的架构?
如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的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”。这样一套环境下来是绝对满足高可用、高并发的架构。
18.现在给你三百台服务器,你怎么对他们进行管理?
管理3百台服务器的方式:
1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。
3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息 记录。
19.文件删了磁盘空间没释放
问题:
某天发现某台机器df-h已用磁盘空间为90G,而du-sh/*显示所有使用空间加起来才30G。
原因:
可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题
解决:
1)最简单重启系统或者重启相关服务。
2)干掉进程
lsof | grep deleted # 查看delete进程
kill -9 pid # 杀掉进程
从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文
件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:echo > /proc/25575 /fd/33
3)删除正在写的文件一般用cat /dev/null >file
20.什么情况下,CPU的利用率很低但负载很高,如何排查此类问题?
原因总结
产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。
什么场景会造成CPU低而负载确很高?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又必须等待队列前的进程处理完成的进程个数。具体来说,也就是如下两种情况:
等待被授权予CPU运行权限的进程
等待磁盘I/O完成的进程
cpu低而负载高也就是说等待磁盘I/O完成的进程过多,就会导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去执行别的任务或空闲,具体场景有如下几种。
场景一:磁盘读写请求过多就会导致大量I/O等待
上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。
场景二:MySQL中存在没有索引的语句或存在死锁等情况
我们都知道MySQL的数据是存储在硬盘中,如果需要进行sql查询,需要先把数据从磁盘加载到内存中。当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。具体解决方法可以在MySQL中运行show full processlist命令查看线程等待情况,把其中的语句拿出来进行优化。
场景三:外接硬盘故障,常见有挂了NFS,但是NFS server故障
比如我们的系统挂载了外接硬盘如NFS共享存储,经常会有大量的读写请求去访问NFS存储的文件,如果这个时候NFS Server故障,那么就会导致进程读写请求一直获取不到资源,从而进程一直是不可中断状态,造成负载很高。
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
22.针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
A,造成服务器故障的原因可能有一下几点:
1)服务器电源有问题(断电,电源松动,认为原因)
2)服务器系统文件丢失,硬件问题,散热不良造成蓝屏和死机
3)服务器网络参数配置错误,物理链路原因
B,排查服务器故障的处理步骤如下:
1)先看服务器的电源指示灯是否亮,如果电源灯不亮,先检查并确认电源没问题,试着按开机键是否能点亮服务器,如果不能点亮,和数据确认后先更换备用服务器以便快速恢复业务
2)如果服务器电源灯亮,接上显示器和键盘,如果服务器系统有异常,不能登录系统,先和数据确认,是否指定能重启服务器或是更换备用服务器,以便快速恢复业务
3)如果正确输入用户名和密码情况下登录系统,查看网卡指示灯是否正常,并用ifconfifig命令查看网卡接口状态.用ping对ip测试网络是否连通
4)如果ping不通,先和数据人员确认并检查网卡配置文件参数是否配置正确,是否正确配置网关,用 ifdown;ifup 网卡名"命令重启单个网卡,网卡接口(指示灯)状态正常后,再用ping命令测试"
5)还ping不通,即使排查并确保本地尾纤,模块等物理设备接入正常,收发光在规定范围内,和数据人 员确认是否可以重启服务器,并确认数据方没有网络配置和数据方面的变化
6)能ping通告知数据人员,并让数据人员帮忙确认链路是否正常,有没有丢包现象等,没有丢包就OK, 有就继续排查尾纤,模块等,直到链路正常没有丢包,数据人员能及时的从远程登录服务器做数据配置,快速恢复业务为OK
7)如果不能接入服务器,与数据确认是否可以重启.
1)最简单有效的方法就是重装系统
2)要查的话就是找到病毒文件然后删除中毒之后一般机器cpu、内存使用率会比较高,机器向外发包等异常情况,排查方法简单介绍下,top 命令找到cpu使用率最高的进程,一般病毒文件命名都比较乱,可以用 ps aux 找到病毒文件位置,rm -f 命令删除病毒文件,检查计划任务、开机启动项和病毒文件目录有无其他可以文件等
3)由于即使删除病毒文件不排除有潜伏病毒,所以最好是把机器备份数据之后重装一下
9.发现一个病毒文件你删了他又自动创建怎么解决
公司的内网某台linux服务器流量莫名其妙的剧增,用iftop查看有连接外网的情况针对这种情况一般 重点查看netstat连接的外网ip和端口。用lsof -p pid可以查看到具体是那些进程,哪些文件,经 查勘发现/root下有相关的配置conf.n hhe两个可疑文件,rm -rf后不到一分钟就自动生成了,由此推断是某个母进程产生的这些文件。所以找到母进程就是找到罪魁祸首
查杀病毒最好断掉外网访问,还好是内网服务器,可以通过内网访问
断了内网,病毒就失去外联的能力,杀掉它就容易的多,怎么找到呢,找了半天也没有看到蛛丝马迹,没办法只有ps axu一个个排查,方法是查看可以的用户和和系统相似而又不是的冒牌货,果然,看到了如下进程可疑,看不到图片就是/usr/bin/.sshd,于是我杀掉所有.sshd相关的进程,然后直接删掉.sshd这个可执行文件,然后才删掉了文章开头提到的自动复活的文件
总结一下,遇到这种问题,如果不是太严重,尽量不要重装系统
一般就是先断外网,然后利用iftop,ps,netstat,chattr,lsof,pstree这些工具顺藤摸瓜一般都能找到元凶。但是如果遇到诸如此类的问题/boot/efifi/EFI/redhat/grub.efifi:
Heuristics.Broken.Executable FOUND,个人觉得就要重装系统了
10.有哪些方面的因素会导致网站网站访问慢?
1、服务器出口带宽不够用
本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
2、服务器负载过大,导致响应不过来
可以从两个方面入手分析:
分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
3、数据库瓶颈
如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、网站开发代码没有优化好例如 SQL 语句没有优化,导致数据库读写相当耗时。
11.什么叫 CC 攻击?什么叫 DDOS 攻击?
CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。
DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。
攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。
怎么预防 CC 攻击和 DDOS 攻击?
防 CC、DDOS 攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。
流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。
12.怎么判定两台主机是完好的可以正常通信的,除了ping
在两台主机分别部署相同的服务,分别访问对方的服务端口
tracert 用来追踪从本机到目的地的地址所经过的路由
netstat 用来查看最近活动的网络(也就是你最近访问了哪些网站)
ipconfifig/all 用来查看本机ip地址(加上/all就是详细信息)
13.使用类似lrzsz等传输文件失败的原因是什么
1)服务器的磁盘存储空间已满
2)文件的权限不正确
3)文件过大
4)内存不足
5)文件的md5值发生变化
14.有个客户说访问不到你们的网站,但是你们自己测试内网和外网访问都没问题。你会怎么排查并解决客户的问题?
我们自己测了都没问题,只是这个客户访问有问题,那肯定是要先联系到这个客户,能远程最好,问一
下客户的网络是不是正常的,访问其它的网站有没有问题(比如京东、百度什么的)。
如果访问其它网站有问题,那叫客户解决本身网络问题。如果访问其它网站都没问题,用ping和
nslookup解析一下我们的网站是不是正常的,让客户用 IP 来访问我们的网站是否可行,如果 IP 访问
没问题,那就是客户的 DNS 服务器有问题或者 DNS 服务器解析不到我们的网站。还有一种可能就
是跨运营商访问的问题,比如我们的服务器用的是北方联通、而客户用的是南方移动,就也有可能突
然在某个时间段访问不到,这种情况在庞大的中国网 络环境中经常发生(一般是靠 CDN 解决)。
还有可能就是我们的网站没有 SSL 证书,在公网是使用的是 http协议,这种情况有可能就是没有用
https协议网站被运营商劫持了。
15.在 linux服务器上,不管是用 rz-y命令还是 tftp工具上传,我把本地的一个文件上传到服务器完成后, 服务器上还是什么都没有,这有可能是什么问题?
根据这种现象有可能是:服务器磁盘满了;文件格式破坏了;或者你用的是普通用户上传,正
好上传的目录没有权限;还有可能就是你上传的文件大小超出了该目录空间的范围
16.怎么查看两台服务器之间的网络是不是正常的,服务器是禁 ping的?
不能用 ping,那可以用 telnet对方服务器的端口、或者互相访问对方打开的服务
17.给你一套环境,你会如何设计高可用、高并发的架构?
如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的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”。这样一套环境下来是绝对满足高可用、高并发的架构。
18.现在给你三百台服务器,你怎么对他们进行管理?
管理3百台服务器的方式:
1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。
3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息 记录。
19.文件删了磁盘空间没释放
问题:
某天发现某台机器df-h已用磁盘空间为90G,而du-sh/*显示所有使用空间加起来才30G。
原因:
可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题
解决:
1)最简单重启系统或者重启相关服务。
2)干掉进程
lsof | grep deleted # 查看delete进程
kill -9 pid # 杀掉进程
从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文
件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:echo > /proc/25575 /fd/33
3)删除正在写的文件一般用cat /dev/null >file
20.什么情况下,CPU的利用率很低但负载很高,如何排查此类问题?
原因总结
产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。
什么场景会造成CPU低而负载确很高?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又必须等待队列前的进程处理完成的进程个数。具体来说,也就是如下两种情况:
等待被授权予CPU运行权限的进程
等待磁盘I/O完成的进程
cpu低而负载高也就是说等待磁盘I/O完成的进程过多,就会导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去执行别的任务或空闲,具体场景有如下几种。
场景一:磁盘读写请求过多就会导致大量I/O等待
上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。
场景二:MySQL中存在没有索引的语句或存在死锁等情况
我们都知道MySQL的数据是存储在硬盘中,如果需要进行sql查询,需要先把数据从磁盘加载到内存中。当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。具体解决方法可以在MySQL中运行show full processlist命令查看线程等待情况,把其中的语句拿出来进行优化。
场景三:外接硬盘故障,常见有挂了NFS,但是NFS server故障
比如我们的系统挂载了外接硬盘如NFS共享存储,经常会有大量的读写请求去访问NFS存储的文件,如果这个时候NFS Server故障,那么就会导致进程读写请求一直获取不到资源,从而进程一直是不可中断状态,造成负载很高。
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
22.针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
公司的内网某台linux服务器流量莫名其妙的剧增,用iftop查看有连接外网的情况针对这种情况一般 重点查看netstat连接的外网ip和端口。用lsof -p pid可以查看到具体是那些进程,哪些文件,经 查勘发现/root下有相关的配置conf.n hhe两个可疑文件,rm -rf后不到一分钟就自动生成了,由此推断是某个母进程产生的这些文件。所以找到母进程就是找到罪魁祸首
查杀病毒最好断掉外网访问,还好是内网服务器,可以通过内网访问
断了内网,病毒就失去外联的能力,杀掉它就容易的多,怎么找到呢,找了半天也没有看到蛛丝马迹,没办法只有ps axu一个个排查,方法是查看可以的用户和和系统相似而又不是的冒牌货,果然,看到了如下进程可疑,看不到图片就是/usr/bin/.sshd,于是我杀掉所有.sshd相关的进程,然后直接删掉.sshd这个可执行文件,然后才删掉了文章开头提到的自动复活的文件
总结一下,遇到这种问题,如果不是太严重,尽量不要重装系统
一般就是先断外网,然后利用iftop,ps,netstat,chattr,lsof,pstree这些工具顺藤摸瓜一般都能找到元凶。但是如果遇到诸如此类的问题/boot/efifi/EFI/redhat/grub.efifi:
Heuristics.Broken.Executable FOUND,个人觉得就要重装系统了
1、服务器出口带宽不够用
本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
2、服务器负载过大,导致响应不过来
可以从两个方面入手分析:
分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
3、数据库瓶颈
如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、网站开发代码没有优化好例如 SQL 语句没有优化,导致数据库读写相当耗时。
11.什么叫 CC 攻击?什么叫 DDOS 攻击?
CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。
DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。
攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。
怎么预防 CC 攻击和 DDOS 攻击?
防 CC、DDOS 攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。
流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。
12.怎么判定两台主机是完好的可以正常通信的,除了ping
在两台主机分别部署相同的服务,分别访问对方的服务端口
tracert 用来追踪从本机到目的地的地址所经过的路由
netstat 用来查看最近活动的网络(也就是你最近访问了哪些网站)
ipconfifig/all 用来查看本机ip地址(加上/all就是详细信息)
13.使用类似lrzsz等传输文件失败的原因是什么
1)服务器的磁盘存储空间已满
2)文件的权限不正确
3)文件过大
4)内存不足
5)文件的md5值发生变化
14.有个客户说访问不到你们的网站,但是你们自己测试内网和外网访问都没问题。你会怎么排查并解决客户的问题?
我们自己测了都没问题,只是这个客户访问有问题,那肯定是要先联系到这个客户,能远程最好,问一
下客户的网络是不是正常的,访问其它的网站有没有问题(比如京东、百度什么的)。
如果访问其它网站有问题,那叫客户解决本身网络问题。如果访问其它网站都没问题,用ping和
nslookup解析一下我们的网站是不是正常的,让客户用 IP 来访问我们的网站是否可行,如果 IP 访问
没问题,那就是客户的 DNS 服务器有问题或者 DNS 服务器解析不到我们的网站。还有一种可能就
是跨运营商访问的问题,比如我们的服务器用的是北方联通、而客户用的是南方移动,就也有可能突
然在某个时间段访问不到,这种情况在庞大的中国网 络环境中经常发生(一般是靠 CDN 解决)。
还有可能就是我们的网站没有 SSL 证书,在公网是使用的是 http协议,这种情况有可能就是没有用
https协议网站被运营商劫持了。
15.在 linux服务器上,不管是用 rz-y命令还是 tftp工具上传,我把本地的一个文件上传到服务器完成后, 服务器上还是什么都没有,这有可能是什么问题?
根据这种现象有可能是:服务器磁盘满了;文件格式破坏了;或者你用的是普通用户上传,正
好上传的目录没有权限;还有可能就是你上传的文件大小超出了该目录空间的范围
16.怎么查看两台服务器之间的网络是不是正常的,服务器是禁 ping的?
不能用 ping,那可以用 telnet对方服务器的端口、或者互相访问对方打开的服务
17.给你一套环境,你会如何设计高可用、高并发的架构?
如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的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”。这样一套环境下来是绝对满足高可用、高并发的架构。
18.现在给你三百台服务器,你怎么对他们进行管理?
管理3百台服务器的方式:
1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。
3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息 记录。
19.文件删了磁盘空间没释放
问题:
某天发现某台机器df-h已用磁盘空间为90G,而du-sh/*显示所有使用空间加起来才30G。
原因:
可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题
解决:
1)最简单重启系统或者重启相关服务。
2)干掉进程
lsof | grep deleted # 查看delete进程
kill -9 pid # 杀掉进程
从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文
件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:echo > /proc/25575 /fd/33
3)删除正在写的文件一般用cat /dev/null >file
20.什么情况下,CPU的利用率很低但负载很高,如何排查此类问题?
原因总结
产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。
什么场景会造成CPU低而负载确很高?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又必须等待队列前的进程处理完成的进程个数。具体来说,也就是如下两种情况:
等待被授权予CPU运行权限的进程
等待磁盘I/O完成的进程
cpu低而负载高也就是说等待磁盘I/O完成的进程过多,就会导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去执行别的任务或空闲,具体场景有如下几种。
场景一:磁盘读写请求过多就会导致大量I/O等待
上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。
场景二:MySQL中存在没有索引的语句或存在死锁等情况
我们都知道MySQL的数据是存储在硬盘中,如果需要进行sql查询,需要先把数据从磁盘加载到内存中。当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。具体解决方法可以在MySQL中运行show full processlist命令查看线程等待情况,把其中的语句拿出来进行优化。
场景三:外接硬盘故障,常见有挂了NFS,但是NFS server故障
比如我们的系统挂载了外接硬盘如NFS共享存储,经常会有大量的读写请求去访问NFS存储的文件,如果这个时候NFS Server故障,那么就会导致进程读写请求一直获取不到资源,从而进程一直是不可中断状态,造成负载很高。
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
22.针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。
DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。
攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。
怎么预防 CC 攻击和 DDOS 攻击?
防 CC、DDOS 攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。
流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。
在两台主机分别部署相同的服务,分别访问对方的服务端口
tracert 用来追踪从本机到目的地的地址所经过的路由
netstat 用来查看最近活动的网络(也就是你最近访问了哪些网站)
ipconfifig/all 用来查看本机ip地址(加上/all就是详细信息)
13.使用类似lrzsz等传输文件失败的原因是什么
1)服务器的磁盘存储空间已满
2)文件的权限不正确
3)文件过大
4)内存不足
5)文件的md5值发生变化
14.有个客户说访问不到你们的网站,但是你们自己测试内网和外网访问都没问题。你会怎么排查并解决客户的问题?
我们自己测了都没问题,只是这个客户访问有问题,那肯定是要先联系到这个客户,能远程最好,问一
下客户的网络是不是正常的,访问其它的网站有没有问题(比如京东、百度什么的)。
如果访问其它网站有问题,那叫客户解决本身网络问题。如果访问其它网站都没问题,用ping和
nslookup解析一下我们的网站是不是正常的,让客户用 IP 来访问我们的网站是否可行,如果 IP 访问
没问题,那就是客户的 DNS 服务器有问题或者 DNS 服务器解析不到我们的网站。还有一种可能就
是跨运营商访问的问题,比如我们的服务器用的是北方联通、而客户用的是南方移动,就也有可能突
然在某个时间段访问不到,这种情况在庞大的中国网 络环境中经常发生(一般是靠 CDN 解决)。
还有可能就是我们的网站没有 SSL 证书,在公网是使用的是 http协议,这种情况有可能就是没有用
https协议网站被运营商劫持了。
15.在 linux服务器上,不管是用 rz-y命令还是 tftp工具上传,我把本地的一个文件上传到服务器完成后, 服务器上还是什么都没有,这有可能是什么问题?
根据这种现象有可能是:服务器磁盘满了;文件格式破坏了;或者你用的是普通用户上传,正
好上传的目录没有权限;还有可能就是你上传的文件大小超出了该目录空间的范围
16.怎么查看两台服务器之间的网络是不是正常的,服务器是禁 ping的?
不能用 ping,那可以用 telnet对方服务器的端口、或者互相访问对方打开的服务
17.给你一套环境,你会如何设计高可用、高并发的架构?
如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的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”。这样一套环境下来是绝对满足高可用、高并发的架构。
18.现在给你三百台服务器,你怎么对他们进行管理?
管理3百台服务器的方式:
1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。
3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息 记录。
19.文件删了磁盘空间没释放
问题:
某天发现某台机器df-h已用磁盘空间为90G,而du-sh/*显示所有使用空间加起来才30G。
原因:
可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题
解决:
1)最简单重启系统或者重启相关服务。
2)干掉进程
lsof | grep deleted # 查看delete进程
kill -9 pid # 杀掉进程
从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文
件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:echo > /proc/25575 /fd/33
3)删除正在写的文件一般用cat /dev/null >file
20.什么情况下,CPU的利用率很低但负载很高,如何排查此类问题?
原因总结
产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。
什么场景会造成CPU低而负载确很高?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又必须等待队列前的进程处理完成的进程个数。具体来说,也就是如下两种情况:
等待被授权予CPU运行权限的进程
等待磁盘I/O完成的进程
cpu低而负载高也就是说等待磁盘I/O完成的进程过多,就会导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去执行别的任务或空闲,具体场景有如下几种。
场景一:磁盘读写请求过多就会导致大量I/O等待
上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。
场景二:MySQL中存在没有索引的语句或存在死锁等情况
我们都知道MySQL的数据是存储在硬盘中,如果需要进行sql查询,需要先把数据从磁盘加载到内存中。当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。具体解决方法可以在MySQL中运行show full processlist命令查看线程等待情况,把其中的语句拿出来进行优化。
场景三:外接硬盘故障,常见有挂了NFS,但是NFS server故障
比如我们的系统挂载了外接硬盘如NFS共享存储,经常会有大量的读写请求去访问NFS存储的文件,如果这个时候NFS Server故障,那么就会导致进程读写请求一直获取不到资源,从而进程一直是不可中断状态,造成负载很高。
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
22.针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
1)服务器的磁盘存储空间已满
2)文件的权限不正确
3)文件过大
4)内存不足
5)文件的md5值发生变化
我们自己测了都没问题,只是这个客户访问有问题,那肯定是要先联系到这个客户,能远程最好,问一
下客户的网络是不是正常的,访问其它的网站有没有问题(比如京东、百度什么的)。
如果访问其它网站有问题,那叫客户解决本身网络问题。如果访问其它网站都没问题,用ping和
nslookup解析一下我们的网站是不是正常的,让客户用 IP 来访问我们的网站是否可行,如果 IP 访问
没问题,那就是客户的 DNS 服务器有问题或者 DNS 服务器解析不到我们的网站。还有一种可能就
是跨运营商访问的问题,比如我们的服务器用的是北方联通、而客户用的是南方移动,就也有可能突
然在某个时间段访问不到,这种情况在庞大的中国网 络环境中经常发生(一般是靠 CDN 解决)。
还有可能就是我们的网站没有 SSL 证书,在公网是使用的是 http协议,这种情况有可能就是没有用
https协议网站被运营商劫持了。
15.在 linux服务器上,不管是用 rz-y命令还是 tftp工具上传,我把本地的一个文件上传到服务器完成后, 服务器上还是什么都没有,这有可能是什么问题?
根据这种现象有可能是:服务器磁盘满了;文件格式破坏了;或者你用的是普通用户上传,正
好上传的目录没有权限;还有可能就是你上传的文件大小超出了该目录空间的范围
16.怎么查看两台服务器之间的网络是不是正常的,服务器是禁 ping的?
不能用 ping,那可以用 telnet对方服务器的端口、或者互相访问对方打开的服务
17.给你一套环境,你会如何设计高可用、高并发的架构?
如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的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”。这样一套环境下来是绝对满足高可用、高并发的架构。
18.现在给你三百台服务器,你怎么对他们进行管理?
管理3百台服务器的方式:
1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。
3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息 记录。
19.文件删了磁盘空间没释放
问题:
某天发现某台机器df-h已用磁盘空间为90G,而du-sh/*显示所有使用空间加起来才30G。
原因:
可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题
解决:
1)最简单重启系统或者重启相关服务。
2)干掉进程
lsof | grep deleted # 查看delete进程
kill -9 pid # 杀掉进程
从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文
件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:echo > /proc/25575 /fd/33
3)删除正在写的文件一般用cat /dev/null >file
20.什么情况下,CPU的利用率很低但负载很高,如何排查此类问题?
原因总结
产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。
什么场景会造成CPU低而负载确很高?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又必须等待队列前的进程处理完成的进程个数。具体来说,也就是如下两种情况:
等待被授权予CPU运行权限的进程
等待磁盘I/O完成的进程
cpu低而负载高也就是说等待磁盘I/O完成的进程过多,就会导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去执行别的任务或空闲,具体场景有如下几种。
场景一:磁盘读写请求过多就会导致大量I/O等待
上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。
场景二:MySQL中存在没有索引的语句或存在死锁等情况
我们都知道MySQL的数据是存储在硬盘中,如果需要进行sql查询,需要先把数据从磁盘加载到内存中。当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。具体解决方法可以在MySQL中运行show full processlist命令查看线程等待情况,把其中的语句拿出来进行优化。
场景三:外接硬盘故障,常见有挂了NFS,但是NFS server故障
比如我们的系统挂载了外接硬盘如NFS共享存储,经常会有大量的读写请求去访问NFS存储的文件,如果这个时候NFS Server故障,那么就会导致进程读写请求一直获取不到资源,从而进程一直是不可中断状态,造成负载很高。
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
22.针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
根据这种现象有可能是:服务器磁盘满了;文件格式破坏了;或者你用的是普通用户上传,正
好上传的目录没有权限;还有可能就是你上传的文件大小超出了该目录空间的范围
不能用 ping,那可以用 telnet对方服务器的端口、或者互相访问对方打开的服务
17.给你一套环境,你会如何设计高可用、高并发的架构?
如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的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”。这样一套环境下来是绝对满足高可用、高并发的架构。
18.现在给你三百台服务器,你怎么对他们进行管理?
管理3百台服务器的方式:
1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。
3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息 记录。
19.文件删了磁盘空间没释放
问题:
某天发现某台机器df-h已用磁盘空间为90G,而du-sh/*显示所有使用空间加起来才30G。
原因:
可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题
解决:
1)最简单重启系统或者重启相关服务。
2)干掉进程
lsof | grep deleted # 查看delete进程
kill -9 pid # 杀掉进程
从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文
件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:echo > /proc/25575 /fd/33
3)删除正在写的文件一般用cat /dev/null >file
20.什么情况下,CPU的利用率很低但负载很高,如何排查此类问题?
原因总结
产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。
什么场景会造成CPU低而负载确很高?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又必须等待队列前的进程处理完成的进程个数。具体来说,也就是如下两种情况:
等待被授权予CPU运行权限的进程
等待磁盘I/O完成的进程
cpu低而负载高也就是说等待磁盘I/O完成的进程过多,就会导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去执行别的任务或空闲,具体场景有如下几种。
场景一:磁盘读写请求过多就会导致大量I/O等待
上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。
场景二:MySQL中存在没有索引的语句或存在死锁等情况
我们都知道MySQL的数据是存储在硬盘中,如果需要进行sql查询,需要先把数据从磁盘加载到内存中。当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。具体解决方法可以在MySQL中运行show full processlist命令查看线程等待情况,把其中的语句拿出来进行优化。
场景三:外接硬盘故障,常见有挂了NFS,但是NFS server故障
比如我们的系统挂载了外接硬盘如NFS共享存储,经常会有大量的读写请求去访问NFS存储的文件,如果这个时候NFS Server故障,那么就会导致进程读写请求一直获取不到资源,从而进程一直是不可中断状态,造成负载很高。
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
22.针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的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”。这样一套环境下来是绝对满足高可用、高并发的架构。
管理3百台服务器的方式:
1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。
3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息 记录。
19.文件删了磁盘空间没释放
问题:
某天发现某台机器df-h已用磁盘空间为90G,而du-sh/*显示所有使用空间加起来才30G。
原因:
可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题
解决:
1)最简单重启系统或者重启相关服务。
2)干掉进程
lsof | grep deleted # 查看delete进程
kill -9 pid # 杀掉进程
从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文
件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:echo > /proc/25575 /fd/33
3)删除正在写的文件一般用cat /dev/null >file
20.什么情况下,CPU的利用率很低但负载很高,如何排查此类问题?
原因总结
产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。
什么场景会造成CPU低而负载确很高?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又必须等待队列前的进程处理完成的进程个数。具体来说,也就是如下两种情况:
等待被授权予CPU运行权限的进程
等待磁盘I/O完成的进程
cpu低而负载高也就是说等待磁盘I/O完成的进程过多,就会导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去执行别的任务或空闲,具体场景有如下几种。
场景一:磁盘读写请求过多就会导致大量I/O等待
上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。
场景二:MySQL中存在没有索引的语句或存在死锁等情况
我们都知道MySQL的数据是存储在硬盘中,如果需要进行sql查询,需要先把数据从磁盘加载到内存中。当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。具体解决方法可以在MySQL中运行show full processlist命令查看线程等待情况,把其中的语句拿出来进行优化。
场景三:外接硬盘故障,常见有挂了NFS,但是NFS server故障
比如我们的系统挂载了外接硬盘如NFS共享存储,经常会有大量的读写请求去访问NFS存储的文件,如果这个时候NFS Server故障,那么就会导致进程读写请求一直获取不到资源,从而进程一直是不可中断状态,造成负载很高。
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
22.针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
问题:
某天发现某台机器df-h已用磁盘空间为90G,而du-sh/*显示所有使用空间加起来才30G。
原因:
可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题
解决:
1)最简单重启系统或者重启相关服务。
2)干掉进程
lsof | grep deleted # 查看delete进程
kill -9 pid # 杀掉进程
从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文
件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:echo > /proc/25575 /fd/33
3)删除正在写的文件一般用cat /dev/null >file
原因总结
产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。
什么场景会造成CPU低而负载确很高?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又必须等待队列前的进程处理完成的进程个数。具体来说,也就是如下两种情况:
等待被授权予CPU运行权限的进程
等待磁盘I/O完成的进程
cpu低而负载高也就是说等待磁盘I/O完成的进程过多,就会导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去执行别的任务或空闲,具体场景有如下几种。
场景一:磁盘读写请求过多就会导致大量I/O等待
上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。
场景二:MySQL中存在没有索引的语句或存在死锁等情况
我们都知道MySQL的数据是存储在硬盘中,如果需要进行sql查询,需要先把数据从磁盘加载到内存中。当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。具体解决方法可以在MySQL中运行show full processlist命令查看线程等待情况,把其中的语句拿出来进行优化。
场景三:外接硬盘故障,常见有挂了NFS,但是NFS server故障
比如我们的系统挂载了外接硬盘如NFS共享存储,经常会有大量的读写请求去访问NFS存储的文件,如果这个时候NFS Server故障,那么就会导致进程读写请求一直获取不到资源,从而进程一直是不可中断状态,造成负载很高。
21.linux平台下如何实现VPN功能,如何通过VPN与Windows互联?
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
22.针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
1)使用GRE模块实现VPN功能
启用内核模块ip_gre,使用lsmod查看当前计算机已经加载的模块,使用modprobe加载Linux内核模块创建一个虚拟VPN隧道实现两台主机点到点的隧道通讯
2)使用PPTP、L2TP+IPsec实现与Windows的互联
使用PPTP协议创建一个支持身份验证的隧道连接使用MPPE对数据进行加密
为客户端分配地址池客户端连接使用L2TP协议创建一个支持身份验证与加密的隧道连接
使用IPSec对数据进行加密为客户端分配地址池
客户端连接
使用预共享秘钥
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
23.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
24.Ceph存储服务常见故障
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙
问题情况描述:
突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开。
解决步骤:
登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库。
1.常见MON故障处理:Monitor维护着Ceph集群的信息,如果Monitor无法正常提供服务,那整个Ceph集群就不可访问。
处理过程:
1)先判断mon进程是否还在,ceph -s 命令是否能运行并收到集群回复.有回复,则可能部分mon节点宕机,没有回复,则可能是全挂,或者
2)确定可以从其他 monitor节点连到有问题的monitor节点。同时检查下端口。如果开了防火墙,还需要检查下所有 monitor 节点的 iptables ,以确定没有丢弃/拒绝连接。
其他cepg常见问题:
1)恢复Monitor损坏的monmap:在确定数据不丢失的前提下,销毁monitor,然后新建,给monitor手动注入monmap
2)时钟偏移:默认最大允许的时钟偏移量是0.05秒,重新同步各 monitor 节点的时钟,运行 NTP 客户端会有帮助。
3)客户端无法连接或挂载:检查IP过滤表。某些操作系统安装工具会给iptables增加一条REJECT规则。这条规则会拒绝所有尝试连接该主机的客户端(除了ssh)。如果环境允许,也可以直接关闭主机的防火墙



