- 博客(10)
- 资源 (2)
- 收藏
- 关注
原创 如何通过guestfish 修改qcow2镜像的用户密码
在使用qemu&kvm时,除了通过下载操作系统的iso镜像文件,然后挂载为一个cd设备,像在物理机上安装操作系统的方式来安装操作系统的方式外,另一种更简单的方式是直接从redhat或者ubuntu 官网下载已经制作的镜像文件,下载的镜像在使用之前,需要修改一下系统的登陆密码,否则将无法登陆,本文以centos7 为例介绍修改镜像密码的过程。第1步:下载镜像,下载地址:http://cloud.centos.org/,可以根据需要选择合适的版本liang@ll:/home/liang..
2020-09-27 19:18:27
1993
1
转载 GPU虚拟机创建时间深度优化
从公有云服务商那里购买过虚拟主机的资深用户,一般会发现这么个规律:创建一台CPU虚拟主机是比较快的,但是要创建一台包含GPU卡的虚拟主机通常需要等比较长的时间,整个创建过程短则数十秒钟,长则数分钟。对于绝大多少的用户来说,虚拟主机的创建时间长一点对他们影响并不大,因为创建虚拟机属于相对低频操作。但是也会有一些特定的用户由于其业务场景交互性比较强,会对虚拟主机的创建时间有相对苛刻的要求,因为过长的创建时间会导致其业务用户体验很差。本文将从虚拟化的角度来介绍GPU虚拟主机创建时间长背后的原因,以及相关的优化方法
2020-09-23 23:57:31
281
原创 如何用火焰图来分析程序中的热点
本文将以对包含GPU透传设备的虚拟机实例创建时间消耗为例来说明如何使用火焰图来分析创建虚拟机实例过程中的热点,以便进行进一步的性能优化。echo "0000:03:00.0" > /sys/bus/pci/devices/0000\:03\:00.0/driver/unbindecho "10de 1b38" > /sys/bus/pci/drivers/vfio-pci/new_idperf record --call-graph dwarf /usr/libexec/qemu-k
2020-09-07 16:03:10
413
原创 基于fork机制的qemu 共享内存热升级实现
qemu 热升级一般是通过热迁移来实现的,跨主机的热迁移或者本地的热迁移都能用于qemu 的热升级。基于热迁移的方案存在以下几个主要问题: a. 消耗资源多; b. 升级过程较长;c. 业务有感知。导致这些问题的一个最主要的因素是在热迁移的过程中要迭代传输大量的guest内存数据。在跨主机的热迁移场景中,内存数据的复制传输不可避免,但是在同一个物理机上,可以通过某种共享内存的机制避免数据复制,从而...
2020-09-07 15:57:41
1288
1
原创 用perf 获取内核函数的执行时间
在工作中排查问题的时候,我们经常需要通过获取某个函数的执行时间来定位问题。比较原始的方式是通过在代码中埋点,然后打印出不通点上的时间戳,或者计算点之间的时间差,这种方式简单直接。但是在没有源代码的时候,或者如果要在某个在线的系统上获取相关信息的时候,这种方式就无能为力了。但是通过perf ,我们很容易办到。下面我们以获取内核中函数 pci_reset_function的执行时间为例来介绍具体怎么做:root@ll:~$ perf probe pci_reset_functionAdded ne
2020-06-05 09:09:41
3991
原创 Qemu 增量备份功能当前的问题及解决方案
Qemu 中提供了一种增量的backup机制,其核心的思想是写时复制,这里的写表示的是guest的写操作,其主要的工作原理是backup的工作线程会根据qemu中维护的block dirty bitmap 将新写入的数据块写到备份的存储设备当中,如果在备份的工作中block dirty bitmap中对应的某个数据块被guest写入,qemu会优先将img 中的该数据块复制到备份存储设备中,然后在...
2020-02-21 11:35:55
895
转载 Linux Shell 常用快捷键
Linux Shell之常用快捷键,其中我要强烈推荐Ctrl+r,为汪文浩首次在组内介绍,谁用谁知道…: history 显示命令历史列表 ↑(Ctrl+p) 显示上一条命令 ↓(Ctrl+n) 显示下一条命令 !num 执行命令历史列表的第num条命令 !! 执行上一条命令
2014-03-27 21:15:05
436
原创 一种用C语言实现的打印程序源码的方法
今天面试,被问到如何用C语言实现一个能打印自身源代码的程序,说了一些思路,回来后发现思路有问题,只好在机器上尝试。一下是一个种可行的实现方法,源码如下:#include #define LINE_MAX_NUM 1024int main(){ char buf[LINE_MAX_NUM] = {0}; FILE *file = fopen(
2013-09-26 14:28:55
1615
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人