Linux原理总结 。。。更新中
问题:
1、32位和64位Linux系统的区别是什么?
答:64位系统CPU运行速度快,支持更大的内存,能够更好的发挥服务器硬件的性能,提高业务效率
2、描述Linux分区的知识(包括设备名、主分区、扩展分区、文件系统等)?
答:设备名:IDE的硬盘在系统中显示的是hd,SCSI的硬盘在系统中显示的是sd
主分区、扩展分区:一块磁盘最多可以有4个主分区,其中一个主分区可以使用一个扩展分区替换,在扩展分区上划分逻辑分区。
文件类型:磁盘分区只有设置了文件系统类型格式化并挂载上挂载点之后才能存放数据,文件类型包括(ext2、ext3、ext4、lvm、raid、swap、vfat、xfs),其中ext2、ext3、ext4适合Linux系统的文件类型,lvm是一种弹性调整文件系统大小的一种机制,swap相当于虚拟内存,vfat是Windows和Linux共用的一种类型,xfs是在centos7中默认的系统类型他是替换了ext4。
3、什么是挂载点,挂载点的作用是?
答:挂载点是Linux访问磁盘的入口,能够使数据正常写入磁盘
4、企业场景下如何针对不同的业务服务器规划分区方案?
答:网站集群架构的某个节点服务器,数据不太重要(数据存放了多份):一个/boot/(100~200MB),swap(物理内存1.5倍),一个/(剩余空间)
数据库或者存储角色的服务器(有大量的重要数据):一个/boot/,一个swap,一个/(/的大小50~200G),一个/date(剩余空间)
大网站或者门户级别:一个/boot/(100~200MB),一个swap(物理内存1.5倍),一个/(50~200GB),剩余空间保留
5、如何进行最小化安装?
答:不需要的不进行安装
6、系统缺少部分包组,如何补救?
答:使用yum -y groupinstall 包组名
7、Linux系统如何进行优化?
答:不用root登录和管理系统,用普通的用户,使用sudo授权
修改默认的ssh服务器端口,禁止root登录等
定时更新服务器的时间
设置国内yum源
关闭selinux和iptables
调整文件描述符的数量
定时清理邮件临时目录的垃圾文件
精简保留必要的开机自启服务
对Linux内核进行参数优化
锁定关键的系统文件
清空系统的内核版本
为grub菜单设置密码
8、SSH服务连不上,如何排查?
答:首先排查物理链路是不是正常通信的
排查是不是本身SSH服务出现了问题(端口有没有开启)
是不是防火墙的原因
9、描述DNS系统的解析原理?
答:
在Linux系统中可以通过命令来查询理解:
10、描述HTTP状态码?
答:200:服务器成功返回网页
301:永久跳转
403:禁止访问
404:服务器找不到客户端请求的网页
500:内部服务器错误
502:坏的网关
503:服务当前不可用
504:网关超时
11、如何理解网站的并发?
答:网站服务器在单位时间内能够处理的最大连接数
12、IP、PV、UV的概念和区别?
答:IP:独立的IP数,独立的IP数是指不同IP地址访问网站是被计的总次数
PV:访问量,不管IP或者客户端是否相同,用户只要访问网站页面就会被计算PV
UV:独立访客,同一个客户端访问网站被计为一个访客
13、动态、静态和伪静态的特点?
答:静态:有固定的URL,实实在在保存在服务器上,容易被搜索引擎收录、维护困难
动态:容易维护,实现功能多。搜索引擎收录有困难、访问效率不高
伪静态:将动态的URL伪装成静态的URL,通过rewrite规则实现URL重写,有利于搜索引擎抓取,提高用户访问
14、Nginx的特性优点?
答:支持高并发
资源消耗少:在3万并发连接下,开启10个nginx线程消耗内存不到200MB
可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,相当于专业的Haproxy软件和LVS功能
具备Squid等专业缓存软件等的缓存功能
支持异步网络I/O事件模型epoll
15、apache select和nginx epoll模型的区别?
答:在性能上分析select:随着连接数的增加性能急剧下降
Epoll:随着连接数的增加,性能基本没有下降
在连接数上分析select:连接数有限制,最大连接数不超过1024
Epoll:连接无限制
在内在处理机制上分析select:线性轮询
Epoll:回调callback
在开发复杂性分析select:低
Epoll:中
16、nginx虚拟主机概念和类型分类?
答:所谓的虚拟主机,在web服务器里就是一个独立的网站站点,这个站点对应独立的域名(可能是域名也可能是端口)具有独立的程序及资源目录,可以独立的对外提供服务供用户访问
基于域名的虚拟主机、基于端口的虚拟主机、基于IP的虚拟主机
17、LNMP的组合中各组件工作调度逻辑关系?
答:
18、Nginx与PHP通过FastCGI模式通信的原理?
答:
19、Mysql主从复制的原理?
答:主从复制是异步的逻辑的SQL语句级的复制
复制时,主库有一个I/O线程,从库有两个线程,即I/O和SQL线程
实现主从复制的必要条件是主库要开启记录binlog功能
作为复制的所有Mysql节点的sercer-id都不能相同
Binlog文件值记录对数据库有更改的sql语句(来自主数据库内容的变更),不记录任何查询语句
20、Mysql读写分离的原理?
答:简单来说,读写分离就是只在主的服务器上写,在从的服务器上读,基本的原理是让主数据库处理事务性查询,而从数据库出来select查询,数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库中。
21、NFS服务的访问原理流程?
答:首先用户访问网站程序,由程序在NFS客户端上发出存取NFS文件的请求,这时NFS客户端(即执行程序的服务器)的RPC服务就会通过网络向NFS服务器端的RPC服务的111端口发出NFS文件存取功能的询问请求。
NFS服务器端的RPC服务找到对应的已注册的NFS端口后,通知NFS客户端RPC服务
此时NFS客户端获取到正确的端口,并与NFS daemon联机存取数据。
NFS客户端把数据存取成功后,返回给前端访问程序,告知用户存取结果,作为网站用户,就完成了一次存取操作。
22、NFS系统应用的优缺点?
答:优点:简单,容易上手,容易掌握
NFS文件系统内数据是在文件系统之上的,即数据是能看见的
部署快速,维护简单方便,且可控
可靠,在软件层面上看,数据可靠性高,经久耐用
服务非常稳定
缺点:存在单点故障
在大数据高并发的场合,NFS效率、性能有限
客户端认证是基于IP和主机名的,权限要根据ID识别,安全性一般
NFS数据是明文的,NFS本身不对数据完整性进行验证
多台连接时维护麻烦
23、RPC原理?
答:什么是RPC(Remote Procedure Call)字面上的意思是远程过程调用,其实就是一些程序在执行远程联机时,需要用到的程序!简单说,当我们在使用某些服务来进程远程联机的时候,有些信息需要管理与之对应!这个管理的工作就是RPC的任务所在
如果我们将NFS和RPC两者的相关性连接起来,那么:NFS本身的服务并没有提供数据传递的协议,但是NFS却能让我们访问其提供的文件,这其中的原因,就是NFS使用到了一些其他的相关协议,这个传输协议,就是用到了RPC功能。
24、集群的概念、分类?
答:简单的说,集群就是指一组(若干个)相互独立的计算机,利用高速的通信网络组成的一个较大的计算机服务系统,每个集群节点都是运行各自服务的独立服务器,这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一系统的模式加以管理。
集群分为:负载均衡集群(LBC或者LB)
高可用集群(HAC)
高性能集群(HPC)
网络计算集群
25、为什么使用集群?
答:高性能
价格有效性
可伸缩性
高可用性
透明性
可管理性
可编程性
26、不同种类集群的作用?
答:负载均衡集群:
分担用户访问请求和数据流量(负载均衡)
保证业务的连续性(高可用)
应用于web业务及数据库从库等服务器的业务
高可用集群:
当一台机器宕机时,另一台机器接管宕机的机器的IP资源和服务资源
常用于不易实现负载均衡的应用,比如负载均衡器、主数据库、主存储之间
27、keepalived及VRRP协议原理?
答:VRRP中文名字为虚拟路由冗余协议,vrrp的出现是为了解决静态路由的单点故障
VRRP是通过一种竞选协议机制来将路由任务交给某台VRRP路由器的
VRRP用IP多播的方式(默认多播地址是:224.0.0.18)实现高可用对之间的通信
工作时主节点法宝,备节点接包,当备节点接收不到主节点发的包时,就启动接管程序接管主节点的资源,备节点可以有多个,通过优先级竞选,但一般keepalived系统运维工作中都是一对的
VRRP使用了加密协议加密数据,但keepalived官方目前还是推荐用明文的方式配置认证类型和密码
答:keepalived高可用对之间是通过VRRP进行通信的,通过竞选机制确定主备,主的优先级高于备的所以在工作的时候会优先获得所有的资源,备处于等待状态,当主的挂掉了,备的就是接管主的一切,对外提供服务,在keepalived对中只有主的才会一直发送VRRP广播包,告诉备的它还活着,当主的挂掉时,备的监听不到广播包,就会启动相关的服务接管主的保证业务的连续性,时间最快小于1秒。
28、Memcached是什么?原理是?
答:Memcached是一个开源的、支持高性能、高并发的分布式内存缓存系统,由C语言编写,总共2000多行代码
Memcached服务的运行原理是通过在事先规划好的系统内存空间中临时缓存数据库中的各种数据,以达到减少前端业务服务对数据库的直接高并发访问,从而提升大规模网站集群中动态服务的高并发访问能力。
29、网站读取Memcached数据时工作流程?
答:Web程序首先检查客户端请求的数据是否在Memcached缓存中存在,如果存在,直接把请求的数据返回给客户端,此时不在请求后端的数据库
如果请求的数据在Memcached缓存中不存在,则程序会去请求数据库服务,把从数据库中取到的数据返回给客户端,同时把新取到的数据缓存一份到Memcached缓存中
30、网站更新Memcached数据时的工作流程?
答:当程序更新或者删除数据时,会首先处理后端数据库中的数据,并告诉Memcached,对应的旧数据已经失效,从而保证数据的一致性
31、Memcached的特点?
答:协议简单
支持epoll/kqueue异步I/O模型
采用key/value键值数据类型
全内存缓存,效率高
可支持分布式集群
32、Memcached删除机制?
答:不主动检测ITEM对象是否过期,而是在get时才会检查item对象是否过期以及是否应该删除
当删除item对象时,一般不释放内存空间,而是做删除标记,将指针放入slot回收插槽,下次分配直接使用
当内存空间满的时候,将会根据LRU算法把最近最少使用的item对象删除
数据存入可以设定过期时间,但是数据过期后不会被立即删除,而是在get时检查item对象是否过期以及是否应该删除
如果不希望系统使用LRU算法清除数据,可以使用-M,参数
33、监控系统需要监控的数据有那些?
答:系统本地资源
网络服务
其他设备
业务数据
34、Nagios监控工具及原理?
答:Nagios是一款开源的网络及服务的监控工具,其功能强大,灵活性强。能有效的监控Windows、Linux、Unix等系统的主机各种状态信息,以及交换机、路由器等网络设备和主机端口及URL服务等,它会根据不同的业务故障级别发出警告信息,当故障恢复时会发出恢复信息
35、Nagios的特点?
答:监控网络服务
监控主机资源
简单的插件设计模式使用户可以方便的定制检测方法
并行服务检查机制
具备定义网络分层结构的能力,用“parent”主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达的状态
当服务或者主机问题产生与解决后将及时通知
具备定义事件句柄功能
自动的日志回滚
可以支持并实现对主机的冗余监控
可选的web界面用于查看当前的网络状态,通知和故障历史、日志文件等
35、Nagios监控系统家族成员的构成?
答:Nagios监控一般由一个主程序(Nagios),一个插件程序和一些可选的附加程序组成
36、Nagios的附加程序?
答:NRPE组件
存在的位置:工作于被监控端,操作系统为Linux/Unix系统
作用:用于在被监控的远程Linux/Unix主机上执行脚本插件,获取数据回传给服务器端,以实现对这些主机资源和服务的监控
存在形式:守护进程(agent)模式,开启端口为5666
监控的资源:主要监控本地资源
工作原理:通常由Nagios服务器端发起获取数据请求,由check_nrpe插件携带要获取的命令,传给被监控端的nrpe守护进程(默认端口5666)nrpe进程读取nrpe.cfg里对应服务器端发送的命令信息,调用本地插件获取数据,然后返回给Nagios服务器端check_nrep,进而传给Nagios展示到web界面
答:NSClient++组件
存在的位置:用于被监控端为Windows系统的服务器
作用:相当于Linux下的nrpe,监控安装在Windows主机上的agent组件
监控资源:主要监控Windows系统的本地资源
工作形式:通常由服务器端发起获取请求,有check_nt传给被监控端的NSClient++进程,获取数据后返回给服务器端
工作原理:NSClient++的工作原理和NRPE基本相同,只不过适合于Windows被监控端,且服务器端的插件为check_nt,客户端的进程为NSClient++。
37、Nagios监控系统的完整图解
答:
Linux原理总结 。。。更新中的更多相关文章
- 你不知道的Linux(持续更新中)
1.关于GNU.Linux.GNU/Linux三者的关系 GNU 项目创始于一九八四年,旨在开发一个类似 Unix ,且为自由软件的完整的操作系统: GNU 系统.(也可把GNU看成一个自由软件工程) ...
- linux实用指令 | 程序员线上排查必知必会linux指令(持续更新中)
Linux线上排查程序员实用指南 一.乱码问题 二.帮助指令 1. help命令 2. man命令 3. info命令 三.性能监测与优化 1. top命令 参考资源 Linux线上排查程序员实用指南 ...
- Linux指令,更新中
Linux指令 ls 列举文件. ls *.txt:列举所有txt后缀的文件夹. touch 创建文件. $ touch asd.txt fgh.txt $ touch love{1..10}shiy ...
- Linux 集锦(持续更新中)
// 获取文件夹下的代码总行数 find . -name "*.*" | xargs wc -l // ls 排序 ls -lt 按照最后修改时间降序 ls -lrt 按照时间升序 ...
- Linux 系统化学习系列文章总目录(持续更新中)
本页内容都是本人系统化学习Linux 时整理出来的.这些文章中,绝大多数命令类内容都是翻译.整理man或info文档总结出来的,所以相对都比较完整. 本人的写作方式.风格也可能会让朋友一看就恶心到直接 ...
- 第一章:大数据 の Linux 基础 [更新中]
本课主题 Linux 休系结构图 Linux 系统启动的顺序 Linux 查看内存和 CPU 指令 环境变量加载顺序 Linux 内存结构 Linux 休系结构图 Linux 大致分为三个层次,第一层 ...
- Linux知识总结(更新中)
Linux知识总结(更新中) 如何查找特定的文件 find find path [options] params 作用:在指定目录下查找文件 检索文件内容 grep grep [options] pa ...
- Linux 2.6内核中新的锁机制--RCU
转自:http://www.ibm.com/developerworks/cn/linux/l-rcu/ 一. 引言 众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁 ...
- java视频教程 Java自学视频整理(持续更新中...)
视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...
- 史上最全的spark面试题——持续更新中
史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题 版权声明:本文为博主原创文章,遵循C ...
随机推荐
- 12:集合map、工具类
一.map集合 Map:一次添加一对元素.Collection 一次添加一个元素. Map也称为双列集合,Collection集合称为单列集合. 其实map集合中存储的就是键值对(结婚证书), map ...
- 判断字符串是否为正整数 & 浮点小数
/** * 判断字符串是否为数字(正整数和浮点数) * @param str * @return */public static boolean isNumeric(String str) { Str ...
- CGI 和 FastCGI 协议的运行原理
目录 介绍 深入CGI协议 CGI的运行原理 CGI协议的缺陷 深入FastCGI协议 FastCGI协议运行原理 为什么是 FastCGI 而非 CGI 协议 CGI 与 FastCGI 架构 再看 ...
- HttpClient实现HTTP文件通用下载类
import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import org.apache. ...
- 递归打印目录层次(java版)
import java.io.File; public class Test { /** * * @param fileDir 根目录 * @param num 递归层次 */ private sta ...
- 机器学习基石笔记:12 Nonlinear Transformation
一.二次假设 实际上线性假设的模型复杂度是受到限制的, 需要高次假设打破这个限制. 假设数据不是线性可分的,但是可以被一个圆心在原点的圆分开, 需要我们重新设计基于该圆的PLA等算法吗? 不用, 只需 ...
- Liferay7 BPM门户开发之7: Activiti中的重要概念和主要数据库结构
流程的人员参与角色: Assignee :签收者(即待办人) Candidate:候选人 Owner:拥有者 Starter:启动者 participant:参与者,包含查阅 流程变量的类型: Str ...
- 使用ES6的Promise完美解决回调地狱
相信经常使用ajax的前端小伙伴,都会遇到这样的困境:一个接口的参数会需要使用另一个接口获取. 年轻的前端可能会用同步去解决(笑~),因为我也这么干过,但是极度影响性能和用户体验. 正常的前端会把接口 ...
- Java运行环境(win10)
系统安装Java后,配置运行环境,我的系统是win10,之前随便装了,没想到最近执行javac命令报错,(网上找了一堆都没用)处理方式如下: 环境变量-新建:变量名:%JAVA_HOME% 变量值: ...
- Java 架构师+高并发+性能优化+Spring boot大型分布式项目实战
视频课程内容包含: 高级 Java 架构师包含:Spring boot.Spring cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.Zer ...