Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将库预加载到流浪VM_Linux_Memory Management_Vagrant_Virtual Machine_Virtualization - Fatal编程技术网

Linux 将库预加载到流浪VM

Linux 将库预加载到流浪VM,linux,memory-management,vagrant,virtual-machine,virtualization,Linux,Memory Management,Vagrant,Virtual Machine,Virtualization,我经常使用Vagrant和libvirt提供程序在Linux上设置和运行qemu+kvm虚拟机。最近,我尝试使用hugepages来支持来宾物理内存(见我在结尾的评论*) 通常,库应预加载LD_PRELOAD环境变量: >> LD_PRELOAD=libhugetlbfs.so ... <my app> 但是我注意到它并没有像预期的那样工作。环境变量不会传递给底层来宾计算机,我在进程列表中将其标识为“qemu-system-x86”(由ps给出) 我发现的是: 似乎“

我经常使用Vagrant和libvirt提供程序在Linux上设置和运行qemu+kvm虚拟机。最近,我尝试使用hugepages来支持来宾物理内存(见我在结尾的评论*)

通常,库应预加载LD_PRELOAD环境变量:

>> LD_PRELOAD=libhugetlbfs.so ... <my app>
但是我注意到它并没有像预期的那样工作。环境变量不会传递给底层来宾计算机,我在进程列表中将其标识为“qemu-system-x86”(由ps给出)

我发现的是:

  • 似乎“Wagrant up”不是来宾机的父进程。“qemu-system-x86”的父进程是init,所以我猜是某个守护进程创建的?我只是不明白流浪汉是怎么工作的

  • 创建“qemu-system-x86”进程的用户是libvirt qemu。由于某些原因,我无法向该用户“sudo su”

是否有任何方法可以从外部将LD_PRELOAD变量定义到来宾计算机?或者可能是某种将环境变量注入已经运行的进程的黑客行为

*我知道基于libvirt的虚拟化使用二维页面表。我对更改主机级别的内存分配感兴趣,因此需要从外部应用libhugetlbfs。为在来宾机中运行的应用程序预加载libhugetlbfs完全没有问题

>> LD_PRELOAD=libhugetlbfs.so ... vagrant up