目录
进程和线程的区别
进程是资源分配的最小单位,拥有独立的资源,线程是CPU调度的基本单位,共享所属进程的资源,创建进程需要的资源较多,创建线程所需资源较少,一个进程崩溃不会导致系统其他进程,线程崩溃时,可能会导致整个系统崩溃
软硬链接的区别
①Inode号
使用硬链接,链接的文件Inode号一样
使用软连接,链接的文件Inode号不一样
②删除内容变化
使用硬链接,删除源文件,对链接文件没有影响
使用软链接,删除源文件,链接文件失效
③对目录是否生效
使用硬链接不可以对目录进行链接
使用软链接可以对目录进行链接
删除软链接文件的目录时,源文件目录下的内容也会被删除
删除链接目录时,目录后面不加"/"
④占用内存
使用硬链接占用内存大
使用软链接占用内存小
RAID常见类型与使用
RAID0
工作原理:RAID 0使用数据条带化(striping)的方式将数据分散存储在多个磁盘驱动器上,而不进行冗余备份。数据被分成固定大小的块,并依次存储在每个磁盘上。例如,如果有两个驱动器(驱动器A和驱动器B),一块数据的第一个部分存储在驱动器A上,第二个部分存储在驱动器B上,以此类推。
性能:由于可以同时从多个驱动器读取或写入数据,RAID 0提供了较高的读写性能。
磁盘数量:至少两个磁盘
冗余:RAID 0不提供数据冗余,因此如果任何一个驱动器发生故障,所有数据都可能丢失。
RAID1
工作原理:RAID 1使用数据镜像(mirroring)的方式将数据完全复制到两个或多个磁盘驱动器上。当写入数据时,数据同时写入所有驱动器,每个驱动器都具有相同的数据副本。
性能:读取性能有所提升,因为可以并行读取数据;但写入性能可能略低,因为数据需要同时写入多个驱动器。
磁盘数量:至少两个磁盘
冗余:提供数据冗余备份,如果其中一个驱动器发生故障,系统可以继续从剩余的驱动器中读取数据。
RAID5
工作原理:RAID 5使用数据条带化的方式将数据分散存储在多个磁盘驱动器上,并通过分布式奇偶校验实现数据的冗余备份。数据和奇偶校验信息被组织成数据块,其中奇偶校验信息被分布式存储在不同的驱动器上。
性能:通过数据条带化和并行读写操作,RAID 5可以提供较高的数据传输速度和系统性能。同时,由于有奇偶校验信息,可以提供数据冗余。
磁盘数量:至少三个磁盘
冗余:如果其中一个驱动器发生故障,系统可以通过重新计算奇偶校验信息来恢复丢失的数据。
RAID6
工作原理:RAID 6类似于RAID 5,但提供了更高级别的容错能力。它使用两种类型的奇偶校验信息(通常是水平和垂直奇偶校验)来允许在阵列中同时出现两个驱动器故障而不丢失数据。
性能:读写性能与RAID 5相似,但提供了更高的容错能力。
磁盘数量:至少四个磁盘
冗余:允许两个驱动器同时发生故障而不丢失数据。
RAID10
工作原理:RAID 10是先组成RAID 1,然后组成RAID 0。它至少需要4块硬盘,具体做法是把两个RAID 1组成RAID 0。这种模式既有RAID 1的冗余(提供镜像存储),又有RAID 0的性能读写(数据条带形分布)。
性能:提供了高性能的读写能力,因为数据可以在多个RAID 1镜像组之间并行读写。
磁盘数量:至少四个磁盘,通常是偶数
冗余:由于有RAID 1的镜像存储,RAID 10提供了数据冗余备份。如果其中一个RAID 1镜像组中的驱动器发生故障,数据仍然可以从另一个镜像组中恢复。
TCP三次握手与四次挥手
三次握手
四次挥手
DNS解析过程
Apache
centos6和centos7有什么区别?
centos6自带防火墙为iptables,centos7自带防火墙为firewalld
centos6使用init技术作为系统初始化机制,开机过程依赖于shell脚本,启动速度相对较慢,centos7引入了systemd技术作为新的系统初始化机制,采用并行方式启动进程,显著提高了启动速度,兼容init命令降低迁移成本
centos6的文件系统为ext4,centos7的文件系统为xfs
centos6服务通过/etc/inti.d/脚本进行管理,centos7通过systemctl命令管理系统服务,启动速度更快,支持快照和日志分析
apache与nginx的区别
内存
apache占用的存储比较大,属于重量级软件,nginx占用内存小,属于轻量级软件
功能
nginx支持反向代理,负载均衡等功能,apache没有
漏洞
apache漏洞少,nginx的bug比较多
配置文件
apache配置文件更为复杂,nginx的配置文件容易得多
虚拟机和虚拟主机的区别
虚拟机
虚拟机是通过软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统,虚拟机本质是一种系统软件,模拟了完整的硬件环境,可以在其中安装和运行操作系统以及应用软件
虚拟主机
虚拟主机是从服务器上划分出来得到‘虚拟空间’,可以放置网站,存储服务等,虚拟主机是一种服务器空间,他利用虚拟主机技术将一台物理服务器划分为多个虚拟服务器,每个虚拟服务器都具有独立的域名和ip地址,具有完整的internet服务器功能
网络
http协议的特点
支持客户/服务器模式
简单快速:客户请求时,只需要传送请求和路径,通信速度快
灵活:可以支持很多类型的数据对象
无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客服应答后,断开连接。可以节省传输时间
无记忆功能,下载终止之后在下载,会重新进行下载。浏览器上可以继续下载是因为TCP连接的特性
OSI七层模型有哪七层?
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
传输层,网络层,数据链路层分别有什么作用?
传输层:建立端到端的连接,保证数据的传输
网络层:寻找最佳路径,传输数据包
数据链路层:建立局域网,传输数据帧
应用层有哪些协议?网络层有哪些协议?传输层有协议以及区别?
应用层协议:http https smtp snmp dns
网络层协议: ip
传输层协议: tcp udp
哪些网络设备属于网络层,有什么作用?
路由器:寻找网络中的最短路径并进行数据包的传递
哪些网络设备属于数据链路层,有什么作用?
交换机,网桥
交换机用户局域网的创建
写过的脚本?
系统初始化脚本: 换源 关闭防火墙 关闭Selinux 安装常用软件vim,wget,net-tools...
软件安装脚本: 通过调用yum install 命令 结合read 读取用户输入的软件名,进行软件的安装
数据备份脚本: 通过使用xtrabackup对MySQL数据进行备份
日志定时清除脚本: 通过find命令,查找日期大于7天的日志,并使用-exec对查找到的文件进行删除,结合cron进行循环执行
监控脚本:通过监控磁盘内存剩余量,来对系统性能进行监控,当磁盘和内存剩余量过低时,发送报警邮件
书写脚本使用的相关知识?
流程控制: if判断 case判断 for循环 while循环 while read循环读取文件内容
变量: 自定义变量,变量的默认值,变量的切片
数组: 使用关联数组统计用户数量,使用数组存储功能,结合循环进行输出
函数:使用函数将功能进行封装,在后续进行函数的调用
grep和sed和awk来进行系统所需数值的截取
备份和冗灾的区别?什么叫异地备份,什么叫异地冗灾?
冗余(Redundancy)
指系统或组件中存在多余、重复的元素,用于提高系统的可用性和容错能力。冗余的目的是主动防止故障,通过多重设计确保系统在部分组件失效时仍能正常运行。
关键点:冗余是主动的,通过并行设计实现。备份(Backup)
指对数据或系统状态的复制和存储,用于在故障或灾难发生后恢复。备份的目的是事后恢复,通过存储副本确保数据或系统可还原到某个时间点。
关键点:备份是被动的,通过存储副本实现。
异地容灾和异地备份的区别
定义与核心差异
异地容灾(Disaster Recovery, DR)
指在远离主数据中心的地理位置部署完整的业务运行环境,包括硬件、软件、网络和人员,用于在主数据中心发生灾难性故障时,快速接管业务,确保业务连续性。
核心:业务接管能力,强调实时或近实时的故障切换。异地备份(Off-site Backup)
指将数据或系统状态复制并存储在远离主站点的位置,用于在数据丢失或损坏时,恢复数据到某个时间点。
核心:数据恢复能力,强调数据完整性和可恢复性。2. 应用场景与实现方式
维度 异地容灾 异地备份
应用场景 关键业务系统(如金融交易、医疗系统)、数据中心级灾难恢复 数据保护(如数据库、文件系统)、合规性要求(如GDPR)
实现方式 冷备(备用设施)、温备(部分预配置)、热备(实时同步,可快速切换) 磁带备份、云存储、异地数据中心存储
技术重点 数据同步(如存储复制、数据库日志传输)、应用层容灾(如应用集群) 数据传输(如FTP、云同步)、存储管理(如去重、压缩)
典型案例 银行数据中心在异地部署热备站点,确保交易系统7×24小时可用 企业将数据库每日备份到云存储,用于勒索软件攻击后的数据恢复
目的与作用
异地容灾:业务连续性:确保在主站点故障时,业务可快速切换到备用站点,减少停机时间。
灾难恢复:应对地震、洪水等区域性灾难,保护业务不受影响。
示例:AWS在多个区域部署数据中心,客户可通过Route 53实现故障切换。
异地备份:数据保护:防止数据丢失或损坏,确保数据可恢复到某个时间点。
合规性:满足行业法规对数据存储和恢复的要求。
示例:医院将患者数据备份到异地存储,防止因火灾导致数据丢失。
关键区别总结
目标:异地容灾:业务接管,确保系统在灾难发生时继续运行。
异地备份:数据恢复,确保数据在丢失或损坏后可还原。
实现方式:异地容灾:完整的业务环境,包括硬件、软件、网络和人员。
异地备份:数据副本,存储在远离主站点的位置。
作用时间:异地容灾:实时或近实时,在故障发生时立即生效。
异地备份:事后,在数据丢失或损坏后恢复。
成本与复杂性:异地容灾:高成本,需维护备用站点和实时同步机制。
异地备份:相对低成本,主要涉及数据传输和存储。
举例说明
异地容灾:
某银行在A市和B市分别部署数据中心,通过存储复制和数据库日志传输,确保A市数据中心故障时,B市数据中心可在几分钟内接管业务。异地备份:
某企业每天将数据库备份到云存储,当本地数据库因勒索软件攻击被加密时,可从云端恢复前一日的数据。结论:
异地容灾和异地备份都是保护业务和数据的重要手段,但异地容灾侧重于业务接管,异地备份侧重于数据恢复。在实际应用中,两者往往结合使用,以实现更全面的灾难恢复能力。
关于Linux系统优化以及Linux的安全加固?
系统优化
硬件系统优化:
CPU优化
根据应用场合选择合适的CPU架构,如高并发场景选择多核CPU,计算密集型任务选择高频CPU
使用cpufreq工具动态调整CPU频率,平衡性能和功耗
使用taskset绑定关键进程到特定CPU核心,减少上下文的切换
内存优化
增加物理内存,减少交换分区的使用,提升系统响应速度
启用大页内存,减少内存管理开销,适用于数据库等内存密集型应用
调整swappiness参数,降低系统对交换分区的依赖
磁盘I/O优化
使用SSD替代HDD,显著提升I/O性能
配置RAID,提升磁盘读写速度和数据冗余
调整I/O调度器(如noop使用与SSD,deadlind适用于低延迟场景)
内核参数优化:
TCP/IP参数调整
增加TCP窗口大小,提升高延迟网络下的吞吐量
减少TIME_WAIT状态,加快TCP连接回收
调增脏页比例,减少频繁地磁盘写入
文件系统优化
使用noatime选项挂载文件系统,减少文件访问时间戳更新,减低磁盘I/O
调整文件句柄仙子,避免高负载下资源不足
网络性能优化:
网卡参数调整:调整接受/发送缓冲区大小(sysctl -w net.core.rmem_max=16777216),提升网络吞吐量
DNS缓存:
使用nscd服务缓存DNS查询结果,加快频繁的网络请求解析速度
进程管理和调度优化:
进程优先级调整:
使用nice和renice命令调整进程优先级,确保关键任务获得过更多CPU资源
多线程/多进程设计:
优化多线程/多进程设计,减少不必要的上下人切换安全加固
修改最大打开文件数量:
配置/etc/sysctl.conf
fs.file-max=209715
修改配置
sysctl -p
修改最大进程数
配置/etc/sysctl.conf
kernel.pid_max=4194303
sysctl -p
配置/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535
查看dstat每列的含义
CPU使用情况:
usr:用户空间占用cpu的百分比
sys:内核空间占用cpu的百分比
idl:cpu空闲时间的百分比
wai:cpu等待I/O操作的时间百分比
hiq:硬中断占用的cpu时间百分比
siq:软中断占用的cpu时间百分比
磁盘I/O
read:磁盘每秒的读取的数据量(通常以KB/s或者MB/s为单位)
writ:磁盘每秒写入的数据量
网络:
recv:每秒接收的网络数据量(通常以KB/s或者MB/s为单位)
send:每秒发送的网络数据量
分页:
in:每秒从磁盘换入内存的页数
out:每秒从内存换出到磁盘的页数
int:每秒发生的系统中断次数
csw:系统每秒发生的上下文切换次数
查看top每列的含义
基本信息
PID:进程id
USER:进程所属用户
PR:进程优先级
NI:nice值,表示进程的优先级调整值(负值表示提高优先级,正值代表降低优先级)
VIRT:虚拟内存大小,进程占用的总虚拟内存,包括代码,数据和共享库
RES:常驻内存大小,进程实际占用的物理内存
SHR:共享内存大小,使用进程的共享内存部分
S:进程状态;
常见状态:
R:运行中 S:睡眠中 D:不可中断睡眠 Z:僵尸进程 T:停止
CPU和内存使用
%CPU:进程使用的CPU百分比,表示该进程占用CPU时间占总时间的比例
%MEM:进程使用的物理内存百分比,表示该进程占用的内存占总物理内存的比例
时间相关
TIME+:进程使用的CPU时间总和(用户态和内核态)
命令和参数
COMAND:进程的命令名称,可能显示完整路径或者简化名称
ARGS:进程的完整命令行参数
us:用户进程占用的cpu时间
sy:内核进程占用的cpu时间
ni:调整优先级的用户进程占用的cpu时间
wa:I/O等待占用的cpu空间
hi:硬中断占用的cpu时间
si:软中断占用的cpu时间
st:偷取时间,系统中其他用户占用的cpu时间
补充命令:
iostat:
查看磁盘的读取速度和cpu的占用情况
vmstat:
能够提供关于 CPU、内存、I/O 和系统活动的详细信息。
iftop:
iftop 是一个实时网络流量监控工具,类似于 top 命令,但专注于网络接口的带宽使用情况。它能够显示网络连接的源 IP、目标 IP、传输的数据量及流量方向,非常适合用于网络故障排查和流量分析。
mpstat:
监控系统中多核cpu的工具
tcpdump:
流量分析工具