Linux操作系统的知识点总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux操作系统的知识点总结相关的知识,希望对你有一定的参考价值。

参考技术A

  Linux操作系统的基础知识并不是很难理解,熟悉掌握基础知识能更好的学习Linux。下面由我为大家整理了Linux操作系统的知识点总结的相关知识,希望对大家有帮助!

  Linux操作系统的知识点总结1.操作系统总体介绍

  •CPU: 就像人的大脑,主要负责相关事情的判断以及实际处理的机制。

  查询指令: cat /proc/cpuinfo

  •内存: 大脑中的记忆区块,将皮肤、眼睛等所收集到的信息记录起来的地方,以供CPU进行判断。查询指令: cat /proc/meminfo

  物理内存

  物理内存,就是我们将内存条插在主板内存槽上的内存条的容量的大小。看计算机配置的时候,主要看的就是这个物理内存

  虚拟内存

  Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。

  关系:windows中虚拟内存和物理内存可能都会被使用,Linux中,只有物理内存使用完了,才会使用虚拟内存

  •硬盘: 大脑中的记忆区块,将重要的数据记录起来,以便未来再次使用这些数据。

  查询指令: fdisk -l (需要root权限)

  Linux操作系统的知识点总结2.内存和硬盘的关系

  具体命令后面会介绍

  Linux操作系统的知识点总结3.操作系统监控命令>单独写一份

  •vmstat

  •sar

  •iostat

  •top

  •free

  •uptime

  •netstat

  •ps

  •strace

  •lsof

  Linux操作系统的知识点总结4.如何分析操作系统

  实际流程: 读数据》数据>硬盘》虚拟内存(swaP)》内存》cpu缓存》执行队列

  分析方向,正好相反

  Linux操作系统的知识点总结4.各个部分常出现的漏洞

  •CPU: 容易出现该类瓶颈的邮件服务器、动态web服务器

  •内存: 容易出现该类瓶颈的打印服务器、数据库服务器、静态web服务器

  •磁盘I/O: 频繁读写操作的项目

  •网络带宽: 频繁大量上传下载项目

  Linux操作系统的知识点总结5.linux本身的一些优化

  1. 系统安装优化

  当安装linux系统时,磁盘划分、 SWAP内存的分配都直接影响系统性能。对于虚拟内存SWAP的设定,现在已经没有了所谓虚拟内存是物理内存两倍的要求,但是根据经验,如果内存较小(物理内存小于4GB),一般设置SWAP交换分区大小为内存的2倍;如果物理内存大约4GB小于16GB,可以设置SWAP大小等于或者略小于物理内存即可;如果内存在16GB以上,原则上可以设置SWAP为0,但最好设置一定大小的SWAP

  • 2. 内核参数优化

  例如,如果系统部署的Oracle数据库应用,那么就需要对系统共享内存段( kernel.shmmax, kenerl.shmmni, kernel.shmall)、

  系统信号量( kernel.sem)、文件句柄( fs.file0max)等参数进行优化设置;如果部署的WEB应用,那么就需要根据web应用特性进行网络参数的优化,例如修改net.ipv4.ip_local_port_range、net.ipv4.tc_tw_reuse、 net.core.somaxconn等网络

  内核参数

  • 3. 文件系统优化

  在linux下可选的文件系统有ext2,、 ext3、 xfs、 ReiserFS

  linux标准文件系统是从VFS开始,然后ext、 ext2, ext2是linux上的标准文件系统, ext3是在ext2基础上增加日志形成的。从VFS到ext3,设计思想没有太大变化,都是早期UNIX家族基于超级块和inode的设计理念设计而成。XFS文件系统是SGI开发的一个高级日志文件系统,通过分布处理磁盘请求、定位数据、保持cache的一致性来提供对文件系统数据的低延迟、高带宽的访问,因此XFS极具伸缩性,非常健壮,具有优秀的日志记录功能、可扩展性强、快速写入等优点。ReiserFS在Hans Reiser领导下开发出来的一款高性能的日志文件系统,通过完全平衡树来管理数据,包括文件数据、文件名及日志支持等。与ext2、 ext3相比,最大的优点是访问性能和安全性大幅提升。具有高效、合理利用磁盘空间,先将的日志管理机制,特意的搜寻方式,海量磁盘存储等优点

  Linux操作系统的知识点总结5.重点知识

  物理内存和虚拟内存

  1.如何查看物理内存和虚拟内存?

  Top 命令可以查看物理内存和虚拟内存的数值

  2.Buffer

  是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界介面传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。

  3.Cache

  CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度

  4.CPU中断

  当CPU执行完一条现行指令时,如果外设向CPU发出中断请求,那么CPU在满足响应的情况下,将发出中断响应信号,与此同时关闭中断,表示CPU不在受理另外一个设备的中断。这时,CPU将寻找中断请求源是哪一个设备,并保存CPU自己的程序计数器(PC)的内容。然后,他将转移到处理该中断源的中断服务程序。CPU在保存现场信息,设备服务(如交换数据)以后,将恢复现场信息。在这些动作完成以后,开放中断,并返回到原来被中断的主程序的下一条指令。

  5.上下文切换

  上下文切换(Context Switch) 或者环境切换

  多任务系统中,上下文切换是指CPU的控制权由运行任务转移到另外一个就绪任务时所发生的事件。

  在操作系统中,CPU切换到另一个进程需要保存当前进程的状态并恢复另一个进程的状态:当前运行任务转为就绪(或者挂起、删除)状态,另一个被选定的就绪任务成为当前任务。上下文切换包括保存当前任务的运行环境,恢复将要运行任务的运行环境。

  进程上下文用进程的PCB(进程控制块,也称为PCB,即任务控制块)表示,它包括进程状态,CPU寄存器的值等。

  通常通过执行一个状态保存来保存CPU当前状态,然后执行一个状态恢复重新开始运行。

  上下文切换会对性能造成负面影响。然而,一些上下文切换相对其他切换而言更加昂贵;其中一个更昂贵的上下文切换是跨核上下文切换(Cross-Core Context Switch)。一个线程可以运行在一个专用处理器上,也可以跨处理器。由单个处理器服务的线程都有处理器关联(Processor Affinity),这样会更加有效。在另一个处理器内核抢占和调度线程会引起缓存丢失,作为缓存丢失和过度上下文切换的结果要访问本地内存。总之,这称为“跨核上下文切换”。

  6.进程和线程

  进程概念

  进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。

  线程概念

  线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上操作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一

  进程和线程的关系

  (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。

  (3)处理机分给线程,即真正在处理机上运行的是线程。

  (4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

Linux运维学习笔记-文件系统知识体系总结

文件系统知识总结

 技术分享图片

 

新买的硬盘要存放数据需要怎么做?

首先将硬盘装机做RAID,做完RAID后进行分区,分完区后格式化创建文件系统,最后存放数据。

硬盘的内外部结构:

物理形状:

 技术分享图片

 

接口类型:

IDE(Integrated Drive Electronics)即“电子集成驱动器”。

SCSI(Small Computer System Interface)小型计算机系统接口。

SATA(Serial Advanced Technology Attachment)串口硬盘。

SAS(Serial Attached SCSI)串行连接SCSI,是新一代的SCSI技术,向下兼容SATA。

 

采购磁盘考虑因素:

  1. 主轴转数:5400/7200/10000/15000/M
  2. 接口类型:SAS/SATA/SCSI/IDE
  3. 读写更灵敏的磁头

选型:

  1. 线上的业务,用SAS磁盘
  2. 线下的业务,用SATA磁盘,磁带库
  3. 线上高并发、小容量的业务,用SSD磁盘

Note:千万不要用SATA磁盘来做在线高并发服务的数据存储或数据库业务。

 

企业生产环境主流磁盘的相关信息对比:

单位容量对比性能和价格:SSD > SAS > SATA >SCSI

单位价格购买磁盘容量:SATA > SAS > SSD

企业生产场景普及程度:SAS > SATA > SSD

 

SSD固态硬盘(Solid State Drive)用固态电子存储芯片阵列而制成的硬盘,由控制单元存储单元FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。

 

固态硬盘优点

优点说明

启动快

没有点击加速转动的过程

写入速度快

基于DRAM的固态磁盘写入速度极快

碎片不影响读取时间

相对固定的读取时间。由于寻址时间于数据存储位置无关,因此磁盘碎片不会影响读取时间

无噪音

因为没有机械马达和风扇,工作时噪音值为0分贝。某些高端或大容量产品装有风扇,因此仍会产生噪音

发热量较低

低容量的基于闪存的固态磁盘在工作状态下能耗和发热量较低,但高端或大容量产品能耗会较高

无机械故障

内部不存在任何机械活动部件,不会发生机械故障,也不怕碰撞、冲击、振动。这样即使在高速移动甚至伴随翻转倾斜的情况下也不会影响到正常使用,而且在笔记本电脑发送意外掉落或硬物碰撞时能将数据丢失的可能性降到最小

工作温度范围更大

普通硬盘只能在5到55℃范围内工作,而大多数固态硬盘能在10~70℃工作,一些工业级的还可以在-40~85℃,甚至更大的温度范围下工作

体积小重量轻

低容量的固态磁盘比同容量磁盘体积小、重量轻。但这一优势随容量增大而逐渐减弱,直至256GB,固态磁盘仍比同容量的普通硬盘轻

抗震动

比起传统磁盘,固态磁盘抗震能力要强很多,使得数据能更加安全地保存

固态硬盘缺点

缺点说明

成本高

每单位容量价格是传统磁盘的5~10倍(基于闪存),甚至200~300倍(基于DRAM)

容量低

目前固态磁盘最大容量远低于传统磁盘。美国公司Foremay推出了EC188M系列固态磁盘2TB。传统磁盘的容量仍在增长,目前已有4TB的了

易受外界影响

由于不像传统磁盘那样屏蔽于法拉第笼中,固态磁盘更易受到某些外界因素的不良影响。如断电(基于DRAM的固态磁盘尤甚)、磁场干扰、静电等

写入寿命有限

写入寿命有限(基于闪存),一般闪存写入寿命为1万到10万次,特制的可达100万到500万,然而整台计算机寿命期间内文件系统的某些部分(如文件分配表)的写入次数仍将超过这一极限。特制的文件系统或者固件可以分担写入的位置,使固态磁盘的整体寿命达到20年以上

数据难以恢复

数据损坏后难以恢复,一旦在硬件上发送损坏,如果是传统的磁盘或磁带存储方式,通过数据恢复也许还能挽救一部分数据,但是如果是固态存储,一旦芯片发生损坏,想要在碎成几块或电流击穿的芯片中找回数据那几乎是不可能的,当然这种不足也是可以牺牲存储空间来弥补的,主要用RAID

电池续航较短

根据实际测试,使用固态磁盘的笔记本在空闲或低负荷运行下,电池续航短于使用5400RPM的2.5英寸的传统硬盘

能耗较高

基于DRAM的固态磁盘在任何时候的耗能都高于传统磁盘,尤其是关闭时仍需供电,否则数据丢失

 

Note:运维工作中要合理规划好分层存储机制,根据业务及数据使用频率结合着使用SSD+SAS(15000转/分钟)+SATA(10000转/分钟)。

 

磁盘相关术语:主轴,盘片,磁道,扇区,0号盘面,磁头,传动手臂,传动轴,起停区,寻道,扇区(标识符(磁头,磁道,扇区号)+数据)

 技术分享图片

 

计算磁盘大小公司:磁盘大小=512字节 * 扇区数 * 磁道数 * 磁头数

 

 

 

 

机械磁盘读写磁盘数据的原理小结:

1、磁盘是按照柱面为单位读写数据的,即先读取同一个盘面的某一个磁道,读完之后,如果数据没有读完,磁头也不会切换到其他的磁道,而是选择切换磁头,读取下一个盘面的相同半径的磁道,直到所有盘面的相同半径的磁道读取完成之后,如果数据还没有读写完成,才会切换其他不同半径的磁道,这个切换磁道的过程称过寻道。

2、不同磁头间的切换时电子切换,而不同磁道间的切换需要磁头做径向运动,这个径向运动需要步进电机调节,这个动作时机械的切换。

磁头寻道是机械运动,切换磁头是电子切换。

 

 

RAID:廉价冗余磁盘阵列

 技术分享图片

 

 

做raid最直接的好处:

  1. 提升数据的安全性
  2. 提升数据读写性能
  3. 提供更大的单一逻辑磁盘数据容量

 

各级RAID优缺点对比:

RAID级别

关键优点

关键缺点

实际应用场景

RAID 0

读写速度最快

没有任何冗余

MySQL Slave,集群的节点RS

RAID 1

100%冗余,镜像

读写性能一般、成本高

单独的,数据重要,且不能宕机的业务,监控,系统盘

RAID 5

具备一定性能和冗余,可以坏一块盘,读性能不错

写入性能不高

一般的业务都可以用

RAID 10

读写速度很快,100%冗余

成本高

性能和冗余要求都很高的业务,数据库主库和存储的主节点

Note:RAID 0不能坏盘,RAID 1允许坏50%的盘,RAID 5允许坏1块盘,RAID 6(专门做硬件存储)允许坏2块盘。

 

RAID 10和01

 技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

磁盘分区

 技术分享图片

 

 

16字节分区表的内容

字节数

说明

1Bytes

State:分区状态,0=未激活,0x80=激活

1Bytes

StartHead:分区起始磁头号

2Bytes

StartSC:分区起始扇区和柱面号。低字节的低6位为扇区号,高2位为柱面号的第9,10位;高字节为柱面号的低8位

1Bytes

Type:分区类型,如0x0B=FAT32,0x83=Linux等,00表示此项未用

1Bytes

EndHead,分区结束磁头号

2Bytes

EndSC:分区结束扇区和柱面号,定义同前

4Bytes

Relative:线性寻址方式下分区相对扇区地址(对于基本分区即为绝对地址)

4Bytes

Sectors:分区大小(总扇区数)

 

分区的本质:修改0磁头0磁道1扇区的前446字节之后的64字节的分区表信息。

分区工具:fdisk(适合给小于2T的磁盘分区),parted(擅长给大于2T的磁盘分区,也可以对小于2T的磁盘分区),首选fdisk,大于2T时才去选parted。

 

Note:

1、 GUID磁盘分区表(GUIDPartition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一个扇区来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。因为对于那些扇区为512字节的磁盘,MBR分区表不支持容量大于2.2TB(2.2 × 10^12字节)的分区

2、 fdisk命令不支持gpt分区方式,parted支持gpt分区方式。

3、 parted的操作是实时的

 

 

文件系统

 技术分享图片

技术分享图片

 

 

 

 

文件系统新增文件操作流程

1、 先确定用户对欲新增文件的目录是否具有w与x的权限,若有的话才能新增;

2、 根据inode bitmap找到没用使用的inode号码,并将新文件的权限/属性写入;

3、 根据block bitmap找到没有使用中的block号码,并将实际的数据写入block中,并更新inode指向数据存放地block;

4、 将刚刚写入的inode与block数据同步更新到inode bitmap与block bitmap中,并更新superblock的内容。

在一般正常的情况下,上述的新增操作当然可以顺利完成,但如果遇到意外情况,就会产生superblock、inode bitmap、block bitmap这些中间数据与实际数据存放区产生不一致的情况。

系统读取数据流程:

1、 找到文件名

2、 找到inode,查看访问权限

3、 找到block

4、 反复循环1-3步骤

 技术分享图片

 

格式化(创建文件系统):文件系统是操作系统用于明确在存储设备上组织文件(数据的存储、分级组织、访问和获取等操作)的方法。

格式化(创建文件系统)工具:mkfs

查看系统支持的文件系统格式:ls /lib/modules/`uname -r`/kernel/fs

创建文件系统时会产生一定数量的Inode和Block:

Inode:存放文件的属性信息(包括不限于文件大小、属主(用户)、属组(用户组)、文件权限、文件类型、修改时间,还包含指向文件实体的指针的功能(inode-block对应关系)等,但inode里唯独不包含文件名)。

Block:存储实际数据(图片、视频,普通文件数据)。

 

 

 

文件属性:

 技术分享图片

 

inode小结:

1、 磁盘被分区并格式化为ext4文件系统后会生成一定数量的inode和block

2、 inode成为索引节点,它的作用是存放文件的属性信息以及作为文件的索引(指向文件的实体)。

3、 ext3/4文件系统的block存放的是文件的实际内容。

4、 inode是磁盘上的一块存储空间,C6非启动区inode默认大小256字节,C5是128字节。

5、 inode的表现是一串数字,不同的文件对应的inode(一串数字)在文件系统里是唯一的。

6、 inode节点号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口。

7、 ext3/4文件系统下,一个文件被创建后至少要占用一个Inode和block。

8、 ext3/4文件系统下,正常情况一个文件占用且只能占用一个Inode(人和身份证的关系)。

9、 block是用来存储实际数据的,每个block的大小一般有1K,2L,4K几种。其中引导分区等为1K,其他普通分区多为4K(C6)。

10、           如果一个文件很大(高清大片4G),需要占多个block,如果文件很小(0.01K),至少占一个block,并且这个block的剩余空间就浪费了,即无法再存储其他数据了。

11、           查看inode的大小和总量:

dumpe2fs /dev/vda1|egrep -i "block size|Inode size"

dumpe2fs /dev/vda1|egrep -i "block count|Inode count" 

12、           查看inode的总量和使用量

命令df -i

13、           查看文件的inode信息方法

ls -li 或stat /etc/hosts

14、           如何生成及指定Inode大小

格式化命令:mkfs.ext4 -b 2048 -I 256 /dev/sdb

 

block小结:

1、 磁盘要读取数据是按block为单位读取的。

2、 一个文件可能占用多个block。但每读取一个block就会消耗一次磁盘I/O。

3、 如果要提升磁盘IO性能,那么就要尽可能一次读取数据尽量的多。

4、 一个block只能存放一个文件的内容,无论内容有多小。如果block默认是4K大小,那么存放一个1K的文件,剩余3K就不能存放别的文件,只能浪费了。

5、 block并非越大越好。block太大对于存放小文件就会浪费磁盘空间,例如:1000K的文件,block大小为4K,占用250个block,如果block默认为1K,则需要占1000个block。访问效率谁更高?消耗IO分别为250次和1000次。

6、 根据业务需求,确定默认的block大小,如果是大文件(大于16K)一般设置block大一点,小文件(小于1K)一般设置小一点。

7、 block太大,例如4K,文件都是0.1K,大量浪费磁盘空间,但是访问性能高。

8、 block太小,例如1K,文件都是1000K,消耗大量磁盘IO。

9、 block大小设置也是格式化分区时候确定的,命令mkfs.ext4 -b 2048 -I 256 /dev/sdb

10、           企业文件都会比较大(一般会大于4K),block设置大一些会提升磁盘访问效率。

11、           ext3/4文件系统(C5/6),一般都设置为4K。

 

以上是关于Linux操作系统的知识点总结的主要内容,如果未能解决你的问题,请参考以下文章

鸟哥Linux私房菜知识点总结3到5章

Redis的知识点总结~Linux系统操作~

Android基础知识点学习总结

Linux知识点总结(思维导图,建议收藏)

Linux知识点总结(思维导图,建议收藏)

三个月学习总结,Linux基础知识