目录
1.不能关机的情况下 , 如果挂载目录卸载不掉应该怎么办
2.如果你向文件系统中写入数据 , 发现无法写入 , 怎么处理
3.客户反映服务器卡顿 , 你会怎么排查
4.如果你在执行命令时 , 发现Linux系统命令执行速度很慢 , 你会怎么解决
5. 了解七层模型吗 ,说 一 下 ;TCP协议和UDP协议的区别是什么 ;二层和三层的交换机有什么区别 , 说 一 下
6.说 一 下TCP三次握手和四次挥手
7.为什么四次挥手时要有 一个TIME_WAIT状态
8.为什么连接时是三次握手 , 断开时需要四次挥手
9.软链接和硬链接有什么区别 , 怎么做链接
10.Raid知道吗 , 说 一 下软raid和硬raid的区别 , 说 一 下常见的Raid的原理
11.监管Linux系统资源使用哪个命令
13.你在工作中如何修改Apache的主页文件 ; 在工作中会用nginx吗 , 说 一 下 nginx和apache的区别
14.说 一 下代理和负载均衡的区别
15.lvs和nginx都能做负载均衡 , 那么二者有什么区别
16.说 一 下lvs的工作原理
17.介绍 一 下lvs常见的工作模式
18.lvs的常用算法
19.说 一 下Apache的三种工作模式
20.说 一 下Nginx的工作原理( Nginx为什么消耗资源少 , 并发能力强)
21.Nginx和Tomcat怎么进行数据传输
22.为什么在搭建web服务器时要做动静分离 , 什么是动静分离
23.介绍 一 下Nginx的常用模块
24.说 一 下Nginx做反向代理时常用的算法有哪些
25.说 一 下你知道的Nginx的特性
26.Nginx常用的参数优化
27.说 一 下location模块( 路由功能) 的匹配优先级
28.解释 一 下数据库的主从复制的原理( 或者会问: 怎么做的数据库的数据同步)
29.数据库主从不同步的原因
30.解释 一 下数据库的读写分离
31.如果数据库主库宕机了, 怎么切换到从库 ,如果有多个从库 ,其余的从库如何处理
32.解释 一 下事务的四个特征 , 和什么是数据库的回滚
33.MySQL数据库的备份方式
34.MySQL的历史了解吗 , 它和Mariadb有什么关系
35.数据库常用的引擎有什么 , 说 一 下区别
36. 了解非关系型数据库吗 , 和MySQL有什么区别
37.解释 一 下数据库的锁机制
38.说 一 下高可用负载均衡集群 , 原理是什么
39.什么是DNS, 说 一 下DNS的解析过程 , 以及使用的端口 , 解释 一 下智能DNS( 分离解析)
40.怎么添加DNS解析
41.说 一 下常用服务的端口号
42.路由器的两种工作模式 , 怎么获取动态路由( DHCP原理)
43.说 一 下常见的网络状态码
44.解释 一 下502是什么意思 , 说 一 下你的排错思路
45.解释 一 下http协议 , 和https协议有什么区别
46.SSH远程无法连接 , 说 一 下你的检查思路
47.说 一 下Linux系统中查看系统资源都能使用哪些命令
48.列出Linux中常用的文本处理命令
49.Linux系统磁盘的相关命令
50.说 一 下df和du的区别
51.Linux系统如何进行调优
52.Linux查看内核版本使用什么命令
53.Linux中你认为哪些目录比较重要
54.统计文件行数使用哪个命令
55.解释 一 下B/S和C/S结构
56.简单说 一 下rpm的用法 , rpm安装和yum安装的区别是什么
57.说 一 下防火墙的四表五链
58.swap分区的作用
59.怎么查看系统中的进程和线程
60.buffer和cache的区别
61.如何查看系统的资源限制
ulimit -a
62.说 一 下ulimit命令
63.怎么查看当前的系统环境变量 , 怎么查看所有的系统环境变量
64.程序自动启动有哪几种方式
65.用过抓包命令吗 , 说 一 下怎么指定网卡 , 怎么指定所有网卡 , -nn和 -vv什么含 义
66.接触过redis集群吗 , 说 一 下redis集群的三种实现方式 , 原理是什么
67.服务器内存不够怎么处理
68.CPU资源不足怎么处理
69.遇到磁盘空间不足的报错 , 你应该如何处理
70.如何将新磁盘扩展到已有分区
71.Linux如何开机自启
72.说 一 下文件描述符对系统有什么影响
73.Linux怎么挂载新磁盘
74.找到修改30天以上的文件并删除
75.服务器系统日志放在哪里
76.如果你的 一块磁盘中 , 只有几个小文件 , 使用df命令查看 , 发现磁盘是满
77.查看操作系统的版本信息
78.解释一下什么是HAC的脑裂 , 能说一下解决方案吗
79.Linux进程有哪些状态
80.Linux查看系统资源的命令
81.Linux查看服务运行端口的命令
82./etc/profile和 .bash_profile有什么区别
83.数据库的锁是如何制定的
84.MySQL为什么会出现锁表的情况 , 怎么解锁 , 如何避免这种情况的出现
85.innodb引擎是插入快还是读取快
86.Docker和虚拟机的区别
87.Dockerfile文件
88.Linux中常用的网络命
89.NetworkManager
90.简单介绍 一 下docker定义
91.KVM和docker有什么区别
92.为什么说docker是轻量级
93.Docker常见的网络模式
94.Docker中Namespaces和Cgroups的隔离类型
95.Docker如何缩容
96.kubernetes中组件和插件的功
97.介绍 一 下kubernetes集群中的控制器
98.pod的分类
99.python删除文件
100.ansible任务执行模式
umount卸载不掉是因为正在被程序读取或者有数据正在写入
使用 fuser 或者 lsof 查看正在占用的磁盘的进程PID
kill -9 PID强制结束进程
umount卸载
如果kill -9无法杀死进程,可以使用umount -f强制进行卸载,但是这种方法是最不推 荐的
此时应该考虑两种情况:
磁盘空间被占满:此时可以删除一些垃圾数据;或者将一些历史数据导出,将磁盘中的 数据进行删除;如果在安装文件系统时,底层使用了LVM,可以进行在线扩容,增加硬 盘容量
inode号被用完:建议导出一些历史数据,然后将硬盘中的数据删除
3.1 查看服务器的内存和CPU,确定内存大小和CPU核
3.2 查看CPU负载,确认负载高是因为CPU的使用、内存的使用还是io的使用引起的
使用 top 命令进行查看
3. 3查看数据库
show full processlist; #查看数据库当前正在使用的线程
通过这个命令可以查看当前登录到数据库的用户、用户的状态和执行的sql语句,通过这些能够分析操作和sql语句是否有误
lscpu:查看CPU的相关信息,看CPU的缓存是否过高
free -mh:查看系统磁盘文件缓存是否过大
主要就是,查看系统中的CPU、负载等情况;检查系统是否在执行定时计划任务等;也 可以选择杀死进程,但是杀死进程前需要根据占用过高的进程做进一步的分析
七层模型: OSI/ISO七层模型
应用层:给用户一个操作界面,为用户提供服务
表示层:为数据提供加密、压缩、表
会话层:确定数据是否需要进入网络进行传输
传输层:对报文进行分组、组装 ;提供传输协议的选择(TCP协议和UDP协议)差错校验
网络层: IP地址编址
数据链路层: MAC地址编址
物理层:数据实际传输和电气特效定义
TCP协议和UDP协议的区别:
TCP协议:面向连接的、可靠的传输协议,主要用来传输字节流
UDP协议:面向无连接的、不可靠的传输协议,主要用来传输数据报文
安全性较差,但是可靠性高; UDP协议因为是无连接的,实时性好,安全性高,可 靠性低
二、三层交换机的区别:
二层交换机:二层使用的是MAC地址寻址,采用存储转发的方式进行数据交换;
三层交换机:三层交换机具有一定的路由转发功能,可以连接外网;还可以选择路 由转发的线路,提高转发的效率
三次握手:
第一次握手:客户端将标志位SYN置为1,随机产生一个序列号Seq,将这个数据包 发送给服务器,然后客户端进入SYN_Sent状态。
四次挥手:
我们可以使用 ln 制作硬链接,使用 ln -s 制作软链接
Raid:磁盘阵列,提供比单个磁盘更多的存储和冗余存储的技术
软raid:由操作系统模拟出的raid,硬盘损坏, raid就会失效
硬raid:由硬件raid卡制作的raid,硬盘损坏不会导致raid损坏,能够保证数据冗余
Raid原理:
Raid0:是一种条带形式的存储,由两块或两块以上的磁盘组成,数据在写入时会 以条带的形式写入所有的磁盘,存储速度最快,但是损坏几率最高,没有磁盘容错 功能
Raid1:镜像存储,必须由2的倍数块硬盘组成,数据再写入磁盘时会同时复制到另 一块硬盘中,因此写入速度最慢,磁盘利用率只有50%,具有磁盘容错
Raid10:硬盘先组成raid1再组成raid0,中和Raid1和Raid0的优缺点
Raid01:硬盘先组成raid0再组成raid1
Raid5:至少需要三块硬盘,每次写入数据时都会写入一个校验信息,每个校验信 息都会被写入到不同的硬盘下,具有磁盘容错和冗余功能,磁盘利用率为n-1块盘
dstat,默认未安装,需要安装。用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令 的工具。
12.CentOS操作系统的启动过程
CentOS6:开机,加电自检,加载分区表,加载grub菜单(/boot/grub ),确定系统 的第一个进程(init ),确定系统的启动级别(/etc/initab ),操作系统初始化 (/etc/rc.sysinit ),根据启动级别确定操作系统启动的服务项(/etc/rcN.d ), 加载环境变量(/etc/bashrc,/etc/profile )
CentOS7:开机,加电自检,加载分区表,加载grub菜单(/etc/grub2 ),确定系统 的第一个进程(systemd ),确定系统的启动级别(/etc/systemd/system/default.t arget ),操作系统初始化(/usr/lib/systemd/system/default.target ),根据系统 启动级别确定系统启动的服务项
(/usr/lib/systemd/system,/etc/systemd/system ),加载环境变量(/etc/bashr c,/etc/profile )
apache在安装完成后,有一个配置文件目录, yum安装在 /etc/httpd/conf/httpd.con f ,源码包安装会在 /usr/local/apache/conf/http.conf ,在配置文件中有 Directory Index 模块,找到后取消注释,在后面添加需要主页文件类型即可。
区别
Nginx是一种轻量级的web服务器,比Apache占用的资源更少
Nginx的工作模式是异步非阻塞模式,而Apache是同步阻塞型的工作模式,所以 Nginx能抗高并发
Nginx有高度模块化的设计,编写模块比Apache简单
正向代理:为客户端处理请求,将客户端要请求的数据从后台服务器进行下载然后 返回给客户端。客户端认为自己访问的是网站,实际上访问的是代理服务器的IP
反向代理:通常和负载均衡搭配使用,接收所有客户端的请求,然后将请求交给后 台的服务器进行处理,降低后台服务器的处理压力,后台一般会有多台服务器,通 常会和负载均衡搭配使用
lvs主要通过ipvs (钩子函数)实现功能,而ipvs主要工作在防火墙的input链上,用户可以 使用ipvsadm对lvs进行管理
· DR(路由)负载均衡服务器和后台的真实服务器位于同一局域网内,客户端通过路由器访问负载均 衡服务器,负载均衡服务器会进行MAC地址转换,因为负载均衡服务器和后台服务器位 于同一网络内,可以直接将请求交给后台服务器进行处理,后台服务器会直接把数据返 回给客户端
NAT
负载均衡服务器和真实服务器位于同一局域网内,客户端访问负载均衡服务器,负载均 衡服务器会进行目标地址转换,将访问请求交给后台的服务器;当后台服务器返回数据时,负载均衡服务器会进行源地址转换,将数据交给客户端
· TUN(隧道)
隧道模式的处理过程和DR模式相似,负载均衡服务器只会处理入站的报文,会将请求 交给距离你最近的服务器进行处理,然后服务器直接返回数据,提高了访问速度
异步非阻塞:即当系统内没有资源处理请求时,它会将请求挂起并注册一个事件,然后将 这部分资源释放掉,当系统有多余的线程时再来处理挂起的请求,这样能够实现在资源固 定的情况下处理更大的并发请求
如果是处理静态资源, Nginx直接处理返回给用户
如果处理动态资源, Nginx会将请求交给后台的Tomcat服务器进行处理,然后返回给用 户
· 动静分离:根据一定的规则将不变的资源和经常发生变化的资源进行分离,然后我们就 可以将静态资源进行缓存。简单概括,就是把动态文件和静态文件进行分离
· 有一些请求需要后台进行处理,但是有一些请求是不需要后台进行处理的。如果不做动 静分离,这些静态资源就会去向后台服务器发起请求,在并发较高时,会比较明显的导 致响应时间增加;实现动静分离,能够明显提高用户访问静态资源的速度。
· 跨平台:可以在Linux和Windows上运行
· 配置简单
· 异步非阻塞的工作模式,能抗高并发
网络依赖性低,理论上只要能ping通,就能进行负载均衡,而且能够有效地区分内外网 流量
· 自带健康检查,如果后台有一台服务器宕机, Nginx就不会向这台服务器上分配请求
· 消耗内存少,稳定性高
网络延迟:数据库主从同步是基于binlog日志的异步复制,而binlog日志是通过网络进 行传输的,网络延迟大时,可能会造成主从不同步
· MySQL主从数据库的版本不一致,如果主数据库的版本较高、从数据库版本较低,也会 导致同步不成功
如果被这么问到 , 不仅要解释什么是读写分离 , 还要说出数据库主从复制的原理 , 切
忌只说读写分离 , 回答一 定要完整
Mariadb是MySQL5.7版本之后的一种叫法,因为原来的MySQL在2009年被Oracle公司收购 后,变成了收费版本, MySQL开发者重新开发了Mariadb作为开源项目继续进行更新和维 护
MySQL属于关系型数据库,和非关系型数据库的区别主要体现在以下几个方面:
存储方式:
存储结构:
关系型数据库中,数据存储时的结构都是预定义好的,结构比较稳定,但是修改数 据很困难
非关系型数据库使用的是动态结构,很容易适应数据结构和内容的变化
查询方式:
关系型数据库通过SQL语言进行数据查询,使用标准化的语言进行数据查看
非关系型数据库的查询语言是非标准化的,使用的是UNQL
扩展
关系型数据库的数据存储在多个表中,涉及到多表联合查询,需要提升服务器的硬 件资源来进行扩展,是一种纵向扩展
非关系型数据库的存储是分布式的,可以向地址池中增加服务器来扩展性能,是一 种横向扩展
数据库的锁机制是一种对数据的保护机制,因为数据库支持并发,所以可能存在同一时间 内多个用户对同一个数据进行修改,这可能会破坏数据的一致性;当用户对数据进行修改 时,系统会先对这个数据进行加锁,这就保证了事务对这个数据的控制,当这个数据被修 改完成之前,其他的事务不能对这个数据进行修改,保证了数据的一致性。
如果被问到keepalived如何解决单节点故障 , 就回答原理
· 使用LVS做负载均衡集群,使用keepalived做高可用集群
· LVS负载均衡集群
LVS主要采用的是基于IP的负载均衡技术,它由两个核心组件构成: ipvs (钩子函 数)、 ipvsadm;其中, ipvs是LVS的核心组件,是一个框架,而ipvsadm是一个管 理命令,用来定义路由转发规则,工作在用户空间中
· keepalived高可用集
keepalived基于VRRP(虚拟路由冗余协议)来实现高可用功能, keepalived可以监 控集群中各个节点的功能是否正常,如果节点异常或者服务故障, keepalived会将 故障节点从集群中清除出去,在故障节点恢复正常后, keepalived会将节点重新拉 入集群中。
VRRP(虚拟路由冗余协议):是为了解决静态路由状态下出现的单节点路由故障问 题。 VRRP实际上是一个虚拟路由器集群,这个集群工作在实际的物理路由器之上, 这些路由器中有一个master路由器,其余的路由器都是backup级别;只有master路 由器不断的进行vrrp数据包的发送,而backup路由器只负责数据包的接收,同时负 责监控master的运行状态,因此不会发生抢占的现象。如果master路由器出现故障, backup路由器无法接收到来自master服务器的数据包,那么就会认定master服 务器故障,接着剩下的所有backup路由器会进行选举,优先级最高的backup会成为 master,这个过程非常短,能够保证服务的持续性。
· DNS:域名解析系统
· DNS解析过程:
首先查看本地hosts文件, hosts文件无法解析则查看本地缓存,本地缓存无法解析 则请求DNS服务器进行域名解析,如果是本地解析直接返回解析记录。这是DNS的 递归
首先请求根域服务器,返回一级域服务器的IP地址,然后请求一级域服务器返回二 级域服务器的IP地址,这是DNS的迭代
请求三级域服务器返回域名地址。 DNS服务器将解析记录在本地记录后,将解析记 录发送给客户端,完成访问。这是DNS的递归
递归:直接返回域名地址;迭代:告诉你下一步怎么走,在这里就是获取DNS服务 器地址
· 使用TCP/UDP53端口
· 智能DNS:DNS服务器会根据用户发起的查询自动判断用户所属的运营商,将请求交给 相应的运营商进行解析,减少访问时间,提高访问速度
vim /etc/resolv.conf
· 静态路由static
· 动态路由DHCP(动态主机配置协议)
· DHCP租约过程
首先客户端在局域网内广播发送DHCP_Discover包,寻找DHCP服务器
DHCP服务器响应,发送DHCP_Offer包
客户端选择IP,发送DHCP_Request包
服务器确定租约,发送DHCP_ACK包
http状态码主要分为5类:
· 502:服务器充当网关或者代理,从上游服务器收到了无效响应。简单的说就是网关错
误, web服务器通信失败
· 排错思路
因为是和web服务器通信失败,所以可以先检查网络,看网络是否畅通
也可能是因为web服务器未启动,检查web服务器进程是否在运行状态,端口是否 开放
web服务器处理的请求太多,无法响应这个请求,检查web服务器的日志来定位错 误原因
· http协议:超文本传输协议,基于的是TCP/IP协议,是一种无连接(限制每次连接只处 理一个请求,处理完成后立即断开)、无状态(服务器端对数据没有记忆能力)的协 议,只能由客户端向服务器端请求数据,服务器端不会主动发送数据
· 区别
http是明文传输,容易被攻击, https是http协议+ssl加密组成,确保数据传输过程是 加密进行的
http是无状态连接, https的连接过程是加密过的
主要从四个方面进行分析:网卡,端口, IP,防火墙
uname -a
· B/S结构:浏览器/服务器架构, 一般建立广域网上,通常面向的是不可知的用户群,
对安全的控制能力相对较弱。有逻辑上相互分离的数据层、表示层和业务层构成。表示 层向客户提供数据,业务层实施业务和数据规则, 数据层定义数据访问标准,三层体 系结构中的核心是组件对象模型。
· C/S结构:客户端/服务器架构, 一般建立在局域网上,通过专门的客户端、服务器进 行数据传输和交换,安全性较好。是一个典型的两层架构,将任务合理的分配到客户端 和服务端,降低了系统的通讯对资源的消耗,需要安装客户端才能进行操作。
rpm安装和yum安装最大的区别在于, yum安装会主动从yum仓库中下载所需要的依赖包; 但是rpm安装不会主动解决依赖关系,需要提前将需要的依赖软件安装好
· 四表,承载链
· 五链,承载规则
input:数据包入站应用此链中的规则
output:数据包出站应用此链中的规则
forward:处理数据包转发的报文请求
prerouting:数据包做路由前选择,配合DNAT使用
postrouting:数据包做路由后选择,配合SNAT使用
swap分区是一个交换分区,当物理内存不足时, swap分区会释放一部分内存给当前正在运 行的程序使用。这部分空间一般来自那些很长时间没有运行过的程序,系统将这部分空间 临时存放在swap空间中,给那些内存占有率比较高的程序使用。
进程: top,ps -aux,ps -ef
线程: ps -aT
(查看系统中的所有线程)
ps -T -p
top -H -p
buffer:缓冲,是为了提高内存和硬盘(或者其他io设备)之间的数据交换速度而设计 的
cache:缓存
从CPU的角度来看,是为了提高内存和CPU之间的数据交换速度而设计的
从内存读取和磁盘读取的角度来看,可以理解为系统为了更高的数据读取速率,将 已经读取过的数据存放在内存中。
/etc/rc.local是/etc/rc.d/rc.local的软链接
tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析,它支持针对网络层、协 议、主机、网络或端口的过滤
· 主从模式
slave端启动后,会主动向master端发送sync命令, master会拍摄快照保存到后台
(RDB持久化),同时会缓存保存这段时间的命令,然后将快照和命令发送到slave 端, slave端加载快照文件和缓存命令进行数据同步。
如果master节点宕掉,那么redis集群就无法对外提供写服务。
· 哨兵模式
以主从模式作为基础,在集群加入监控服务器,监控服务器可以是一台也可以是一 个集群。
监控服务器以每秒一次的频率向集群中的master节点、 slave节点和其他的监控节点发送 ping 命令。
如果一个节点距离最后一次有效回复 ping 命令的时间超过了配置文件中规定的时 间,那么这个节点就会被标记为主观下线。
如果一个master节点被标记为主观下线,那么监视master节点的所有监控服务器会 以每秒一次的频率确认master节点确实进入了主观下线状态。如果由足够多的监控 服务器将master节点标记为了主观下线状态,那么这个master节点会被标记为客观 下线状态。
使用哨兵模式时,客户端连接的是哨兵的IP和端口,由哨兵来提供Redis集群的相关 服务,如果master节点挂掉,那么哨兵就会从slave节点中重新选择一个作为master 节点
高可用集群:
高可用集群解决了当数据量过大时,单台服务器的存储容量不够的问题。高可用集 群可以对数据进行分片,将数据储存在多个服务器中。
在cluster集群中,每个节点都可以作为一个主从模式的集群(一主一从或者一主多 从),其中slave只作为备用,不提供服务。客户端可以直接连接master节点进行读 写。
多个节点之间通过网络进行数据共享
cluster集群通过哈希函数进行数据分区,因为Redis数据库是通过 key-value 的方式 进行数据存储,所以在构建cluster集群时,所有的键会根据哈希函数分配到 0-1638 3 的虚拟槽中。
如果master节点被标记为客观下线状态,那么会从他的slave节点中选择一个替换 它,保证集群的高可用。
首先查看服务器的内存容量,然后查看服务器的运行程序和进程,分析是由于程序运行 过多和线程占用造成的内存不足,还是由于服务器本身的硬件资源不足导致的。
也有可能是因为服务器中毒引起的内存不足
使用 top 命令查看一下哪个进程占用的CPU资源过高
找到进程中消耗资源最多的线程id,使用的命令是 top -H -p 进程id
将线程id转换为16进制, 使用命令 printf "%0x\n" 线程id 或者 echo 'obase=16,线程id' | bc查看线程的状态信息作进一步分析,使用命令
进制 jstack 进程id | grep -A 10 线程id的16
可能一:
使用 df -h 命令查看磁盘空间的使用情况,确定哪个目录占用的磁盘空间过高
确定目录后,使用 du -h 命令进行逐级定位,确认到占用空间最大的大文件
查看文件内容,确认一下是否需要保留,如果需要保留就通过压缩导出,不需要保 留可以直接删除,或者对磁盘进行扩容
或者可以直接使用 find 命令查找目录下大于400MB的文件名称,然后进行删除 fi
nd 目录 -size +400M
可能二:
使用 df -h 命令并不能发现大文件,那么可能是文件被删除,但是进程仍然在调用 这个文件
此时可以通过 lsof | grep delete ,找到占用的进程,把这个进程kill掉然后重启 服务器即可
首先将磁盘格式化, CentOS6使用 fdisk 命令, CentOS7使用 gdisk 命令
使用 pvcreate 将新分区创建为物理卷
使用 pvdispalay 列出原有的物理卷组
使用 vgextend 把卷加入到卷组中
使用 df -h 查出需要进行扩展的分区名称,使用 lvresize -L 要扩展的容量 分区名 进行 扩容
使用 xfs_growfs 挂载点 让文件系统进行识别
echo '启动命令 ' > /etc/rc.local
chmod +x /etc/rc.local
#服务有自己的启动脚本文件
mv 脚本启动配置文件 /usr/local/bin
mv 脚本启动配置文件 /usr/local/sbin
systemctl enable 服务名称
Linux服务器的内核文件描述符的个数存在限制(对于不同的Linux服务器类型,数值也不 一样),默认限制在1024左右。这个数值对于不太繁忙的文件是足够的,但是对于web服 务器和加压测试的服务器来说,这个数值是不够用的。因为web服务器和加压测试的服务 器会打开大量的文件,导致文件描述符不够用,进而导致无法访问新的文件。
使用 mount 命令对磁盘进行挂载
将挂载写入 /etc/fstab 配置文件,执行mount -a实现永久挂载
重启系统
find 目录 -ctime +30
#c:表示属性被修改过
#a:表示文件被访问过
#m:表示内容被修改过
#time:按天查找
#min:按分钟查找
/var/log/message :系统启动后的信息和错误日志
/var/log/security :与系统安全相关的日志
/var/log/maillog :与系统邮件相关的日志
/var/log/cron :与定时计划任务相关的日志
/var/log/boot.log & /var/log/dmesg :与系统启动相关的日志
的 , 什么原因有僵尸进程存在,大文件虽然删除了,但是僵尸进程仍然在调用这个文件,所以会显示磁 盘被占满怎么解决使用 lsof | grep deleted 找到删除的文件对应的进程号,使用 kill -9 关闭进程,重启系统
uname -a
cat /proc/cpuinfo cat /proc/version cat /etc/issue
#查看操作系统的版本信息
#查看CPU版本信息
#查看内核版本信息
#查看发行版本信息
因为主机异常或宕机时,集群内的主机都认为是对方出现异常,而导致的抢占资源现象。
解决方案:
添加冗余的心跳线,比如同时使用串行电缆和以太网电缆
设置参考IP,当出现线路中断的情况时,让2个节点都去ping参考IP,不通就说明是 本节点故障, 放弃抢占,让正常的节点接管服务
出现脑裂现象时,直接强制关闭一个节点,备节点没有收到心跳隐患,就会通过单 独的线路关闭 主节点电源
R(TASK_RUNNING) :运行状态
S(TASK_INTERRUPTIBLE) :可中断的睡眠状态
D(TASK_UNINTERRUPTIBLE) :不可中断的睡眠状态
T(TASK_STOPPED) :挂起状态,可以被唤醒
Z(TASK_ZAOMBLE) :僵尸状态,程序已经中止,但是父程序没有调用 wait 函数获取子 进程的相关信息,那么子进程的状态信息仍然保留在内存中,变成僵尸进程
CPU:vmstat,iostat,mpstat,top ,dstat
内存: vmstat,free ,dstat
磁盘io:vmstat,iostat,top ,dsta
netstat -anpt,lsof -i -P
数据库是一个多用户使用的共享资源,所以会存在多用户同时读取一个数据的情况,如果 不加以控制,可能会破坏数据的一致性
锁机制就是为了加强对数据的并发控制
· 锁
高并发情况下造成的io拥堵
数据主从同步失败
使用命令进行锁表: lock
· 解锁: unlock
· 增加数据库的缓存可以避免锁表的情况出现
写入快,因为写操作不会锁定全表,所以在并发较高时,使用innodb引擎效率更高
Centos7以后的网卡图形化管理界面,优先级高于Network
基于linux comtainer的内核技术, go语言开发 http2.0协议 基于namespace的名称空间隔 离,基于cgroup做资源限制,基于chroot做伪根,基于网桥技术的网络通信
Linux企业级服务器的实例。至于Docker,所有容器都必须使用同样的操作系统和内 核。
使用kubernetes中deployment控制器对docker进行缩容
具体的操作方式是修改deployment的yaml文件,改变replication的实例数
组件
apiserver:本质是一个web服务器,通过resetful接口编写,是整个kubernetes集群 的入口
scheduler:调度器,将pod负载到node节点上
controllermanager:维稳集群状态
kubelet:apiserver和CRI之间的接口
etcd:键值对数据库,存储集群状态信息
kube-proxy:通过ipvs 、iptables实现网络分发、负载均衡
插件
coredns:kubernetes集群内部的DNS解析服务
flannel:基于CNI的扁平化网络
Ingress nginx:提供7层负载
批处理任务
job
cronjob
守护进程
有状态: statefulset。持久化存储,基于pv 、pvc实现;持久的网络标识,基于无头 服务实现;有序部署回收或启停
无状
RC
RS:集合式的标签选择器
Deployment:官方支持滚动更新和回滚,通过创建RS来引导Pod
DaemonSet:node节点上只能有一个运行结果
pod是kubernetes集群中最小的单位。 kubernetes集群在创建pod时,首先, kubctl会向
kubeapi发送指令, etcd会存储kubeapi调度kubectl的过程,启动一个基础容器pause,如果 这个pod没有运行节点,那么scheduler会将这个pod调度到node节点上