Linux概念
什么是Linux
1 | Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 |
Unix和Linux有什么区别
1 | Linux 和 Unix 都是功能强大的操作系统,都是应用广泛的服务器操作系统,有很多相似之处,甚至有一部分人错误地认为 Unix 和 Linux 操作系统是一样的,然而,事实并非如此,以下是两者的区别。 |
什么是Linux内核
1 | Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。 |
Linux 的基本组件是什么?
1 | 就像任何其他典型的操作系统一样,Linux 拥有所有这些组件:内核,shell 和 GUI,系统实用程序和应用程序。Linux 比其他操作系统更具优势的是每个方面都附带其他功能,所有代码都可以免费下载。 |
Linux 开机启动过程?
1 | 主机加电自检,加载 BIOS 硬件信息。 |
Linux系统缺省的运行级别
1 | 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 |
Linux的目录结构
1 | 常见目录说明: |
什么是inode
1 | 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存 512 字节(相当于 0.5KB)。 |
Linux的基本组件是什么?
1 | 内核:它是Linux的核心组件,它充当软件和硬件之间的接口。 |
Linux 使用的进程间通信方式?
1 | 管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。信号(signal) 、消息队列、共享内存、信号量、套接字(socket) 。 |
Yum命令
1 | yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。 |
网络
TCP/IP的七层模型
1 | 应用层 (Application):例如,用qq还是微信 |
web服务
常用的Nginx模块,用来做什么
1 | rewrite模块,实现重写功能 |
请问当用户反馈网站访问慢,如何处理?
1 | 1、服务器出口带宽不够用,本身服务器购买的出口带宽比较小。 |
原理知识
http协议通信原理
1 | (1) 建立TCP连接 |
1 | 三次握手 |
Mysql主从复制
1 | mysql主从简介: |
1 | 从库生成两个线程,一个I/O线程,一个SQL线程 |
故障排查
服务器开不了机怎么解决一步步的排查
1 | 从两个方面分析故障原因, |
Linux系统中病毒怎么解决
1 | 1)先将中毒服务器的网络断开;2)查找并删除病毒,top命令找到cpu使用率最高的进程,可以用ps aux 找到病毒文件位置,rm -f 命令删除病毒文件,检查计划任务、开机启动项和病毒文件目录有无其他可疑文件,chkconfig --list | grep 3:on;然后检查开机启动的一个文件,more /etc/rc.local;3)即使删除病毒文件不排除有潜伏病毒,所以最好是把机器备份数据之后重装系统。 |
发现一个病毒文件你删了他又自动创建怎么解决
1 | 1)先断掉网络连接,断了外网,病毒就失去外联的能力,杀掉它就容易的多;断了内网,就不会扩大危害范围; |
常用网络问题排查命令
1 | ping :判断两个网络是否可互通。 |
拉升CPU使用率
1 | cat /dev/zero>/dev/null |
查看多核CPU负载情况及设置负载分配
1 | 执行 yum -y install sysstat 命令安装工具, mpstat -P ALL 1 10命令查看负载情况 |
1 | 如上命令的含义是每秒运行一次 mpstat,一共采样 10 次取平均值,可以明显看出 CPU0 的空闲 idle 明显小于其它 CPUx,而且大部分都消耗在了用户态 usr 上面。各参数含义可以对照下面表格 |
mpstat命令参数 | 解释 |
---|---|
-P | 表示监控哪个CPU,例如mpstat -P 0、mpstat -P 7、mpstat -P ALL、mpstat -P 0,2 |
-A | 等同于-u -I ALL -P ALL |
-I | 可以指定SUM、CPU、SCPU、ALL四个参数,SUM表示每个处理器的中断总数,CPU表示每个核的每秒中断数量, SCPU表示每个核每秒的软中断数量,内核版本在2.6.31之后才支持 |
internal | 相邻的两次采样的间隔时间 |
count | 采样的次数,count只能和delay一起使用 |
mpstat 返回值 | 解释 | 从/proc/stat获得数据 |
---|---|---|
%usr | 用户态下,cpu的利用率 | usr/total*100 |
%nice | 具有nice优先级的用户下,CPU的使用率 | nice/total*100 |
%sys | 显示在kernel内核态执行时发生的CPU利用率百分比。这不包括维护硬件和软件中断所花费的时间 | nice/total*100 |
%iowait | 显示系统有未完成的磁盘I/O请求时,CPU或CPU处于空闲状态的时间百分比 | iowait/total*100 |
%irq | 系统服务于硬中断的时间开销的百分比 | irq/total*100 |
%soft | 系统服务于软中断开销的时间开销百分比 | softirq/total*100 |
%steal | 显示虚拟CPU或CPU在虚拟机监控程序为另一个虚拟处理器提供服务时被迫等待所花费的时间百分比 | steal/total*100 |
%guest | CPU处理虚拟进程的花费的时间开销 | guest/total*100 |
%gnice | gnice/total*100 | |
%idle | CPU空闲百分比 | idle/total*100 |
1 | 继续通过 pidstat 命令来确认一下是不是 mysqld 导致的CPU0负载问题 , 第一列是出现次数,第二列表示第几个CPU2 |
CPU使用率过高的排查方法
1 | Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st |
参数 | 解释 |
---|---|
us(user) | 表示 CPU 在用户运行的时间百分比,通常用户 CPU 高表示有应用程序比较繁忙。典型的用户程序有数据库、Web 服务器等。 |
sy(sys) | 表示 CPU 在内核态运行的时间百分比(不包括中断),通常内核态 CPU 越低越好,否则表示系统存在某些瓶颈。 |
ni(nice) | 表示用 nice 修正进程优先级的用户进程执行的 CPU 时间。nice 是一个进程优先级的修正值,如果进程通过它修改了优先级,则会单独统计 CPU 开销。 |
id(idle) | 表示 CPU 处于空闲态的时间占比,此时,CPU 会执行一个特定的虚拟进程,名为 System Idle Process。 |
wa(iowait) | 表示 CPU 在等待 I/O 操作完成所花费的时间,通常该指标越低越好,否则表示 I/O 存在瓶颈,可以用 iostat 等命令做进一步分析。 |
hi(hardirq) | 表示 CPU 处理硬中断所花费的时间。硬中断是由外设硬件(如键盘控制器、硬件传感器等)发出的,需要有中断控制器参与,特点是快速执行。 |
si(softirq) | 表示 CPU 处理软中断所花费的时间。软中断是由软件程序(如网络收发、定时调度等)发出的中断信号,特点是延迟执行。 |
st(steal) | 表示 CPU 被其他虚拟机占用的时间,仅出现在多虚拟机场景。如果该指标过高,可以检查下宿主机或其他虚拟机是否异常。 |
其他命令查看CPU负载
1 | 查看系统负载的工具:uptime ,w ,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数6, |
日志分析
1 | 日志概述 |
常用日志文件
1 | 1./var/log/boot.log |
在CentOS 7上,你可以使用systemd
的功能来实现对SSH登录失败次数进行监控,并拉黑IP。
1 | 在CentOS 7上,你可以使用fail2ban工具来实现对SSH登录失败次数的监控,并将IP永久拉黑,并将IP及其地域记录到文本文件。 |