VMware虚拟机卡顿、CPU利用率低、编译Linux内核慢,问题解决与实验对比

news2025/5/10 17:44:29

目录

      • 一、总结在前面(节约时间就只看这里)
        • 0 环境说明
        • 1 遇到的问题:
        • 2 问题的原因:
        • 3 解决办法:
        • 4 实验验证:
        • 5 关于虚拟机内核数量设置
        • 6 关于强行指定Vm能用的CPU内核
      • 二、管理员启动,实验对比
        • 实验1:1*8核CPU、非管理员运行
        • 实验2:1*8核CPU、管理员运行
        • 实验3:1*16核CPU、管理员运行
        • 实验4:1*32核CPU、管理员运行
      • 三、虚拟机数量设置,实验对比
        • 实验1:1*8核CPU、管理员运行
        • 实验2:2*4核CPU、管理员运行
        • 实验3:8*1核CPU、管理员运行
      • 四、.vmx固定可用CPU,实验对比
        • 实验1:固定使用前8核、非管理员运行
        • 实验2:固定使用前16核、非管理员运行

一、总结在前面(节约时间就只看这里)

0 环境说明
VMware16.2.3
主机系统win11
虚拟机系统ubuntu18.04
CPUIntel i9-14900HX(8大核16小核)
内存32G
1 遇到的问题:

在使用 英特尔14代CPU、VMware 安装 ubuntu,编译linux内核和安卓系统时:

  • Ubuntu 命令行输入卡顿
  • linux 内核编译很慢很慢
  • 使用win任务管理器查看 VM软件的CPU使用率,只有百分之30左右。
2 问题的原因:

目前的理解是 因为我的电脑CPU是大小核,8大核16小核,VMware没能合理调度大小核。

3 解决办法:

使用了这位大佬的方法:https://blog.csdn.net/weixin_45971758/article/details/141476998

简单粗暴:管理员运行VMware

据说VMware17已经优化了这个问题,能够合理调度大小核,后面可以试试。

4 实验验证:

为了验证,做了几组对比实验,以管理员和非管理员两种方式运行VMware,以及给ubuntu虚拟机分配不同的内核数,对比实验:

  • 非管理员运行VMware,虚拟机内核数设置 1\8,实验结果:泰山派RK3566 linux 内核编译用时 6m32s
  • 管理员运行VMware,虚拟机内核数设置 1*8,实验结果:泰山派RK3566 linux 内核编译用时 2m35s
  • 管理员运行VMware,虚拟机内核数设置 1*16,实验结果:泰山派RK3566 linux 内核编译用时 1m52s
  • 管理员运行VMware,虚拟机内核数设置 1*32,实验结果:泰山派RK3566 linux 内核编译用时 1m30s
管理员运行VMware虚拟机内核数内核编译时间CPU使用率
实验11*86m32s30%
实验21*82m35s46%
实验31*161m52s83%
实验41*321m30s100%

想看实验结果图,可以看后面小节,图展示了实验中的CPU总利用率、CPU各核利用率

5 关于虚拟机内核数量设置

一直好奇虚拟机这个CPU设置里这两个到底该咋设置

做了实验对比,分别配置为1*8,2*4,8*1,编译Linux内核的时间几乎一致。

总结:咋设置都行,只看最后的总数。

在这里插入图片描述

6 关于强行指定Vm能用的CPU内核

另一个解决办法是强行指定VMware能够使用的CPU编号,通过修改VM的.vmx文件来指定虚拟机可用的CPU内核为全大核或全小核,这样就避免了大小核调度。

实验验证:修改.vmx 让虚拟机只能用前8个大核,内核编译时间为3m16s,不如直接管理员启动(2m35s)。

总结:该方式不如直接管理员启动。 没啥用,但是做了实验,还是写出来。

二、管理员启动,实验对比

实验1:1*8核CPU、非管理员运行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实验2:1*8核CPU、管理员运行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实验3:1*16核CPU、管理员运行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实验4:1*32核CPU、管理员运行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

三、虚拟机数量设置,实验对比

实验1:1*8核CPU、管理员运行

同上节,就不重复贴图了。

实验2:2*4核CPU、管理员运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验3:8*1核CPU、管理员运行

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、.vmx固定可用CPU,实验对比

实验1:固定使用前8核、非管理员运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验2:固定使用前16核、非管理员运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2327755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【7】数据结构的队列篇章

目录标题 队列的定义顺序队列的实现初始化入队出队顺序队列总代码与调试 循环队列的实现初始化入队出队获取队首元素循环队列总代码与调试 链式队列的实现链式队列的初始化入队出队获取队首元素链式队列总代码与调试 队列的定义 定义:队列(Queue&#x…

颜色归一化操作

当我们不太关注图像具体细节,只关注图像大致的内容时,为了避免光照角度、光照强度对图像的影响,可以采用下面进行归一化操作。这种颜色系统具有通道对表面方向、照明方向具有鲁棒性的特性,适用于图像分割等领域,在机器…

深度学习处理文本(6)

理解词嵌入 重要的是,进行one-hot编码时,你做了一个与特征工程有关的决策。你向模型中注入了有关特征空间结构的基本假设。这个假设是:你所编码的不同词元之间是相互独立的。事实上,one-hot向量之间都是相互正交的。对于单词而言…

STL-vector的使用

1.STL-vector 向量是可以改变其大小的线性序列容器。向量使用连续的空间存储元素,表明向量可以像数组通过下标来访问元素,但是向量的大小可以动态变化。向量的容量可能大于其元素需要的实际容量,向量通过消耗更多的内存来换取存储管理效率。…

MySQL深入

体系结构 连接层:主要处理客户端的连接进行授权认证、校验权限等相关操作 服务层:如sql的接口、解析、优化在这里完成,所有跨存储引擎的操作在这里完成 引擎层:索引是在存储引擎层实现的,所以不同的存储引擎他的索引…

Genspark:重新定义搜索体验的AI智能体引擎

关于我们 飞书-华彬智融知识库 由前百度高管景鲲(Eric Jing)和朱凯华(Kay Zhu)联合创立的AI搜索引擎Genspark,正以革命性的技术架构和用户导向的设计理念,为全球用户带来一场搜索体验的范式革命。本文将基…

从零实现Json-Rpc框架】- 项目实现 - 服务端主题实现及整体封装

📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…

AI助力PPT制作,让演示变得轻松高效

AI助力PPT制作,让演示变得轻松高效!随着科技的进步,AI技术早已渗透到各行各业,特别是在办公领域,AI制作PPT已不再是未来的梦想,而是现实的工具。以前你可能需要花费数小时来制作一个完美的PPT,如…

React-01React创建第一个项目(npm install -g create-react-app)

1. React特点 JSX是javaScript语法的扩展,React开发不一定使用JSX。单向响应的数据流,React实现单向数据流,减少重复代码,比传统数据绑定更简单。等等 JSX是js的语法扩展,允许在js中编写类似HTML的代码 const …

C++学习笔记之内存管理

仅用于记录学习理解 选择题答案及解析 globalVar:C(数据段 (静态区)) 解析:全局变量存放在数据段(静态区),生命周期从程序开始到结束,程序运行期间一直存在。 staticGlobalVar&…

【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法

增删改查操作 接下来,我们来实现一下用户的增加、删除和修改的操作。 增( Insert ) UserInfoMapper接口: 我们写好UserInfoMapper接口后,自动生成 XML 代码; UserInfoMapper.xml实现: 增删改查方法命名规范 如果我们…

使用Python构建Kafka示例项目

新建项目 mkdir python-kafka-test cd python-kafka-test 安装依赖 pip install confluent_kafka 创建配置文件 # Kafka配置文件# Kafka服务器配置 KAFKA_CONFIG {bootstrap.servers: localhost:9092,# 生产者特定配置producer: {client.id: python-kafka-producer,acks:…

本地化部署DeepSeek-R1蒸馏大模型:基于飞桨PaddleNLP 3.0的实战指南

目录 一、飞桨框架3.0:大模型推理新范式的开启1.1 自动并行机制革新:解放多卡推理1.2 推理-训练统一设计:一套代码全流程复用 二、本地部署DeepSeek-R1-Distill-Llama-8B的实战流程2.1 机器环境说明2.2 模型与推理脚本准备2.3 启动 Docker 容…

VBA 64位API声明语句第008讲

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高…

Linux信号——信号的保存(2)

关于core和term两种终止方式 core是什么? 将进程在内存中的核心数据(与调试有关)转存到磁盘中形成core,core.pid的文件。 core dump:核心转储。 core与term的区别: term只是普通的终止,而core终止方式还要…

【蓝桥杯嵌入式——学习笔记一】2016年第七届省赛真题重难点解析记录,闭坑指南(文末附完整代码)

在读题过程中发现本次使用的是串口2,需要配置串口2。 但在查看产品手册时发现PA14同时也是SWCLK。 所以在使用串口2时需要拔下跳线帽去连接CH340。 可能是用到串口2的缘故,在烧录时发现报了一个错误。这时我们要想烧录得按着复位键去点击烧录&#xff0c…

基础常问 (概念、代码)

读源码 代码题 Void方法 ,也可以提前rerun;结束 RandomAccessFile类(随机访问文件) 在 Java 中,可以使用RandomAccessFile类来实现文件指针操作。RandomAccessFile提供了对文件内容的随机访问功能,它的文件指针可以通…

J1 ResNet-50算法实战与解析

🍨 本文為🔗365天深度學習訓練營 中的學習紀錄博客🍖 原作者:K同学啊 | 接輔導、項目定制 一、理论知识储备 1. 残差网络的由来 ResNet主要解决了CNN在深度加深时的退化问题(梯度消失与梯度爆炸)。 虽然B…

[MySQL初阶]MySQL(8)索引机制:下

标题:[MySQL初阶]MySQL(8)索引机制:下 水墨不写bug 文章目录 四、从问题到底层,从现象到本质1.为什么插入的数据默认排好序2.MySQL的Page(1)为什么选择用Page?(2&#x…

Muduo网络库实现 [九] - EventLoopThread模块

目录 设计思路 类的设计 模块的实现 私有接口 公有接口 设计思路 我们说过一个EventLoop要绑定一个线程,未来该EventLoop所管理的所有的连接的操作都需要在这个EventLoop绑定的线程中进行,所以我们该如何实现将EventLoop和线程绑定呢?…