资讯专栏INFORMATION COLUMN

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

社区管理员 / 886人阅读

一、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核数。

image.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)内存统计方法一

image.png

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

(2)内存统计方法二

[root@ansible ~]# yum install -y dmidecode
[root@ansible ~]# dmidecode -t memory
注: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内存。可以手动去掉,但建议保留这个参数, 内核出现宕机的时候可以保留现场。

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

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

image.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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128134.html

相关文章

  • Java线程有哪些不太为人所知的技巧用法?

    摘要:从本文中你将会看到线程提供的一些不太常用的方法及技术。最大的好处就是你所设定的优先级能在每个线程获得的时间上有所体现,不过完全依赖于线程优先级的做法是不推荐的。这省掉了正常关闭线程的那些麻烦事,可以立即将线程结束掉。 转载出处:Java线程的5个使用技巧英文原文链接 萝卜白菜各有所爱。像我就喜欢Java。学无止境,这也是我喜欢它的一个原因。日常工作中你所用到的工具,通常都有些你从来没...

    freewolf 评论0 收藏0
  • sar —— Linux 上最为全面的系统性能分析工具之一

    摘要:系统活动情况报告是目前上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括文件的读写情况系统调用的使用情况磁盘效率内存使用状况进程活动及有关的活动等。输出项说明表示统计信息为所有的平均值。 sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的...

    techstay 评论0 收藏0
  • 15 个 Linux 实用技巧

    摘要:可以通过命令,轻松实现使用生成随机数据,将生成的数据写入硬盘中,相当于安全的擦除了硬盘数据。因此对于类似情况,的值就会大于其它两项之和。快速清空文件的方法快速清空一个文件,有 N 种方法,我比较喜欢下边这种,因为它最短$ > access.log不过瘾?好吧,我也顺便总结下,其它几种最常见的清空文件的方法: > access.log true > access.log cat /dev/nu...

    Tecode 评论0 收藏0
  • 节省时间的那些 Linux 命令

    摘要:基础的网络管理命令或者,。使用来随机打乱一个文件中的行或者选择一个随机的行。比如,这条命令可以将重音都小写,并且去掉通过扩展并且丢掉要将文件切片,可以试试根据大小切分或者根据模式切分。前言:有网友在问答网站Quora上提问:有哪些省时小技巧,是每个Linux用户都应该知道的? Joshua Levy 平常就在 Linux 平台工作,并且他积累了不少实用命令行技巧,他在回复中精选出一部分。对...

    DoINsiSt 评论0 收藏0
  • 深度解析Tengine的调试资源监控方法论

    摘要:是由淘宝网发起的服务器项目。回源监控是内容分发网络的简称,其分发的内容来自用户源站,负责回源的模块是最重要组成部分之一,使跨越单机的限制,完成网络数据的接收处理和转发。这部分主要介绍的一些调试技巧和回源资源监控的内容,以及相应的实例分享。 摘要: Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,提供更强大的流量负载均衡能力、全站HTTPS...

    everfight 评论0 收藏0
  • ❤ CSDN榜一博主,半年文章汇总【答谢粉丝、文末送书4本】❤

    ? 作者主页:不吃西红柿  ? 简介:CSDN博客专家?、HDZ核心组成员?、C站周榜第一✌  欢迎点赞、收藏、评论 ? 粉丝专属福利(包邮送书4本,书单里自己选):简历模板、PPT模板、学习资料、面试题库。直接去文末领取 目录 ​​​​​​​? 西红柿-半年文章汇总 ? 【粉丝福利、三连送书】 【送书活动介绍】 【如何获得】:评论区留言点赞收藏,通过python random函数从评论区抽奖2人...

    付永刚 评论0 收藏0

发表评论

0条评论

社区管理员

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<