Those of you who attended VMware Partner Exchange 2013 and came to my session on Dynamic PCoIP will be somewhat versed in this topic, and if you’ve stopped by the excellent myvirtualcloud.net and read Andre’s post on View 5.2 you may have seen my comment there and will also be up to speed.
But for those who have managed to miss out on both of those things, I wanted to recap some items here.
“PCoIP GPO settings take effect immediately when changed (host side only)”
This was announced with the launch of View 5.2 as a new PCoIP feature. But there are a few problems with this, and a lot of confusion around it (even internally to VMware).
To briefly recap the information I left in the comment at myvirtualcloud.net-
This feature allows a limited number of PCoIP settings to be applied to the registry (via whatever method) and to take effect immediately within a currently running PCoIP session. So, specifically for something like tuning, you would be able to change parameters and it would not require a disconnect/reconnect sequence for those settings to take effect. This is pretty awesome!
So what’s wrong?
Well, the press releases just generically say “PCoIP GPO settings take effect immediately” – but do nothing to specify WHICH settings. Further, some issues were introduced between the early 5.2 beta and the RTM code for View 5.2 that caused this feature to only “work” for a really small subset of parameters. In my opinion, this basically renders a potentially awesome feature mostly useless.
So, in a perfect world, what options should take effect immediately? As far as I know, the following were planned for in the original drop:
- Disable Build-to-Lossless
- Max session bandwidth
- Session Floor
- Max initial image quality
- Minimum image quality
- Max FPS
- Audio bandwidth limit
- Logging level
What options actually work in the 5.2 GA release (based upon my experience)?
- Max FPS
- Audio bandwidth limit
Slightly less useful right? So the feature is in there, but it’s not really implemented across enough options to make it terribly viable.
Why does this matter?
Having this feature added to PCoIP has been a long-standing request of mine. I’ve been building tools (sporadically, I admit) for PCoIP for the past 3 years now, and I’ve always maintained a “vision” of being able to control the protocol in real-time for both users and admins and then building new tools around that.
One tool I had started work on, but have put on hold is a real-time tuner:
This tool allows you to view content and tune at the same time; to see the subjective impact of tuning at the same time as the objective impact on bandwidth, loss, and latency. I’ve been wanting to write this tool for 2+ years! And I did, mostly, but you know what? It’s of absolutely no use to anyone right now, so I didn’t finish, and I won’t be releasing it yet.
I also have several ideas on how to improve the PCoIP Configuration Utility. With this feature fully implemented, I can create a version of it that not only stores and applies profiles, but that could do so in response to contextual data from the client. Connecting via a mobile device? Automatically apply this profile. Connecting across the WAN? Automatically apply the WAN profile. This could be keyed off IP, MAC, User, Domain – whatever! If it’s a piece of information that can be read on the desktop, it can be used as a condition to apply dynamic tuning.
That would be cool wouldn’t it?
That’s a wrap
So, to wrap this up, I’m pushing hard internally to get the initially planned set of dynamic parameters fully implemented. I am hoping to see it in the next release of View, but I can’t say if that will happen with any certainty, probably, it won’t. Still, membership has it’s privileges, so I have access to “working” code for these changes and I wanted to share a video I had intended to show at PEX 2013 but which a last minute computer failure forced me to abort. I hope it gives you a taste of what’s to come once these features are fully implemented.
I have embedded the video here for ease of access, but since youtube is only aware of video in 16:9 format you can’t view the content at 1:1 which means it’s far harder to see the visual artifacts when aggressively tuning the session. Because of that I am also going to include a download link for the source MP4 video to allow for true 1:1 playback and better subjective visual inspection.
Also, there’s a slight jerkiness to the video at times, I want to be clear that this is an artifact caused by the software-based capture method I am using and is NOT present when interacting with the View session natively in the View Client. As soon as a DVI frame-grabber capable of high-resolution capture at 30+ FPS goes on sale for less than a few grand, I will get one and this artifacting will go away, until then – sorry :-/
Direct download: Dynamic PCoIP Tuning Video
Thanks, and sorry for the lack of content recently, I am hoping to get some blog and software updates out the door in the coming weeks.
This is just a quick update – I know the link to download this is dead. I am currently tied up at VMware Partner Exchange but I know something is screwed up on my web host. I can’t dig into it now but will get it sorted as soon as I get home (this weekend). Apologies for the mess, this just blew up at a time where I don’t have the tools and access I need to fix it.
Stay tuned for more info this weekend.
For those hoping to find a simple and quick method to create a small, bootable Linux installation for PC repurposing – look no further…
TinyCore Builder allows you to fill out a simple form, and get a very compact bootable Linux image with the VMware View Client out the other end. The image provided is ideal for USB or PXE booting a repurposed PC againbst a VMware View environment.
The TinyCore Builder recently moved so if you were already aware of and using this tool, please update your links to the following URL:
Well, this is the kind of post I don’t like to make. After getting a few responses and doing some additional troubleshooting (thanks Ed) I’ve found an issue with the new session disconnection detection that can cause the app to basically fail right from launch if you provide admin level credentials to authorize the app. I believe this is related to the process elevating and then HKCU being visible to the app via the elevated user vs. the actual logged in user. I’m going to do some tweaking and testing and hopefully get a fix for this up soon. Clearly not everyone will be hit by this (I was never prompted to provide credentials in my testing so never caught this) but I have to think a good number of people will be, so for now, if you see an error about not finding the Volatile Environment – you have my sincerest apologies!
I’ll update the blog as soon as a fix is found.
At VMworld US 2012 in the EUC2620 session, I spoke about both the PCoIP Log Viewer, and PCoIP Configuration Utility. Unfortunately, the “cool” stuff in the PCoIP Configuration Utility that I showed in that session wasn’t publicly available. Those features were/are being utilized inside a few select VMware customer environments to gather some feedback but I had not posted the code here at MindFlux – until now.
So, here it is! The new and improved PCoIP Configuration Utility.
I have decided to remove the beta moniker and call this code drop Version 1.0. I consider this a decently “feature complete” drop of the code, but as with all software, it’s never done, and bugs almost certainly remain. Unlike Google though, I feel compelled to take things out of beta after a reasonable amount of time :)
- PCoIP Connection Health Monitoring (See screenshots)
- Monitors various PCoIP connection stats and determines an overall health score
- Health status can be easily determined via the systray icon with states ranging from “green” to “red”
- A new health status popout that shows the metrics being tracked and their current health “scores”
- Profile Tooltips
- Hovering over a profile within the “Apply Profile” menu will now show a tooltip with the detailed settings for that profile
- PCoIP Server CPU Utilization
- This should now be accurate, previously, as load increased this value would scale out of proportion to the actual load leading to inflated CPU utilization values
- Session disconnect awareness
- The utility now detects when there is not an active PCoIP session and when there is not, it enters a “sleep” mode that will consume less CPU than the active polling mode. Why burn CPU if there’s no user connected right?
- Upon re-connection the utility will cleanly reset and resume stat collection in active polling mode. Previously, stats were not properly reset after a disconnection event causing some ugly numbers in the stats popout window.
Requirements, Issues, Implementation details, etc.
- .NET 3.5 is required
- VMware View 5.0 or 5.1
- Tuning profiles and last used profile are stored in HKCU and in theory should be able to roam with a user to whatever desktop they happen to land on – if you have something setup to allow the profile to roam, that is.
- The utility will request admin access – it needs this to be able to write to HKLM which is where the PCoIP settings are read from. You may need to get clever while launching it if you want to avoid UAC nagging you about it.
- This seems to come up often in the comments and in other feedback, right now there’s not an easy fix for this. I have reached out to Teradici to get these settings moved under HKCU – we’ll have to see where that leads. This CAN be fixed but most options are kind of a “cure worse than the disease” solution that I’m not ready to move towards just yet.
- GPO Conflicts
- If you plan to use this tool to manage the tuning settings of a desktop you should avoid also setting tuning parameters via GPO on that desktop. GPO can still be used for things like clipboard sharing policy, or USB device policy, just avoid any of the settings controlled via a profile.
You can grab a copy of the utility here: PCoIPConfig.exe
There are a lot of existing enhancements left for the current tool. But the biggest issue still remains the required disconnect/reconnect. There are some potentially promising developments along that path though, so stay tuned. Please share your thoughts for enhancements and/or bugfixes in the comments.