Kev*_*hen 5 c# virtualization virtual-machine
我正在开发分布式计算项目,我希望在虚拟机的计算机上运行更少的任务.如何hypervisor在C#中检测CPU 的标志?
我知道有很多答案涉及检查某些字符串的主板制造商,显示适配器或MAC地址,但这些看起来像脆弱的实现.
这些脆弱的实现似乎是您最好的选择。像 C# 和 Java 这样的语言从来没有真正打算运行得足够接近裸机,以轻松实现运行时裸机交互的健壮实现,因此缺乏指针和自动 GC。现代虚拟机实现实际上应该让您一开始就很难判断自己正在虚拟机上运行。
也就是说,如果您知道虚拟机管理程序 IP 地址(如链接所示),您可以检查请求的 IP 并进行相应处理,当然前提是您的虚拟机管理程序的 IP 是静态的或者您知道确切的范围它可能拥有的 IP 地址。
PS:更进一步,您还可以制作所有 IP 的列表(同样,如果它们是静态的),并编写您自己的负载均衡器以按照您的意愿引导流量。不过,我只是很好奇,为什么要尝试从虚拟机上卸载任务?是否存在您希望尽可能减少开销的计算密集型任务?