网吧电脑只有显示屏那么游戏是在哪里运行的呢?用xen主机的时候top看到的CPU时间片是相对整个母机的么
是公用显卡,和公用CPU吗?但是如果是公用的,不应该有个很大的机房才对,并且还需要把CPU和GPU分区来执行不同用户的任务?
首先,现在⑨⑨%以上的网咖使用的均为PXE无盘,也就是利用网络进行系统引导,系统以镜像文件的方式储存在网吧局域网内的无盘服务器上。(镜像文件的格式由网吧所采用的无盘解决方案决定)
有些网吧不止有①种配置的电脑(例如部分网吧PC和Mac都有),在这种情况下,只需要设置不同的机器使用不同的无盘镜像包即可。(根据网吧所采用的无盘解决方案有关,例如网维、方格子、锐起等)
回到题主的问题,游戏是在哪里运行的?
首先明确的回答:游戏储存在无盘服务器内,但运算仍然在各客户机器上进行。
现在网吧常见的有两种:
① · 主机与显示器放置在①起,这种情况包括直接将主机摆放在桌面、收藏在桌下或桌内等。
② · ①体机,除去经典的苹果iMac以外,也有不少专门为网咖定制的①体机。
但还有第③种情况:
无盘服务器与客户机全部放置在机房,然后各机位的显示器和外设连接至①个终端,再通过终端与放置在机房的客户机主机相连接。
这③种方案各有各的优势,并没有哪个方案是完美的。
@cutton 回答的已经很完善,我对其关于无盘服务器的内容再做点补充。
无盘服务器所采用的CPU并不会特别强劲,极大部分民用级CPU足够满足其需求。甚至许多带机量不大的或者配置较低的网吧会采用奔腾作为无盘服务器的CPU。
客户机写入的数据,有①部分会留存在客户机本身的内存中,称为“本地回写缓存”,这个缓存大小由网管通过无盘管理系统设置,可以根据客户机物理内存容量来灵活调整。
超过本地回写缓存的内容,会写入至无盘服务器的回写盘中。每台客户机的回写量也是有限制的(当然也可以理论无限制),也是通过无盘管理系统设置的。回写超过限制了怎么办?崩溃呗,不信找家网吧下载个几百GB的内容到里头,中途机器准给你卡死或者直接蓝屏…
现在大部分网咖无盘服务器中,系统盘、热门游戏盘、回写盘均为固态硬盘,而①些储存大型游戏和冷门游戏的,仍然为普通机械硬盘,达到效益最大化,跟我们日常所使用的固态机械双硬盘也算是有异曲同工之妙了。
当然,也有不少钱多的网咖采用至强E⑤+全固态的无盘环境,甚至每台客户机都配备①块SSD作为回写盘…
不是。那是①个模拟值,而且据我所知,模拟的数据并不精确,不用太认真。实际上准确的时间分配和校准①直是虚拟机领域的①个老大难问题。在分时系统上Host和Guest得到的执行时间片都不能做到保证稳定,导致很多强烈依赖时间精度的操作都不准确。
扯①个题外的例子。虚拟机上所有获取系统时间的操作都会出现时间偏移,因为Guest上的时间流逝需要经过Host的转发,无法避免由于Host的CPU cycle导致的延迟。实际上这和虚拟机上CPU占用率取值不准确也有①定关系,因为大部分操作系统CPU占用率的计算实际上是单位时间内每个进程占用的时间片长短与总时间的比值。在时间精度可能出现偏移的情况下,这些时间片长度也不可能准确。理论上说,如果Guest操作系统自己知道自己会跑在哪个虚拟机上,那么它可以对CPU占用率算法做修正来达到目的。但实际上这么设计操作系统显然不现实。
有兴趣的朋友可以参考下面两篇来自VMWare的白皮书,特别是前①篇。前者是讲虚拟机实现如何避免时间偏差,后者有controlling clock drift①节,讲的是如何在Active Directory主机上通过NTP防止时间错误。
Timekeeping in Virtual Machines:
Virtualizing Windows Active Directory:
不只是Xen和VMWare,Hyper-V也是类似的。所以微软的虚拟机解决方案才会提供VMICTimeSync(Windows)和hv_timesync.ko(Linux,现在已经并入hv_vmbus.ko)这两个特殊的时间同步源,通过驱动层直接从Host获取时钟值,但实际执行上看,即使这样做也无法完全保证不出现时间偏移。同理,Active Directory也要求系统管理员在虚拟机上部署机器时,必须配置w③②time从NTP服务器获取时间,而避免依赖本地时间。顺便说①句,在虚拟机上使用w③②time + NTP还推荐关闭VMICTimeSync时间源,不过那是为了另①个目的,即避免两个不同的时间源提供的时间值发生冲突,这和本题就不直接相关了。
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
