本节概要:
基本硬件知识
Linux 终端
Shell 介绍
Linux 基本命令
环境准备:
操作系统:Centos6.5、Centos7.2。
一、基本硬件知识
虽然目前运维已经基本不需要去接触硬件,但是了解一些CPU、内存、网络、硬盘的知识可以帮助我们理解如何优化硬件。
各个组件中CPU耗电最多,大概占能耗的一半。
1. CPU:
缓存:
以Intel CPU为例,有三级缓存:
L1,L2级cache:核心core独占,带宽约为20~80GB/s,延时1-5ns。
L3 cache:核心core之间共享,带宽约为10-20GB/s,延时10ns。
主频:
CPU的时钟频率,内核工作的时钟频率。
外频:
系统总线的工作频率,即CPU与外部的接口设备进行数据传输的速度。外频可以进行超频,可以借助工具进行修改,或者有些主板可能本身也提供了修改工具,超频可以使所有设备运作频率提升,但是可能会造成系统不稳定,例如可能会导致异常的宕机或者某些组件使用寿命缩短,不建议设置超频。
倍频:
CPU外频与主频相差的倍数。
总线频率:
与外频相同,或者是外频的几倍。
针脚:
如果是企业自己购买服务器,作为购买人员需要注意所购买的cpu针脚数目是否匹配,防止无法安装。
2. 内存条:
相比笔记本和台式机服务器的内存条插槽一般很多,需要根据服务器的具体使用场景决定插内存条的数目,如公司用的邮件服务器一般业务压力不会很大,一般不需要很大的内存配置,一般需要较大的磁盘空间存储数据。
如果服务器是放在租用的IDC机房,建议将服务器的内存条插满,防止出现内存不够时需要拆服务器加内存条。如果服务器在云厂商的话一般都支持对服务器的内存进行动态的调整。
常见内存种类:
UDIMM:
也称为Unbuffered DIMM。非服务器内存条,不可扩充至最大内存。当数据从CPU传到每个内存颗粒时,UDIMM要求保证CPU到每个内存颗粒之间的数据传输距离相等,这样并行传输才会有效。这需要极高的制造工艺,极难做到高密度、高频率。因此 UDIMM容量和频率都较低。不过,UDIMM由于在CPU和内存之间没有任何缓存,因此同频率下时延较小。
RDIMM:
也称为Registered DIMM。服务器用内存条,支持扩充至最大内存。为了保证并行传输的有效性,RDIMM在内存条上加了一个寄存器进行转发。它位于CPU和内存颗粒之间,这样就减少了并行传输的距离。同时由于寄存器效率很高,因此RDIMM的密度和频率就容易提高。RDIMM目前是较为主流的内存条
LRDIMM:也称为Load Reduced DIMM。RDIMM虽然提高了传输有效性,但由于寄存器大小有限,当单条内存中内存颗粒以最高的密度4 Rank进行部署时,并行传输的有效性和频率就会大大下降。
3. 硬盘
SCSI系列:
包含比较老旧的并行SCSI和现在目前使用交广的SAS(串行SCSI)。
FC 接口:
支持FC 协议接口的硬盘,FC接口的硬盘一般只用在专用的存储上。
HDD:
普通的机械盘。
SSD:
固态硬盘,机械硬盘和SSD硬盘都有SATA接口和SAS接口的。
硬盘通过SAS接口或者SATA接口的卡连接到主机上。SAS卡既可以接SAS盘,也可以接SATA盘,SATA卡只能接SATA盘。
机械盘和SSD盘的区别
SSD性能更好。SSD盘的读IOPS通常高机械盘两个数量级以上,写IOPS通常也至少是1个数据量级以上。读写吞吐率一般只有机械硬盘的几倍,最多10倍左右。
SSD内部存在擦除。即在重写数据时不像机械硬盘一样进行直接的改写,而是需要一个擦除的过程,然后才能再写。每次擦除的数据块的大小比读写的块大很多,通常在128KB~512KB之间,读写的块通常大小为4KB。
SSD 中闪存芯片的写次数是有限的,写到一定的次数会发生损坏。次数一般为10000~100000。所以SSD内部需要一定的算法让写操作比较平均的分散到各处。即如果一直写SSD硬盘中相同逻辑地址的同一个地方,实际写的物理芯片并不是同一个地方。
其他
SAS 接口的速度约为3Gb/s~6Gb/s。
目前在服务器上使用的硬盘按大小分为两种,即2.5英寸硬盘和3.5 英寸硬盘。 其中SSD硬盘大小通常是2.5 英寸,目前云厂商基本都已经提供SSD存储。
机械硬盘的转速通常有如下几种:
- 7200转/分,目前大多数的SATA盘转速为7200转/分。
- 10000转/分。
- 15000转/分。
4. 内存
内存是CPU与外部进行沟通的桥梁。CPU运算所需要的数据临时保存在内存中,计算机的所有程序也是运行在内存中,内存通常也会作为硬盘灯外部存储的数据缓存。
内存从硬件上分类:
SRAM:
静态随机存储器。随机是指数据不是线性存储的,而是随机指定地址进行数据的读写。CPU的cache一般是这种存储,特点是速度快,但价格较高。
DRAM:
动态随机存储器。动态是指存储阵列需要不断刷新来保证数据不丢失,价格比SRAM低,速度也慢一些。
SDRAM:
动态同步随机存储器。同步是指工作时需要同步时钟,内部命令的发送与数据的传输都以他为准。
DDR SDRAM:
双倍数据传输率的SDRAM,DDR为Double Data Rate的缩写。普通的SDRAM在一个时钟内只传输一次数据,DDR内存则在一个时钟内可以进行2次数据的传输。
DDR 内存又可以分为DDR1、DDR2、DDR3,分别对应第一代、第二代、第三代DDR。目前主流的内存为DDR3内存。
三、Linux 基础命令
1. Linux 终端
Linux 终端分为tty控制台终端和pts虚拟终端。
控制台终端分为tty1~tty6,即我们之前课程给大家介绍的Linux的存文本界面(在云平台中一般对应的是VNC):
除了tty的终端外其他的都是虚拟终端(pts),也叫伪终端,如xshell终端、Putty、SecureCRT等。
通过ssh连上的都是伪终端,可以通过命令ps aux | grep pts 查看:
2. 命令提示符和命令结构
Shell 提示符:
[root@localhost ~]#
提示符格式:[用户名@主机名称 当前目录名]#,如果当前用户是普通用户则#为$。
命令提示符可以修改。
命令结构:
以bash shell 为例,基本结构为: 命令名称 命令选项 参数。
命令、选项、参数之间使用空格进行分隔。
3. 基本命令
cd
作用: 切换目录,参数为需要切换到的目录路径,可以是相对路径也可以是绝对路径。
格式:cd 目录名
如:
cd /root/Documents #切换到目录/root/Documents,相对路径。
cd ./path #切换到当前路径下的path目录,相对路径。
cd #回到当前用户主目录,和cd ~ 效果一样。
cd - #回到上一个路径
绝对路径:以”/”开头,即文件的完整的路径。
相对路径:相对路径是相对于目前所在的位置,不以”/”开头,相对路径不一定比绝对路径短。
ls
作用:列出当前路径下文件。
格式:ls 路径,不加路径代表列出当前路径下的文件。
参数:
-l:列出文件的详细信息,包含文件属性与权限等。ll 等价于 ls -l
-a:列出全部的文件,包含隐藏的文件(文件名以.开头)。
-h:将文件大小以较易读的方式列出(KB、GB等),增强可读性。
-R:递归列出,即会将子目录的文件一并列出。
上面的参数可以集合使用,如ls –lR
pwd
作用:查看当前路径
格式:pwd
无参数。
shutdown
作用:关机、重启等。
格式:shutdown 参数
只有root用户才有权限进行关机操作,这个命令会通知系统内的各个进程。
参数:
-h: 指定时间关机
shutdown –h now #立即关机
shutdown –h 20:10 #20:10关机
shutdown –h +10 “this system will shutdown” #10分钟之后关机,并向在线的用户发送消息。
-r:重启
shutdown –r now #立即重启
shutdown –r +30 “the system will reboot” #30分钟后重启,并通知所有在线用户。
-k:向在线的用户发送信息,不关机。
shutdown –k now “message test”
相关命令:init 0 #关机,poweroff –f #关机,reboot #重启,这些命令需要慎重使用。
注:日常学习时不建议使用命令关闭系统,防止养成习惯在工作时关掉服务器(作者刚工作时经历过),建议直接鼠标点击断开远程连接或者关机。
help
作用:查看内部、外部命令帮助信息
格式:
内部命令:help 命令。
外部命令:--help,或者 命令 -h,二者查看的结果接近。
当不知道命令的某个参数如何使用时可以用此命令进行查看,或者查看命令有哪些参数。
举例:
shutdown --help
内部命令:如cd、pwd等,可用help cd 查看,外部命令cd --help查看不到。
外部命令:ls、cat、shutdown等,可用ls --help查看。
内部命令与外部命令区别:
内部命令构建在shell之中,执行速度快,当执行内部命令时bash进程不需要创建子进程。
相比内部命令外部命令没有构建在shell中,执行外部命令时会创建bash的子进程。
man
作用:查看命令的详细介绍和使用信息。
格式:man 命令
此命令是Linux运维、开发等经常使用的命令,想要了解某个命令的具体使用场景、方法等可以用此命令进行查看。
当使用--help查看到外部命令的具体参数,想查看参数具体的使用使用方法时可以man进行查看。
举例:
man shutdown
按”q”可推出man帮助文档。
四、拓展
- 查询自己计算机的磁盘类型。
- 查看init 0-6 七个运行级别意义,及具体的使用方法。