Friday, 24 October 2014

Remove Remote Desktop Connection History Entries

1. If you have not already, you may wish to delete the saved credentials of any listed remote desktop connection you wanted to remove while they are still listed to make it easier to do so.

2. If open, close the Remote Desktop Connection tool.

3. Press the  + R keys to open the Run dialog, type regedit, and press Enter.

4. If prompted by UAC, then click/tap on Yes.

5. In Registry Editor, navigate to the location below. (see screenshot below)


HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default

Click image for larger version

6. In the right pane of Default, each listed "Computer" entry (ex: TUFFY-PC) in the Remote Desktop Connection tool will be stored in an MRUnumber (ex: MRU0) string value. Right click on the string value (ex: MRU0) of the "Computer" entry (ex: TUFFY-PC) that you want to remove, and click onDelete. (see screenshot above)

7. Click/tap on Yes to confirm. (see screenshot below)

Name:  Manually_Clear_RDC-2.jpg
Views: 37658
Size:  26.3 KB

8. Repeat steps 6 and 7 for any other listed "Computer" entry in the Remote Desktop Connection tool that you wish to remove.

9. Close Registry Editor.

10. Set Windows to Show hidden files, folders, and drives. (see screenshot below)

Name:  Show.jpg
Views: 37978
Size:  75.9 KB

11. In File Explorer (Windows 8) or Windows Explorer (Windows 7), navigate to your My Documentsfolder location below, and delete the hidden (faded) Default.rpd file.


C:\Users\(user-name)\My Documents



Click image for larger version

12. Set Windows back to Don't show hidden files, folders, and drives. (see screenshot below)

Name:  Don't_Show.jpg
Views: 37713
Size:  75.6 KB

13. Close the explorer window.

14. If you have the Remote Desktop Connection tool pinned to the taskbar, then you may also wish to unpin and/or remove any recent connections that you deleted still listed in it's Jump List. (see screenshot below)

Name:  RDC_Jump_List.jpg
Views: 37814
Size:  34.3 KB

Thursday, 10 April 2014

Memory Ballooning

VMware vSphere資源分配管理觀念入門

熊信彰
在虛擬化的世界裡,資源的分配與管理是很重要的課題,但也最容易被忽略或誤解。在此要介紹的是一些有關VMware vSphere虛擬化資源的重要觀念,主要內容為Virtual CPU、Memory的運作概念,以及VM的資源設定配置基礎,還有了解何謂資源池(Resource Pool)。
圖5的範例是整合了10個VM的ESX(i) host,因有了TPS技術,所以10GB的實體RAM並沒有被佔滿,依然還剩下25%可再利用。


▲圖5 整合10個VM的ESX(i) host。





Memory Ballooning

承上題,現在有10個VM在新採購的伺服器上運作,考量到實體記憶體還沒有被用滿,你決定再轉移5部老舊機器,P2V到新伺服器上。如今,這個ESX/ESXi host已經承載到15個VM。

假設這5部老舊機器的條件都不變,一樣需要耗費5GB的記憶體容量,照道理說,新伺服器只剩下25%(2.5GB)左右的記憶體,鐵定會造成實體記憶體不足的情況。

但是連續幾天的實際使用狀況,這15個VM依然運作順暢,沒有因為Memory導致的效能問題產生(在此不考慮Network、Disk I/O等其他因素)。這就令人更納悶了,為何會這樣?

這就是接下來要探討的問題—Balloon driver,也稱為Vmmemctl Driver。

在圖6裡,我們可以知道目前記憶體的使用量已經超過,可能在95%∼105%之間遊走,而一旦使用超過實體的RAM,就必須要拿硬碟空間來當作Swap,這意味著有部分VM的記憶體使用,其實是在硬碟上運作(黑色陰影部分)。


▲圖6 記憶體使用量在95%~105%之間遊走。


試想一下,如果是一般的PC使用情形,當電腦記憶體不足的時候,OS就會嘗試著將RAM裡面的資料放置到硬碟上暫存,自行做記憶體管理。

如果記憶體一直持續不足,就必須一直在硬碟做存取置換的動作,造成效能下降的狀況。當記憶體空間釋放出來以後,暫存於硬碟上的Page file就可以再寫回實體RAM,此時PC的效能就會回復正常。

但是,圖6(範例3)的情形由於已經是虛擬化的狀態,實體記憶體資源並非OS掌控。假設hypervisor分配給它2GB,VM就會認為自己有2GB的實體記憶體,但是一旦hypervisor沒有辦法給它這麼多,VM完全不會察覺自己已經沒有記憶體,它會持續的一直使用下去,而不會自行記憶體管理。

當它在沒有察覺到RAM不足的情況之下,此時VM「自認」還有足夠的記憶體而持續使用的部分,通通跑進硬碟裡。在硬碟的哪裡呢?就是vswp這個檔案(也稱為VMkernel Swap或Virtual Swap)。

這個檔案的大小恰好等於VM所配置的記憶體,而且當VM開機vswp檔案就會出現,VM關機就消失。這是hypervisor為了保證在Memory over-commit的情況之下,假使最壞的狀況,所有VM都還是能維持運作的一種手段。

不見得會用到,我們也不希望用到,但是必須先預留硬碟空間,以防止最壞的狀況:實體已經沒有一絲一毫的記憶體,但是VM仍要開機,這時運作的vRAM就全部在vswp這個檔案。

一旦大量的vRAM進入VMkernel Swap之後,這個時候的VM運作速度就會異常的緩慢,效能便會變非常的差。

為什麼呢?因為有些屬於核心程式是一定要保留在實體記憶體中運作,不應該在硬碟上面運作,但是由於VM不曉得記憶體不夠用,所以它並不會自行Paging,將該留在RAM的東西保留住。

那麼有沒有辦法讓VM察覺到自己的RAM不夠,而自己主動先做Paging機制呢?

Balloon driver的作用這時候就可以發揮了,當VM安裝好VMware tools的時候,就會有Balloon driver,平常這個氣球(Balloon)在實體記憶體充足的時候是不會啟動的。

當VM的RAM越要越多,VMkernel沒辦法再供應足夠實體記憶體的時候,這時它就會通知VMware tools現在記憶體是吃緊的狀態,無法再供應記憶體了,請VM自行先做記憶體管理吧!

這個時候VMware tools就會開始將氣球膨脹,慢慢越變越大,不斷地佔據VM的Available Memory,Guest OS就會發現到有一個應用程式一直在吃掉它的記憶體,就真正察覺到記憶體已經不夠用,便會自行先Paging,將部分vRAM的資料放置到硬碟Local Swap上面(例如Windows預設是「C:\pagefile.sys」),這樣的好處是不會先進VMkernel Swap,雖然結果都是在硬碟上面,但是效能卻是差很多。

這個氣球是空心的,當它就開始膨脹,就會佔據Guest OS原本的記憶體,使Guest OS自己開始做Swap,將部分資料放置於Disk,等到VMkernel又開始有實體記憶體可以分配給VM的時候,氣球就可以縮小體積,Guest OS便會察覺自己又有RAM了,於是會將硬碟上的資料再搬回來,恢復正常的效能(圖7)。


▲圖7 VMware Resource Management Guide


所以Balloon driver也可以用於當VMkernel要收回某個VM的記憶體而拿來支援別的VM時,VMkernel會去掃描是否有VM的RAM正處於閒置狀態,再藉由吹氣球的方式,強迫Guest OS釋放部分閒置的記憶體(Idle Memory)。 

http://www.netadmin.com.tw/article_content.aspx?sn=1206130001&jump=4