1. 苏葳的备忘录首页
  2. 软件

CGminer挖矿导致远程桌面上Chrome浏览器卡屏情况的解决

chrome cgminer 远程桌面最近无聊在挖矿,在Win7控制台上运行cgminer,然后从另一台机子上用另一个用户远程桌面到这台Win7机子,再启动个windows xp mode虚拟机,在里面做日常工作。之前也一直用远程桌面和虚拟机工作,没什么异常。但这几天,总感觉虚拟机越来越卡,甚至连累远程桌面的宿主机都卡起来,最后目标锁定在虚拟机里的chrome浏览器上,只要chrome一打开,很快虚拟机桌面响应就迟钝起来。

更奇怪的是查看虚拟机进程和宿主机进程,都没有特别耗CPU或内存资源的程序存在,硬盘IO也没有异常。在网上搜索chrome的卡机解决方法,大多是停用或卸载插件,清除缓存等等,试过了,全都没用。无奈之下打算换用firefox浏览器,甚至把收藏夹都导入了过去。

翻看chrome的设置,无意中发现在高级设置中,有个“硬件加速”的选项是选中的,硬件加速是什么意思?应该只能是GPU硬件加速吧?脑袋里灵光一闪,将这个选项关闭,然后重启了几次,果然chrome不卡了。虚拟机也流畅了。

结果证明猜测是对的,公认耗资源的IE不卡,firefox也不卡,偏就谷歌家牛X的chrome卡,原因就在这个“硬件加速”上。由于机子本地控制台上运行着一个cgminer比特币挖矿程序,显卡的所有流程处理单元均被cgminer霸占,此时若在控制台显示器上操作win7桌面,会卡顿严重,因为所有GPU资源几乎都给了cgminer,哪里还能顾的上桌面刷新呢。

而在远程桌面里,桌面显示不依赖主机的显卡硬件,所以桌面操作会不受影响。我的实际使用情境是,又启动了一个windows xp mode虚拟机(vmware),虽然此虚拟机设置上开启了2D和3D虚拟硬件加速。但对于虚拟机里运行的非2D或3D图形应用来说,这并没有什么影响。

但是chrome有一个“硬件加速”功能,虚拟机里打开了chrome,chrome在显示一些动画或图形页面的时候,就要调用显卡硬件来加快显示,而vmware的虚拟3D加速卡,毫无疑问会把加速功能转嫁给宿主机的主显卡,向宿主机的GPU索要资源。而宿主机的GPU已经全被cgminer强制占用了(用参数将所有显示核心都分配给cgminer了),只有极微小的处理性能提供给虚拟机的虚拟显卡,再提供给chrome。当然会造成虚拟机的桌面卡顿甚至假死状态了。

有以下现象能支持以上分析:

1 在机器卡顿严重时,多次查看过虚拟机和宿主机的进程,没有发现有耗资源程序存在。可见此时虚拟机桌面的卡顿只是显示刷新跟不上造成的“假象”。

2 卡顿严重以至于虚拟机假死时,去控制台上查看cgminer,发现监控界面的GPU也有sick现象,可以肯定是争夺GPU资源造成的异常。

3 chrome并非一直都很卡,在打开chrome,chrome窗口显示,然后chrome再自动打开默认主页的过程中,chrome窗口刚出现时很流畅,在等待默认google主页加载的过程中,拖动chrome也很顺畅,但等谷歌有动画标识的主页显示出来(load完毕)之后,卡顿就开始了。这也佐证了硬件加速功能是导致卡顿的原因。

4 关闭chrome的硬件加速功能,chrome和虚拟机都不卡了。这最能说明问题。

问题原因找到了,也解决了。但仍有问题要思考:cgminer可以用在AMD显卡与INTEL的iGPU共存的情况下,但只有AMD显卡作为主显卡,才能监控GPU温度和风扇转速情况,而此时的iGPU只能闲置。若舍弃监控功能,换成iGPU作为主显示输出,cgminer一样能识别AMD显卡并正常挖矿,而此时iGPU则会专用于windows的正常操控。带来的好处是:1 在主控台上操作win7再也不会卡顿了,因为此时是iGPU在做桌面绘图工作。2 在远程桌面打开chrome之类有硬加速需求的程序也不会卡顿了,因为它会去iGPU申请资源。放弃cgminer的监控功能,换来两块显卡分工合作各司其职,似乎也是个不错的主意。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/474.html

发表评论

邮箱地址不会被公开。 必填项已用*标注