一、文件系统EXT3,EXT4和XFS的区别:
1. EXT3
(1)最多只能支持32TB的文件系统和2TB的文件,实际只
能容纳2TB的文件系统和16GB的文件
(2)Ext3目前只支持32000个子目录
(3)Ext3文件系统使用32位空间记录块数量和i-节点数量
(4)当数据写入到Ext3文件系统中时,Ext3的数据块分配器
每次只能分配一个4KB的块
2. EXT4
EXT4是Linux系统下的日志文件系统,是EXT3文件系统的
后继版本。
(1)Ext4的文件系统容量达到1EB,而文件容量则达到
16TB
(2)理论上支持无限数量的子目录
(3)Ext4文件系统使用64位空间记录块数量和i-节点数量
(4)Ext4的多块分配器支持一次调用分配多个数据块
3. XFS
(1)根据所记录的日志在很短的时间内迅速恢复磁盘文件
内容
(2)采用优化算法,日志记录对整体文件操作影响非常小
(3) 是一个全64-bit的文件系统,它可以支持上百万T字
节的存储空间
(4)能以接近裸设备I/O的性能存储数据
centos7.0开始默认文件系统是xfs,centos6是ext4,centos5是ext3
ext3和ext4的最大区别在于,ext3在fsck时需要耗费大量时间(文件越多,时间越长),而ext4在fsck时用的时间会少非常多
ext4是第四代扩展文件系统(英语:Fourth EXtended filesystem,缩写
为ext4)是linux系统下的日志文件系统,是ext3文件系统的后继版本
ext4的文件系统容量达到1EB,而文件容量则达到16TB,这是一个非常大
的数字了。对一般的台式机和服务器而言,这可能并不重要,但对于大型磁盘阵列的用户而言,这就非常重要了。
ext3目前只支持32000个子目录,而ext4取消了这一限制,理论上支持无限数量的子目
xfs是一种非常优秀的日志文件系统,它是SGI公司设计的。xfs被称为业界最先进的、最具可升级性的文件系统技术
xfs是一个64位文件系统,最大支持8EB减1字节的单个文件系统,实际部署时取决于宿主操作系统的最大块限制。对于一个32位Linux系统,文件和文件系统的大小会被限制在16TB
xfs在很多方面确实做的比ext4好,ext4受限制于磁盘结构和兼容问题,可扩展性和scalability确实不如xfs,另外xfs经过很多年发展,各种锁的细化做的也比较好
二、.ko 内核模块功能函数 .so应用模块
搭服务要应用模块像依赖包一样
查看模块的命令:
[root@localhost /]# lsmod
Module Size Used by
ip6t_rpfilter 12595 1
ipt_REJECT 12541 2
nf_reject_ipv4 13373 1 ipt_REJECT
ip6t_REJECT 12625 2
nf_reject_ipv6 13717 1 ip6t_REJECT
xt_conntrack 12760 13
ip_set 36439 0
nfnetlink 14696 1 ip_set
ebtable_nat 12807 1
ebtable_broute 12731 1
bridge 136173 1 ebtabl
[root@localhost /]# modprobe bridge 加载模块
modprobe -r 模块名称 从内核删除模块(有依赖的不能删)
三、在主机间复制文件。他使用 ssh(1)作为数据传输。而且用同样认证和安全性。 scp将在认证中请求输入密码所有的文件可能需要服务器和用户的特别描述来指明文件将被复制到/从某台服务器。两个远程登录的服务器间的文件复制是允许的。
scp -r root@10.18.44.190:/var/ftp/CentOS7-Base-163.repo
/etc/yum.repos.d
四、nginx 和 apache 的区别
1.静态页面并发,nginx比apache大的多
2.轻量级别的web 服务器,速度快
3.都能作反向代理 但是nginx 作反向代理性能好,用的多
4.apache 稳定性高
五、查看开机启动状态
systemctl list-unit-files
六、apache 工作在进程模式和线程模式的区别
1.进程独占内存,线程共享内存
2.进程可以独立存在,线程来源于进程
3.进程的稳定性比线程高
4.线程模式的并发量比进程模式大
七、家目录被删了修复账户:
[root@localhost ~]# useradd xiaoguo
[root@localhost ~]# rm -rf /home/xiaoguo
[root@localhost ~]# cp -r /etc/skel /home/xiaoguo
[root@localhost ~]# chown xiaoguo.xiaoguo /home/xiaoguo
[root@localhost ~]# chmod 700 /home/xiaoguo
[root@localhost ~]# su - xiaoguo
八、ginx的500,502,504错误解决方法
一、解决500错误:
1、500错误
指的是服务器内部错误,也就是服务器遇到意外情况,而无法履行请求。
2、500错误一般有几种情况:
(1)web脚本错误,如php语法错误,lua语法错误等。
(2)访问量大的时候,由于系统资源限制,而不能打开过多的文件
3、一般分析思路:
(1)查看nginx error log ,查看php error log
(2)如果是too many open files,修改nginx的worker_rlimit_nofile参数,
使用ulimit查看系统打开文件限制,修改/etc/security/limits.conf
(3)如果是脚本的问题,则需要修复脚本错误,并优化代码
(4)各种优化都做好,还是出现too many open files,那就要考虑做负载
均衡,把流量分散到不同服务器上去了
二、解决502,504错误
1、使用nginx代理,而后端服务器发生故障;或者php-cgi进程数不够用;php执行时间
长,或者是php-cgi进程死掉;已经执行fastCGI等使用情况都会导致502、504。
2、502 Bad Gateway 是指请求的php-fpm已经执行,但是由于某种原因而
没有执行完毕,最终导致php-fpm进程终止。
一般来说,与php-fpm.conf的设置有关,也与php的执行程序性能有关,网站的访问
量大,而php-cgi的进程数偏少。针对这种情况的502错误,只需增加php-cgi的进程数。
具体就是修改/usr/local/php/etc/php-fpm.conf文件,将其中的max_children
值适当增加。
这个数据要依据你的VPS或独立服务器的配置进行设置。一般一个php-cgi进程占20M
内存,你可以自己计算下,适量增多。
/usr/local/php/sbin/php-fpm restart 然后重启一下.
3、504 表示超时,也就是客户端所发出的请求没有到达网关,请求没有得到可以执行的php-fpm
三、解决503错误
503 Service Temporarily Unavailable错误
单个ip并发设置过小会导致503报错
================查看当前服务器的版本===================
[root@cat mycat]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
================查看网卡速率========================
[root@cat nginx]# ethtool ens33
Settings for ens33:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
为什么要做主从复制?
1、在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。
2、做数据的热备
3、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。
mysql主从复制原理
1.数据库有个bin-log二进制文件,记录了所有sql语句。
2.我们的目标就是把主数据库的bin-log文件的sql语句复制过来。
3.让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。
4.下面的主从配置就是围绕这个原理配置
5.具体需要三个线程来操作:
binlog输出线程。每当有从库连接到主库的时候,主库都会创建一个线程然后发送binlog内容到从库。
在从库里,当复制开始的时候,从库就会创建两个线程进行处理:
从库I/O线程。当START SLAVE语句在从库开始执行之后,从库创建一个I/O线程,该线程连接到主库并请求主库发送binlog里面的更新记录到从库上。从库I/O线程读取主库的binlog输出线程发送的更新并拷贝这些更新到本地文件,其中包括relay log文件。
从库的SQL线程。从库创建一个SQL线程,这个线程读取从库I/O线程写到relay log的更新事件并执行。
可以知道,对于每一个主从复制的连接,都有三个线程。拥有多个从库的主库为每一个连接到主库的从库创建一个binlog输出线程,每一个从库都有它自己的I/O线程和SQL线程。
SVN与Git优缺点比较(属面试常问提)
1.SVN优缺点
优点:
1、 管理方便,逻辑明确,符合一般人思维习惯。
2、 易于管理,集中式服务器更能保证安全性。
3、 代码一致性非常高。
4、 适合开发人数不多的项目开发。
缺点:
1、 服务器压力太大,数据库容量暴增。
2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
3、 不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。
2.Git优缺点
优点:
1、适合分布式开发,强调个体。
2、公共服务器压力和数据量都不会太大。
3、速度快、灵活。
4、任意两个开发者之间可以很容易的解决冲突。
5、离线工作。
缺点:
1、学习周期相对而言比较长。
2、不符合常规思维。
3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
jenkins
Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。
意思是我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址URL,将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发布到容器中。
ansible
1. 几种常用运维工具比较
Puppet
—基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱
SaltStack
—基于 Python 开发,采用 C/S 架构,相对 puppet 更轻量级,配置语法使用 YAML,使得配置脚本更简单
Ansible
—基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用YAML 及 Jinja2
模板语言,更强的远程命令执行操作
Ansible 基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。
开机启动
BIOS启动引导(从mbr中装载启动管理器grub)-->GRUB启动引导(装载kernel和initrd到内存)--》内核启动参数-sys init 初始化