栏目头部广告

Linux CPU与内存常见问题处理技巧

一、CPU

场景一:判断虚机是否支持某某指令集

可以通过Linux执行lscpu命令,输出信息Flags部分即是支持的指令集列表。

[root@blogs-v2 ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 61
Model name:            Intel Core Processor (Broadwell, no TSX)
Stepping:              2
CPU MHz:               2197.454
BogoMIPS:              4394.90
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
L3 cache:              16384K
NUMA node0 CPU(s):     0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr \
sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 fma cx16 pcid \
sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch \
invpcid_single fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap xsaveopt arat

注:Flags部分即是当前主机支持的指令集列表

场景二:虚机热升级CPU后发现核数不对

这种情况一般是部分CPU核数没有拉起导致,通过lscpu可以查看离线CPU核数。

CPU掉线状态.png

注:上图中off-line CPU(s)即是离线CPU的列表,即第4、第6、第7核CPU目前处于离线状态

# 手动拉起离线CPU方法
echo 1 > /sys/devices/system/cpu/cpu4/online
echo 1 > /sys/devices/system/cpu/cpu6/online
echo 1 > /sys/devices/system/cpu/cpu7/online

二、内存

场景一:购买虚机内存与实际命令统计显示不符

例如:通过free -h或者通过宝塔面板统计的内存大小一般都是偏小的。

(1)内存统计方法一

freeh.png

内存lsmem.png

注:计算累加:384M+128M+640M+128M+384M+128M+256M=2048M=2G

(2)内存统计方法二

[root@ansible ~]# yum install -y dmidecode
[root@ansible ~]# dmidecode -t memory

内存2.png

注:free统计显示的内存去掉了系统和内核使用内存。

[root@ansible ~]# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.4.246-1.el7.elrepo.x86_64 root=/dev/vda1 ro vconsole.keymap=us \
crashkernel=512M-2G:64M,2G-4G:128M,4G-:192M vconsole.font=latarcyrheb-sun16 rhgb quiet.UTF-8 \
console=tty1 console=ttyS0,115200n8 video=800x600

注:crashkernel=512M-:192M 内核预留192M内存。可以手动去掉,但建议保留这个参数, 内核出现宕机的时候可以保留现场。

场景二:热升级内存大小不对

例如:热升级过程中,产生时间跳变,导致部分内存处于离线状态。

内存lsmem2.png

假设2,3,4内存块离线,离线内存拉起方法:

echo 1 > /sys/devices/system/memory/memory2/online
echo 1 > /sys/devices/system/memory/memory3/online
echo 1 > /sys/devices/system/memory/memory4/online

场景三:云主机内存占用高常见场景

(1)系统启动时会初始化相关设备,该过程会占用内存,内核启动时,也会占用一部分的内存。其中,kdump占用的内存是可以自行设置的,如无特殊要求,请勿自行修改kdump占用的内存大小。

(2)free -mh命令查询的是弹性云服务器的可用内存,dmidecode -t memory命令查询的是实际硬件内存大小(包含内核占用)。因此使用free -mh命令查询到的内存大小比实际的要小一些,属于正常情况,非问题。

(3)centos8是占的内存比较多,可以重装到centos7.6,cetnos7.6的可用内存大概在900M。

(4)快杰云主机kernelcrash占用的内存比普通实例占用更大,修改grub参数,将kernel删掉,重启机器可解决。

场景四:云主机查看内存详细占用

[root@blogs-v2 ~]# cat /proc/meminfo
MemTotal:        7958324 kB
MemFree:          241772 kB
MemAvailable:    3124080 kB
Buffers:               0 kB
Cached:          3432152 kB
SwapCached:         1208 kB
Active:          4315112 kB
Inactive:        3053348 kB
Active(anon):    2932156 kB
Inactive(anon):  1401512 kB
Active(file):    1382956 kB
Inactive(file):  1651836 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:        524284 kB
SwapFree:         513664 kB
Dirty:               408 kB
Writeback:             0 kB
AnonPages:       3838708 kB
Mapped:           170832 kB
Shmem:            397360 kB
KReclaimable:     136640 kB
Slab:             227164 kB
SReclaimable:     136640 kB
SUnreclaim:        90524 kB
KernelStack:       11152 kB
PageTables:        26036 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     4503444 kB
Committed_AS:    7658012 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       20264 kB
VmallocChunk:          0 kB
Percpu:             2416 kB
HardwareCorrupted:     0 kB
AnonHugePages:   3008512 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      286576 kB
DirectMap2M:     8101888 kB
DirectMap1G:     2097152 kB

作者:UStarGao
链接:https://www.starcto.com/systemtool/277.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

加载中~
文章详情页广告

随便看看

底部广告
`