RHCA rh442 003 系统资源 查看硬件 tuned调优
监控工具
zabbix 监控具体业务,列如数据库。触发式事件(断网 硬盘坏一个)
普罗米修斯 给容器做监控
管理人员,如何知道几千台服务器哪些出了问题,这得需要zabbix
系统硬件资源
cpu
[root@foundation0 ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 6
On-line CPU(s) list: 0-5
Thread(s) per core: 1 每个核一个线程
Core(s) per socket: 3 每个插槽有三个核心
Socket(s): 2 两个插槽
NUMA node(s): 1 不支持NUMA
Vendor ID: GenuineIntel inter
CPU family: 6 第六代
Model: 158
Model name: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Stepping: 10
CPU MHz: 2592.002
BogoMIPS: 5184.00 每秒能处理指令集的数目
Virtualization: VT-x 支持全虚
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K 数据区
L1i cache: 32K 指令区
L2 cache: 256K
L3 cache: 12288K
NUMA node0 CPU(s): 0-5 一个NUMA有六个核
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat flush_l1d arch_capabilities
cpu的指令集 如果有vmx就是支持全虚拟化
cat /proc/cpuinfo
NUMA
UMA Uniform Memory Accesss 一致性内存访问
NUMA Non-Uniform Memory Accesss 非一致性内存访问
FSB 前端总线 瓶颈
cpu与内存进行访问需要通过 FSB
千军万马过独木桥 cpu和内存再多,意义不大
cpu和内存被划分到NUMAnode里
现实中,一条友谊大道十几公里长,出现问题就容易堵车,因为冗长。新城区都是井字路
NUMA
node里资源不够时通过QPI到其他node获取资源
从主板设计总线,就决定是否是NUMA架构
虚拟机自适配 4cpu 8G 尽量运行在同一个NUMA NODE中 numanode里有内存与cpu 提升效率
numa亲和性 8个网卡,可能一个网卡在一个node 8个磁盘也分属于8个node
也就是说,不仅cpu与内存,网卡与磁盘也可能会被分到同一个numanode
之后会指定一个程序运行在numa里
NUMA为未来的趋势
线程与核有什么区别
核
原来一个物理cpu,插在主板插槽上
性能要求越来越高,处理器插槽无法增加,因为站位太大了
只能添加核
一个身体有四个脑袋。这样节省了空间
鲲鹏处理器920 64核 6426 64核 26G赫兹 4826 3226 精简型
inter用的复杂型指令集 可能走两个循环
精简型 可能走一个循环 核数大 功耗低
手机 arm架构 全新生态。代码重写
生态上复杂型用的多,不是你精简型说改就改的
生态重构还有很长一段路
线程
进程的轮询与优先级
进程在核上的线程轮询得到cpu周期,核同一时刻只能运行一个线程,如今核已经很强了,有点浪费,你闲着也是闲着,
所以增加一个线程,
任务多且,简单。线程很有意义
很多任务,任务不复杂,线程多是可以的,会优化
核与插槽
L1d cache: L1-Data 32K 数据区
L1i cache: L1-Inst 32K 指令区
L2 cache: 256K
L3 cache: 12288K 有些处理器有3G缓存有些没有
差不多inter处理器1级与2级一样大
一级缓存在处理器内部,不能做的很大,是最快
一级没有找二级
二级没有找三级
三级没有找内存
3 15 160 差距很大
如果cpu只有两级缓存 L1缓存为私有 L2为共享
所有核是共享二级缓存
如果是三级L1-L2的缓存是私有的 L3为共享
私有:每个核拥有自己的L1和L2
共享:一个cpu的多个核共享一个L3
摩尔定律
cpu的处理能力没18个月翻一翻,价格降一倍 可能摩尔定律失效
cpu的工艺已经发展到极限 3纳米 不能再小了
手机处理器追求性能与散热,能耗
内存
容量提高,从技术上未迭代。
内存频宽5200Mhz 主板总线 cpu频宽 内存匹配才有意义
磁盘
HDD 4200RPM 5400RPM 7200RPM 10000RPM 这个值为转速 越快越好
SSD SATA-SSD SAS-SSD NvME-SSD(最快)
SLC:全称Single-Level Cell,每个Cell单元只存储1bit信息,也就是只有0、1两种电压变化,结构简单,电压控制也快速,反映出来的特点就是寿命长,性能强,P/E寿命在1万到10万次之间,但缺点就是容量低,成本高,毕竟一个Cell单元只能存储1bit信息。
MLC:全称是Multi-Level Cell,它实际上是跟SLC对应的,SLC之外的NAND闪存都是MLC类型,而我们常说的MLC是指2bit MLC。
每个cell单元存储2bit信息,电压有000,01,10,11四种变化,所以它比SLC需要更复杂的的电压控制,加压过程用时也变长,意味着写入性能降低了,同时可靠性也下降了,P/E寿命根据不同制程在3000-5000次不等,有的还更低。
TLC:也就是Trinary-Level Cell了,准确来说是3bit MLC,每个cell单元存储3bit信息,电压从000到111有8种变化,容量比MLC再次增加1/3,成本更低,但是架构更复杂,P/E编程时间长,写入速度慢,P/E寿命也降至1000-3000次,部分情况会更低。
QLC:则是Quad-Level Cell,或者叫4bit MLC,电压从0000到1111有16种变化,容量增加了33%,但是写入性能、P/E寿命会再次减少
机械硬盘马上会退出历史舞台
磁盘为最大瓶颈
raid 技术 (提升性能 与 容错)
ssd: raid10 随机的小IO更擅长
hhd:raid5 顺序IO业务
网络
万M网
IB网络 网络协议不一样 更快更贵 高性能集群,分布式存储后端网络 科研
dmesg
cat /var/log/dmesg rhel8无了
dmesg有内核做事的信息
绿色是秒
系统启动流程 (详情看rhce内容)
1.加载内核(加载硬件) 以只读的方式加载根分区
2.加载RAM DISK文件
3.启动系统
[root@foundation0 ~]# dmesg | grep eth
[ 2.613238] vmxnet3 0000:03:00.0 eth0: NIC Link is Up 10000 Mbps
[ 2.625317] vmxnet3 0000:0b:00.0 eth1: NIC Link is Up 10000 Mbps
[ 2.672586] vmxnet3 0000:03:00.0 ens160: renamed from eth0
[ 2.694579] vmxnet3 0000:0b:00.0 ens192: renamed from eth1
[root@foundation0 ~]#
如果在这里看到网卡。驱动就识别到了,改改配置文件重启网络则可用
dmesg | grep -i memory
dmesg | grep dma
内核加载时的信息
看到很多ffffff
系统起不来
硬件故障,不兼容
dmesg记录在buffer里面,而且永远会覆盖,只记录最后一次开机
[root@foundation0 ~]# lscpu -p
# The following is the parsable format, which can be fed to other
# programs. Each different item in every column has an unique ID
# starting from zero.
# CPU,Core,Socket,Node,,L1d,L1i,L2,L3
0,0,0,0,,0,0,0,0
1,1,0,0,,1,1,1,0
2,2,0,0,,2,2,2,0
3,3,1,0,,3,3,3,1
4,4,1,0,,4,4,4,1
5,5,1,0,,5,5,5,1
第一列cpu为逻辑cpu 两个线程的话数字x2
插槽上的为物理cpu
六个cpu六个核 每个核是单独的 两个插槽 全0一个node l1,l2都是私有 最后为物理cpu共享三级缓存(物理cpu各自共享,不是a的三级和b的三级共享) 一插槽(物理cpu)
4核两线程
0 0 0
1 1 0
2 2 0
3 3 0
4 0 0
5 1 0
6 2 0
7 3 0
一级二级缓存是多大
dmidecode (虚拟机会不准确)
看硬件信息
考试时会给你一个dmi如果二进制则这样打开
dmidecode --from-dump dmi.log
dmidecode | more
/L1 (缓存)
不同的系统可能dmidecode显示会有差异
[Debian 显示出的所有核私有的总数
redhat 则是显示单个核的结果]
物理红帽机会dmidecode会更准确
考试给你一个总共一级缓存大小,有几个核就除以几,讲考试题的时候再说
我觉得他后面会找一个红帽系统进行演示,那么就到此为止,不多追究
dmidecode适合在物理机上
dmidecode不打开机箱就可以查看硬件情况
lspci 看pci
lsusb 看usb
vi 忽略大小写 set ignorecase
sosreport
md5校验
这个包xz发给别人,别人给你排错
调优tuned工具
[root@foundation0 tuned]# ls
balanced desktop functions latency-performance network-latency network-throughput powersave recommend.d throughput-performance virtual-guest virtual-host
[root@foundation0 tuned]# pwd
/usr/lib/tuned
[root@foundation0 tuned]#
[root@foundation0 tuned]# tuned-adm list
Available profiles:
- balanced - General non-specialized tuned profile
- desktop - Optimize for the desktop use-case
- latency-performance - Optimize for deterministic performance at the cost of increased power consumption
- network-latency - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- powersave - Optimize for low power consumption
- throughput-performance - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest - Optimize for running inside a virtual guest
- virtual-host - Optimize for running KVM guests
Current active profile: virtual-guest
[root@foundation0 tuned]# cd throughput-performance/
[root@foundation0 throughput-performance]# ls
tuned.conf
[root@foundation0 throughput-performance]# vi tuned.conf
swapp = 20
更改配置文件sawpp=20
调优后可以发现,配置文件的内核参数被实施
修改了配置文件将内核参数写在sysctl下,重启依然有效
tuned也可以加载脚本,加载内核时加载脚本
补图