日访问量 100 万,小时点击量 4-5 万,最高 QPS 1000 左右, UV 量是 20-30 万, IP 量为 55 万
6. PXE内DHCP工作原理
1 、客户端向 dhcp 服务器发送广播,请求 ip 地址
2 、 dhcp 服务器响应客户端请求,分配地址池中的可用地址给客户端
3 、 dhcp 服务器提供 tftp 服务器的地址,引导客户端去 tftp 服务器取得系统所需的引导文件
4 、客户端需要系统启动的内核文件和驱动文件
5、 当操作系统安装之后需要一些软件包,客户端向 ftp 服务器请求(寻找软件包)
租期到达 50% 跟服务器联系更新租约,客户机给服务器发送 request 包,要求更新租约
若服务器没有相应时,租期到达 87.5% 的天数时会再次联系服务器更新租约
若服务器没有相应时,租期到达 100% ,释放然后重新 discover
7. 二层三层转发原理
层:数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能;比如数据传输排序功能,硬件地址,就是mac 地址
三层:网络层 :进行逻辑地址寻址,实现不同网络之间的路径选择;逻辑地址寻址,即 IP 地址
协议: IP , ICMP , IGMP,ARP,RARP 和路由协议, RIP 、 OSPF 、 GBP 、 IS-ISVRRP 等
物理寻址 mac 地址,逻辑地址 ip ,基于 ip 和端口的转发
还有一些路由协议
封装和解封装的过程
8. 物理交换机可以做什么?
控制服务器的网络接入,实现网络隔离,流量监控,Qos配置,流量优化等
9. 网络通信五元组
源端口、源地址、协议号、目的端口、目的地址
10. 网络故障排查简单思路
查看网络是否正常,一般先确保以下设置是否正确
首先查看物理层问题,例如网线是否连接正确
查看本机配置,如 ip 地址和子网掩码是否设置正确 ( ifconfig ),默认网关是否设置正确 (route) ,域名服务器是否设置正确
然后要确认网卡本身是否能正常工作?利用 ping 工具可以确认这点。输入 ping 127.0.0.1 ,然后看是否能正常ping 通?这里的 127.0.0.1 被称为主机的回环接口,是 TCP/IP 协议栈正常工作的前提。如果 ping 不通,一般可以证实为本机TCP/IP 协议栈有问题,自然就无法连接网络了。不过,出现这种现象的概率比较低。
要确认网卡是否出现了物理或驱动故障,使用 ping 本机 IP 地址的方式,如果能 ping 通则说明本地设备和驱动都正常。
要确认是否能 ping 通同网段的其他主机。这一步主要是确认二层网络设备(比如交换机或者 HUB )工作是否正常。如果ping 不通往往说明二层网络上出现了问题,可能涉及交换机的端口工作模式, vlan 划分等因素
要确认是否能 ping 通网关 ip 。如果数据包能正常到达网关,则说明主机和本地网络都工作正常。
确认是否能 ping 通公网上的 iP ,如果可以则说明本地的路由设置正确,否则就要确认路由设备是否做了正确的nat或路由设置。
确认是否能 ping 通公网上的某个域名,如果能 ping 通则说明 DNS 部分设置正确。
工作中主要遇到的情况多是ip地址冲突或mac地址发生冲突了,一般还是多借助wireshark抓包查看。通过查看arp包所回应的mac地址是否是正确的设备地址以检测是否是ip地址发生冲突;过滤物理mac地址,查看是否存在不同ip的情况以检测是否mac地址发生冲突。
二 Linux
1. 简述Raid0、Raid1、Raid5、Raid10的区别
RAID:redundant array of independent disks, 独立冗余磁盘阵列
磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上
RAID : 提升存储性能(硬盘的读写效率),提供数据备份技术;按照不同方式组合形成一个硬盘组
LVM : 只是提高磁盘管理的灵活性,并不能提升硬盘的读写效率和提供数据备份技术
1.1 RAID的作用(为什么要用RAID,RAID的场景)
提高存储性能
实现冗余
目前大中型企业都在使用的技术, RAID+LVM 结合使用
1.2 RAID10和01的区别
RAID10: 是先做镜像再作条带化,是对虚拟磁盘实现镜像
RAID01 :是先做条带化再作镜像,本质是对物理磁盘实现镜像;先保证写的速度,再保证读的速度
1.3 简述RAID5、RAID1、RAID0的优势与使用场景?
RAID5, 可损失一块盘 , 数据安全保障程度比 RAID1 低而磁空间利用率要比 raid1 高 RAID5 可以理解为是 RAID 和RAID1的折中方案 , 适合对性能和余都有一定要求 , 又都不是十分高的情况。 mysql 的主从库都可以 , 存储也可以, 普通的服务器为了减少维护成本 , 又保持一定余和读性能都可以做 RAID5
RAID1, 通过硬盘数据镜像实现数据的冗余 , 保护数据安全 , 在两块盘上产生互为备份的数据 , 当原始数据繁忙时, 可直接从镜像备份中读取数据 , 因此 RAID1 可以提升读取性能。 RAID1 是硬盘中单位成本最高的 , 但提供了很高的数据安全性和可用性, 当一个硬盘失效时 , 系统可以自动切换到镜像硬盘上读 / 写 , 并且不需要重组失效的数据。
RAID0, 无任何冗余 , 坏 1 块盘 , 整个 RAID 就不能用了。适用于大规模并发读写 , 但对数据安全性要求不高的情况, 如 mysql slave( 数据块从库 ), 集群的节点 RS( 服务员 ) 。
2. linux系统中最小存储单元
raid 内 chunk 512k
PE 4M
扇区 512b( 字节 )
Block 4k
3. linux多种命令查询
查看磁盘空间 | df -h: 磁盘空间 df -i: inode空间 |
系统负载分担 | cat /proc/loadavg top | head -1 |
当前系统正在使用的swap分区情况 | swapon -s swapon cat /proc/swaps:可以理解为swapon -s;其实调用的/proc/swap 这个文件查看当前所有系统启用的 |
查看内核的版本(2种方式) | cat /proc/version:查看内核的版本 uname -r:操作系统的发行号 |
查询硬件平台 | uname -m:硬件平台 uname -a:用于显示系统信息 |
查看linux系统的路由表方式 | netstat -r route |
重新获取某项服务 | systemctl restart dhcpd/named rndc reload |
查看系统当前所有服务 | netstat -anp |
rndc reload
是用于BIND DNS服务器(Berkeley Internet Name Domain)的一个命令,它属于 rndc
(Remote Name Daemon Control)工具的一部分。rndc
提供了对DNS服务器的远程或本地控制接口。
当你执行 rndc reload
命令时,它会重新加载BIND配置文件(通常为named.conf
和相关的区域文件),而无需停止并重启整个DNS服务。这样可以在不中断服务的情况下应用新的配置更改,是一种非常实用且快速的更新DNS配置的方式。
注意:要使用 rndc
命令,你需要先正确配置 rndc.key
文件以实现安全通信,并在 named.conf
中设置相应的 controls
部分来引用这个密钥文件。只有在完成这些基本配置后,你才能成功执行 rndc reload
等命令操作DNS服务器。
4. Linux开机的顺序
第一步:上电自检:硬件自检
当你按下电源按键后计算机硬件会读取 BIOS 或 UEFI BIOS 来加载硬件信息及进行硬件系统的自我测试,根据BIOS设置来取得第一个可启动的设备;台式机嘟的长鸣声表示自检失败,坏了;底层是汇编语言BIOS:全称应该是 ROM - BIOS ,基本的输入输出系统,在主板上的 rom 芯片内,很小的一个程序;记录在CMDS芯片上, RAM 随机存储器
第二步: MBR 引导
读取并执行第一个扇区 MBR 的启动引导程序(可以是 grub2 ,也可以是 spfdisk );系统会主动去读第一个可启动的设备(BIOS 设定),此时就可以读入启动引导程序了,启动引导程序可以指定使用哪个内核;这时控制权给MBR ,即 boot loader 主导权寻找内核
第一个扇区有 512 字节的 MBR ;以下三个一共 512 字节
① 、存放 boot loader (系统启动引导程序), 446 字节;
boot loader 主要作用:
寻找内核和加载内核:一个硬盘第一个扇区是 MBR , MBR 内有 boot loader ,想要访问 windows ,这时是需要boot loader去访问 window 自己的 loader ,由 window 自己的 loader 寻找和加载内核
可以提供用户的选项,即 GRUB 菜单,开机页面选择用户进入系统
② 、记录在分区表里面, 64 字节, 4 个分区,一个分区 16 个字节
③ 、是一个 16 进制的字段, 2 字节; 55AA 或者 AA55
第三步: GRUB 菜单
寻找内核,系统控制权递给 grup 以后,将会显示提供用于选择,并根据选项加载 linux 内核文件; MBR 找到程序之后,BIOS 就结束了,开始 grub2 ; Centos 7 是 GRUB 2 ;
主要使用的是 grup2 ,配置文件是 grup.cfg ,在操作系统中最好先备份
第四步:加载内核( kernel )
从本地硬盘加载内核,此时控制权在内核;
检测内核(动态加载内核模块: modules :存放加载硬件驱动程序)并找到内核;
找到内核之后 boot loader 加载内核时的同时产生 initramfs :虚拟文件系统,需要通过 initramfs 挂载伪 根并加载驱动程序;
驱动程序存在之后 initramfs 消失,此时系统挂载真正的根和文件系统安装驱动程序
modules :在 /lib 内核下
init 进程初始化:是 Centos6 系统的,是一个个运行服务,且个别服务有依赖性
目前使用的是 Centos 7 : systemd : systemd 是 LINUX 操作系统的一种 init 软件,优势是可以并行运行服务
第五步: systemd 进程
启动了第一个程序, systemd ,进程号 PID=1 ;路径: /lib/systemd/systemd ;
① 、硬件是内核管, systemd 启动之后为用户启用一个可以软件环境
② 、后面的服务由 systemd 负责(三个单元 sysint 、 multi user 、 getty ):
对系统进行初始化 sysint :用户名,网络基本设置,网络格式
进入命令行模式: multi-user ,开始执行系统自启动的服务
用 getty 单元给用户提供登录环境,进入系统登录页面
③ 、最后通过 graphical 启动图形界面
5. Centos6 和 Centos7 的区别
Centos6 自带的服务是 service ,网卡是 eth0 标识
Centos7 自带的服务是 service 和 systemctl ,网卡是 ens33 标识
en 标识 ethernet
s :热插拔网卡; USB 之类的扩展槽索引号
33 :是网卡的编号
lo 代表:本地回环, ip 地址: 127.0.0.1 ,即 localhost ;子网掩码: 255.0.0.0
6. 硬链接和软链接的区别
硬链接
相当于备份,可以用不同的文件名访问同样的内容
对文件内容进行修改,会影响到原文件;但是,删除一个文件名,不影响另一个文件名的访问
硬链接的 inode 号一样
软链接
指向原始文件所在的路径,又称为符号链接
对文件内容进行修改,会影响到原文件;
文件 A 和文件 B 的 inode 号码虽然不一样,但是文件 A 的内容是文件 B 的路径。
7. PID有哪些状态,五大状态
1 、运行状态 / 正在运行状态
2 、可中断睡眠状态:暂时无工作状态,等到被唤醒
3 、不可中断睡眠状态:工作状态时,不可被打扰的状态
4 、僵尸进程 : 将死状态,进程存在又无法结束;这时需要找问题源头
5 、停止状态 / 暂停状态:
6 、已死 /dead 状态(此状态仅做了解)
两个异常的进程:僵尸进程和孤儿进程
僵尸进程:子进程完成工作之后,父进程无法接收子进程的信息;对系统是有害的,一直占用资源;解决办法:找到父进程,结束父进程,就变成孤儿进程;
孤儿进程:子进程完成工作之后,找不到父进程接收子进程的信息,系统会让进程号 PID=1 ,即 systemd 接收信息
8. 你平时对系统会怎么优化(五大负载)
8.1 cpu 使用率
(查看进程,占比大的进程是否可以优化): vmstat 、 sar 、 iostat 、 top
负载优化: top 、 uptime 、 w
sar -u 1 3 :查看 cpu 的使用情况,间隔 1s ,监测 3 次
–u: 输出 cpu 使用情况和统计信息
8.2 内存 优化
free 、 vmstat
8.3 磁盘优化
① : RAID :提升存储性能(硬盘的读写效率),提供数据备份技术;按照不同方式组合形成一个硬盘组
② : LVM :只是提高磁盘管理的灵活性,并不能提升硬盘的读写效率和提供数据备份技术磁盘水位: fdisk 、 df -hT
raid(独立冗余磁盘阵列 )
软 raid 和硬 raid
硬 RAID 在硬件层面上通过阵列卡实现 RAID 功能;实现步骤:在服务器上面插入磁盘阵列卡,阵列卡上面插入磁盘,开机-- 配置 RAID-- 安装系统; RAID 卡有自己的处理器 CPU
软 RAID 在系统上用 mdadm 工具去创建和管理
总结:软 RAID 依存于 OS ,硬 RAID 独立于 OS
软 raid 的分类和优势,最小由几块磁盘组成
8.4 I/O优化
( 命令需要 yum 安装,系统内无自带 ) : iotop iostat
yum install sysstat
yum install iotop
8.5 网络优化
系统: ifconfig 、 ip 、 tcpdump 、 natstat
优化端口范围
查询系统可分配的端口号: cat /proc/sys/net/ipv4/ip_local_port_range
更改配置文件: vim /etc/sysctl.conf
添加: net.ipv4.ip_local_port_range = 32768 60999
内核优化:文件打开数优化、 tcp 参数优化
打开文件数 临时: ulimit–n 65535 永久: vim /etc/security/limits.conf
8.6 cpu报警超90%应该怎么办
1. 首先使用 top 命令去定位 cpu 占比最高的进程
2. 其次使用 “lsof -p 进程号 ” 查询占比高的进程号所占用的进程内容,若是异常进程直接 kill 杀死,若是正常服务进程占比高的,一方面要考虑是否受到攻击了,比如说挖矿,挖矿就是会隐藏在一个文件里面去占用你的cpu ,比如 mysql 里面也会以 MYI 的文件格式存在;另一方面可以看下是否服务进程需要优化,比如说 nginx 进程占比较高,那就要看是否需要优化 nginx
nginx优化网页访问速度:
① :在可以重启的状态下,为避免同一客户端长时间占用连接,造成资源浪费,可在 http 段设置相应的连接超时参数 keepalive_timeout ,实现控制连接访问时间
② :当 Nginx 将网页数据返回给客户端后,可针对静态网页设置缓存时间,通过在配置文件内的 http 段内的 server 段内添加 location ,更改字段 expires 1d 来实现;避免重复请求,加快了访问速度
③ :在高并发场景,需要启动更多的 nginx 进程以保证快速响应,避免造成阻塞;配置 worker_processes 开启多进程
④ :可在配置文件中加入相应的压缩功能参数对压缩性能进行优化,以节约网站带宽,提升用户的访问体验
⑤ :若 nginx 的 PHP 解析功能实现是交给 FPM 处理的,为了提高 PHP 的处理速度,要根据服务器的内存与服务负载进行FPM 模块参数调整;比如增加 dynamic( 动态 ) 的方式产生 fpm 进程
nginx服务器本身安全性的优化
① :在生产环境中,需要隐藏 Ngnx 的版本号,以避免安全漏洞的泄漏 ; 可以通过 http 端内的添加
server_tokens off 来关闭显示版本号,或者通过修改源码
② :需要有用户与组的支持,用以实现对网站文件读取时进行访问控制;这里有两种方法进行配置
第一种:通过编译 nginx 时指定用户与组,即修改 ./configure 后面指定用户与组的参数
第二种:修改配置文件指定用户与组
③ :为了方便掌握 Nginx 运行状态需要进行日志分割;通过编写脚本来实现。
④ :设置防盗链,为了防止别人直接从你网站引用图片等链接,消耗了你的资源和网络流量
9. 一台 Linux 系统初始化环境后需要做一些什么安全工作
1 、添加普通用户登陆,禁止 root 用户登陆,更改 SSH 端口号:
修改 SSH 端口不一定绝对哈。当然,如果要暴露在外网,建议改下。
2 、服务器使用密钥登陆,禁止密码登陆。
3 、开启防火墙,关闭 SElinux ,根据业务需求设置相应的防火墙规则。
4 、装 fail2ban 这种防止 SSH 暴力破击的软件。
5 、设置只允许公司办公网出口 IP 能登陆服务器 ( 看公司实际需要 )
也可以安装 VPN 等软件,只允许连接 VPN 到服务器上。
6 、修改历史命令记录的条数为 10 条。
7 、只允许有需要的服务器可以访问外网,其它全部禁止。
8 、做好软件层面的防护。
8.1 设置 nginx_waf 模块防止 SQL 注入。
8.2 把 Web 服务使用 www 用户启动,更改网站目录的所有者和所属组为 www
10. Linux系统中常用的十条命令
检测系统整体的负载、承受能力 :top 、 uptime 、 w
cpu ( cpu 、内存、 pid 、 pid 状态 ):vmstat 、 sar 、 iostat 、 top
内存: free 、 vmstat ;比如: free -m
磁盘水位: fdisk 、 df -hT
I/O : ( 命令需要安装,系统内无自带 ) : iotop iostat
系统: ifconfig 、 ip 、 tcpdump
查询 pid 号: ps
查询文件大小: du -sh
挂载 :mount
lvm 内的命令: pvcreate 、 lvcreate
软 raid 命令: mdadm
查询用户登录的身份: who 、 w 、 who am i
常用的复制命令: mv 、 cp 、 scp 、 echo 、 cat 、 dd
查询服务端口: netstat 、 lsof
ulimit 、 uname -r 、 grep 、 systemctl 、 watch
10.1 lsof -p 进程号
参数详解
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
FD列中的文件描述符:
cwd值:表示应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改,txt类
型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的/sbin/init程序。其次数值
表示应用程序的文件描述符,这是打开该文件时返回的一个整数。如上的最后一行文件/dev/initctl,其文
件描述符为 10。
U:表示该文件被打开并处于读取/写入模式,而不是只读 ? 或只写 (w) 模式。同时还有大写 的W 表示该应
用程序具有对整个文件的写锁。该文件描述符用于确保每次只能打开一个应用程序实例。初始打开每个应用程
序时,都具有三个文件描述符,从0到2,分别表示标准输入、输出和错误流。所以大多数应用程序所打开的文
件的FD都是从3开始。
Type列:
文件和目录分别称为REG和DIR。
CHR表示字符;(fopen,打开文件)
BLK表示块设备;
UNIX、FIFO和IPv4,分别表示UNIX 域套接字、先进先出(FIFO)队列和网际协议(IP)套接字。
FIFO表示先进先出;(popen,pipe)
inet表示网际协议(IP)套接字tcp/udp;(socket)
netlink表示netlink
10.2 磁盘要满了怎么办
首先 df -hT---> 找到哪款磁盘 90%
找到对应的目录 du ---> 查看哪个目录、文件占用的空间最大,考虑是否删除 / 先备份再删除
rm -rf 指定删除一些冗余的文件 释放磁盘的空间
若批量删除的内容百万级超大时,可以使用 raync -avz --delete /opt
--delete :删除目标位置有的而源目标没有的文件
最后还要 kill -9 大的文件进程号,即可
10.3 写文件的时候得到“文件系统已满”错误信息,但df显示还有剩余空间。
在磁盘建立文件是需要两个条件( 1 )磁盘空间 ( 2 ) inode ; df 显示有剩余空间那就是 indoe 分配完了,导致报此错误信息 ;可以删除一些不用的文件来释放indoe 。
10.4 在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种问题。 后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满 (IUsed=100%),导致系统无法创建新目录和文件。
查找原因
/data/cache 目录中存在数量非常多的小字节缓存文件,占用的 Block 不多,但是占用了大量的 inode 。
解决方案
1 、删除 /data/cache 目录中的部分文件,释放出 /data 分区的一部分 inode 。
2 、用软连接将空闲分区 /opt 中的 newcache 目录连接到 /data/cache ,使用 /opt 分区的 inode 来缓
解 /data 分区 inode 不足的问题:
ln -s /opt/newcache /data/cache
用删除inode的方式删除文件
find -inum 391866 -exec rm {} \;
10.5 tcpdump:什么参数,使用的场景
tcpdump -i ens33 -nnX port 21 (ftp 为什么不安全 )
tcpdump :是 linux 系统的抓包工具,默认安装
-i:监听
-nn:ip及端口号直接以数字显示,而非主机名与服务名称
-X :可以列出十六进位 (hex) 以及 ASCII 的封包内容,对于监听封包內容很有用
10.6 实时查看日志的命令
tail -f
journalctl -f
10.7 IO问题排查思路及工具
1 、磁盘性能指标
指标 1 : IOPS=r/s+w/s ,即每秒读写次数;
指标 2 : 吞吐量 =rkB/s+wkB/s ,即每秒读写数据量;
指标 3 : 使用率,是指磁盘忙处理 I/O 请求的百分比。过高的使用率(比如超过 80% )通常意味着磁盘 I/O 存在性能瓶颈;
指标 4 : 响应时间,是指从发出 I/O 请求到收到响应的间隔时间;
2 、 IO 问题排查思路
首先,查看系统 IO 情况,确认 IO 异常指标;( top/iostat )
其次,查看各进程 IO 使用情况,确认导致指标异常的进程;( iotop/pidstat )
最后,分析进程的 IO 行为(文件、磁盘读写),确认问题根源;( strace + ioprofile/lsof )
3 、使用 iostat 命令查看系统 IO 情况
await : IO 请求平均响应时间(队列排队时间 +IO 处理时间),一般系统 I/O 响应时间应该低于 5ms ,如
果大于 10ms 就比较大了;
svctm : IO 请求平均处理时间,不包含等待时间;
%util :磁盘繁忙程度。 例如,如果统计间隔 1 秒,该设备有 0.8 秒在处理 I/O ,而 0.2 秒闲置,那么该
设备的 %util = 0.8/1 = 80% ;
avgqu-sz : IO 请求的平均队列长度;
r/s + w/s 即为 IOPS ;
r MB/s + w MB/s 即为吞吐量;
r_await/w_await :读 / 写请求处理完成时间,等待时间 + 处理时间
4 、 iotop/pidstat 命令可以查看系统中每个进程 IO 使用情况
5 、分析进程 IO 行为
ioprofile 可以统计出某个进程对每个文件的读写情况,本质上是 lsof + strace 。对于 Java 应用,还可以使用jstack 等命令工具查看线程行为
11. linux 常用工具大全
Yum 仓库、编辑器: vim 编辑器、 gcc 语言编译器 wireshark 抓包工具、 gcc 编译器、 workstation 工作站:服务器的终端机
12. 如何存取文件
存储
存储最小单位是扇区,每个扇区包含 512 字节,按照扇区的顺序存储
写:分区 - 格式化 - 挂载 - 对应挂载点创建数据;格式化就是给系统创建一个文件系统( ext4 、 xfs 等),在文件系统的基础上才可以写数据,文件系统最小单元是块(block ),写在扇区实际是写在 block 上面;
读取
为了提升读取速度,连续八个扇区组成一个 block ,即 4k
一个文件有一个 inode ,一个 inode 是 128 字节或者 256 字节; inode 用于存储文件元信息,元信息包含:属主/ 属组文件信息,创建 / 更改时间,何时创建软 / 硬链接;等外在信息, inode 指向 block , inode 相当于索引,寻找真正的存储硬盘,内容不再inode 内
13. ps和top有什么不同
ps -au:占用的资源是从进程启动开始,计算的平均占用资源,比如cpu等
top:实时占用的资源。
load average
load average: 0.09, 0.12, 0.19 : 系统平均负载 ,统计最近 1,5,15 分钟的系统平均负载。(每 5 分钟检查 一次,按特定算法计算)
Tasks 进程相关信息
Tasks: 287 total : 进程总数
2 running : 正在运行的进程数
285 sleeping : 睡眠的进程数
0 stopped : 停止的进程数
0 zombie : 僵尸进程数
CPU 信息(当有多个 CPU 时,这些内容可能会超过两行)
1.5 us :用户空间所占 CPU 百分比
0.9 sy :内核空间占用 CPU 百分比
0.0 ni :用户进程空间内改变过优先级的进程占用 CPU 百分比
97.5 id :空闲 CPU 百分比
0.2 wa :等待输入输出的 CPU 时间百分比
0.0 hi :硬件 CPU 中断占用百分比
0.0 si :软中断占用百分比
0.0 st :虚拟机占用百分比
内存信息(第四行与第五行的信息与 free 命令类似)
8053444 total : 物理内存总量
7779224 used : 已使用的内存总量
274220 free : 空闲的内存总量 ( free+used=total )
359212 buffers : 用作内核缓存的内存量
swap 信息
8265724 total :交换分区总量
33840 used :已使用的交换分区总量
8231884 free :空闲交换区总量
4358088 cached Mem :缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
14. linux proc目录详解
/proc 是一种伪文件系统(也即虚拟文件系统), 存在内核当中,存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态
15. linux文件系统:inode,block,inode存储了哪些东西,目录名,文件名存在哪里
inode 用来存储文件属性信息,其中包括了文件大小,文件的归属者,文件的归属组,权限,类型,修 改时间,以及指向文件实体数据(block )的指针
文件的字节数。
文件拥有者的User ID 。
文件的Group ID 。
文件的读、写、执行权限。
文件的时间戳,共有三个:ctime 指 inode 上一次变动的时间, mtime 指文件内容上一次变动的时间,atime 指文件上一次打开的时间。
链接数,即有多少文件名指向这个inode 。
文件数据block 的位置。
block 中存储的就是文件的实际数据,比如说,照片,视频,音频等等,但是有一点需要注意!就是
inode 当中不包含文件名!一个文件的文件名,存储在上级目录的 block 中!
16. 运行 ifconfig -a 的时候提示 command not found ,会是什么原因,应该怎么办?
查看环境变量是否配置或配置是否正确, where is ifconfig 来查看所在路径
查看命令是否安装, yum install ifconfig 是否安装
17. 假设一个目录下面有多个访问日志文件,如何统计特定IP在特定时的访问次数。
分析:查看访问日志文件并且用 grep 过滤特定 ip 日志追加到一个文件 (a.log), 在查看 a.log 用 sed 打印特定的时间,最后用wc -l 统计;可写成脚本。
18. 什么是swap,它有什么用途
swap是交换分区虚拟内存,作用是物理内存不够用时,当用户提交程序,然后产生进程,在机器上运行。机器会判断当前物理内存是否还有空闲允许进程调入内存运行,如果有那么则直接调入内存进行运行;如果没有,那么会根据优先级选择一个进程挂起,把该进程交换到swap中等待,然后把新的进程调入到内存中运行。根据这种换入和换出,实现了内存的循环利用,让用户感觉不到内存的限制。
19. 列出常见的内网网段。
私有地址范围
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
20. HTTP与HTTPS的区别是什么
如何在一台服务器上同时部署 http://www.163.com 与 http://game.163.com 两个站点。如何进一步给这台服务器上的两个站点添加https 支持。
HTTPS 和 HTTP 的区别主要如下:
1 、 https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。
2 、 http 是超文本传输协议,信息是明文传输, https 则是具有安全性的 ssl 加密传输协议。
3 、 http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80 ,后者是 443 。
4 、 http 的连接很简单,是无状态的; HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比http 协议安全。
用 nginx 来定义两个 resver 站点 ,https 支持要配置 ca 证书,配置是对 443 端口和 80 端口进行监听, 443 端 口要启用ssl 。监听 443 端口的 server 配置可以仿照上面 ca 认证页面的 nginx 配置示例进行配置。再通过 rewrite 方式把所有 http 请求也转成了 https 请求。
21. netstat和ss有什么区别
netstat 是遍历 /proc 下面每个 PID 目录, ss 直接读 /proc/net 下面的统计信息。所以 ss 执行的时候消耗资源以及消耗的时间都比netstat 少很多。
22. Linux系统优化有什么
1、登录系统 : 不使用 root 登录,通过 sudo 授权管理,使用普通用户登录。
2 、时间同步:定时自动更新服务器时间。
3 、配置 yum 更新源,从国内更新下载安装 rpm 包。
4 、关闭 selinux 及 iptables ( iptables 工作场景如有 wan ip ,一般要打开,高并发除外)
5 、精简开机启动服务( crond 、 sshd 、 network 、 rsyslog )
6 、 Linux 内核参数优化 /etc/sysctl.conf ,执行 sysct -p 生效。
7 、锁定关键系统文件( chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
/etc/inittab 处理以上内容后,把 chatter 改名,就更安全了。)
23. 常见的centos和redhat故障怎么处理?
不好用,查笔记
1 、忘记 linux root 密码
GRUB 菜单限制
第一种方法:
忘记 root 密码时,这时重启虚拟机系统,并在 GRUB2 启动屏显时,按下 e 键进入救援模式需要先输入密码才可以更改密码;若不设置重置密码可直接更改,安全性变低
更改 grub 密码
grub2-setpassword :设置 grub 密码,这时是需要密码才可以更改root 密码,更改之后 ctrl+x ,退出当前界面 grub2 菜单进入系统
第二种方法:
生成秘钥:给密码加密,增加密码难度
使用 grub2-mkpasswd-pbkdf2 生成秘钥
2 、 grub.conf 丢失和解决办法
删除 /bootr/grub/gub.conf 文件
删除后重新启动查看出现的问题
可以看出系统是 无法从硬盘启动了
解决办法
一种是在无 Live-CD 光盘时解决,具体操作如下:
系统重启后,进入 grub 模式
首先查看 /boot 分区所在的位置,系统内核,第三行是临时系统镜像文件所在的位置,然后 boot 重启。
启动起来后进入 /boot/grub 目录下编辑 grub.conf 文件:
编辑 grub.conf 的内容如下:
配置启动菜单项,等待时间,菜单名称, root 启动文件的位置 , 启动时的系统内核位置及名称,内核镜像的位置及名称
编辑完后这错误也就彻底的解决了。
24. 怀疑一块网卡有问题的时候,如何检测?
将其安装在一台能正常上网的机器上,看其指示灯是否闪烁 , 正常接入状态下指示灯应为红色或者绿色,然后用ping 命令检测是否能 ping 通网络上的主机 , 若通则正常,若网卡驱动安装无误而 ping 命令不通 , 则可以断定网卡坏掉。
25. Linux系统用户数
/etc/security/limits.conf
# 当前用户最大登录数
# max number of logins for this user
* soft maxlogins 100
* hard maxlogins 100
# 系统最大登录用户数
# max number of logins on the system
* soft maxsyslogins 100
* hard maxsyslogins 100
未完,接下文...