<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Memory &#8211; Haikos Blog</title>
	<atom:link href="https://www.hertes.net/tag/memory/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hertes.net</link>
	<description>Blog von Haiko Hertes zu allen Themen rund um Microsoft, Cloud und Datacenter</description>
	<lastBuildDate>Wed, 22 Nov 2017 14:58:57 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Hyper-V: Welcher Host ist am besten f&#252;r eine neue VM geeignet?</title>
		<link>https://www.hertes.net/2017/11/hyper-v-welcher-host-ist-am-besten-fr-eine-neue-vm-geeignet/</link>
					<comments>https://www.hertes.net/2017/11/hyper-v-welcher-host-ist-am-besten-fr-eine-neue-vm-geeignet/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Wed, 22 Nov 2017 14:58:10 +0000</pubDate>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[Frei]]></category>
		<category><![CDATA[Hyper-V Server]]></category>
		<category><![CDATA[Memory]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[Speicher]]></category>
		<guid isPermaLink="false">https://www.hertes.net/?p=3478</guid>

					<description><![CDATA[Mir stellt sich im Administrations-Alltag immer wieder die Frage, welcher unserer Hyper-V-Hosts derzeit am besten für eine neue VM geeignet ist (Nein, wir verwenden leider kein VMM…). Anstatt aber dabei jedes Mal jeden Host hinsichtlich seiner freien Ressourcen “abzuklappern”, habe ich mir ein entsprechendes PowerShell-Skript geschrieben, was eine passende Function bereithält. Ihr könnt das Skript gerne für eure Zwecke anpassen oder direkt so übernehmen. $AllHyperVHosts = "HostNr1","HostNr2","HostNr3" function Get-HyperVHostInfo([string]$HyperVHost) { $vCores = ((Get-VM -ComputerName $HyperVHost).ProcessorCount &#124; Measure-Object -Sum).Sum $Property = "numberOfCores", "NumberOfLogicalProcessors" $CPUs = Get-Ciminstance -class Win32_Processor -Property $Property -ComputerName $HyperVHost&#124; Select-Object -Property $Property $Cores = ($CPUs.numberOfCores &#124; Measure-Object -Sum).Sum&#8230;]]></description>
										<content:encoded><![CDATA[<p>Mir stellt sich im Administrations-Alltag immer wieder die Frage, welcher unserer Hyper-V-Hosts derzeit am besten für eine neue VM geeignet ist (Nein, wir verwenden leider kein VMM…). Anstatt aber dabei jedes Mal jeden Host hinsichtlich seiner freien Ressourcen “abzuklappern”, habe ich mir ein entsprechendes PowerShell-Skript geschrieben, was eine passende Function bereithält. Ihr könnt das Skript gerne für eure Zwecke anpassen oder direkt so übernehmen.</p>
<pre lang="PowerShell" line="1">
$AllHyperVHosts = "HostNr1","HostNr2","HostNr3"

function Get-HyperVHostInfo([string]$HyperVHost)
{

    $vCores = ((Get-VM -ComputerName $HyperVHost).ProcessorCount | Measure-Object -Sum).Sum

    $Property = "numberOfCores", "NumberOfLogicalProcessors"
    $CPUs = Get-Ciminstance -class Win32_Processor -Property  $Property -ComputerName $HyperVHost| Select-Object -Property $Property 
    $Cores = ($CPUs.numberOfCores | Measure-Object -Sum).Sum
    $logCores = ($CPUs.NumberOfLogicalProcessors | Measure-Object -Sum).Sum

    $os = Get-Ciminstance Win32_OperatingSystem -ComputerName $HyperVHost
    $MemFreePct = [math]::Round(($os.FreePhysicalMemory/$os.TotalVisibleMemorySize)*100,2)

    $object = New-Object -TypeName PSObject
    $object | Add-Member –MemberType NoteProperty –Name PhysicalCores –Value $Cores
    $object | Add-Member –MemberType NoteProperty –Name LogicalCores –Value $logCores
    $object | Add-Member –MemberType NoteProperty –Name VirtualCores –Value $vCores
    $object | Add-Member –MemberType NoteProperty –Name MemTotalGB -Value ([int]($os.TotalVisibleMemorySize/1mb))
    $object | Add-Member –MemberType NoteProperty –Name MemFreeGB -Value ([math]::Round($os.FreePhysicalMemory/1mb,2))
    $object | Add-Member –MemberType NoteProperty –Name MemFreePct -Value $MemFreePct

    Return $object
}

ForEach($OneHost in $AllHyperVHosts)
{
    $HostData = Get-HyperVHostInfo -HyperVHost $OneHost

    Write-Host "$OneHost has $($Hostdata.PhysicalCores) physical cores, $($Hostdata.LogicalCores) logical cores and $($Hostdata.VirtualCores) virtual cores are used in all VMs overall." -ForegroundColor Yellow
    Write-Host "The Core:vCore ratio is `t`t1:$([math]::Round(($Hostdata.VirtualCores) /  ($Hostdata.PhysicalCores),2))"
    Write-Host "The Log.Core:vCore ratio is `t1:$([math]::Round(($Hostdata.VirtualCores) /  ($Hostdata.LogicalCores),2))"
    Write-Host "The system has $($Hostdata.MemFreeGB)GB of free memory and $($Hostdata.MemTotalGB)GB memory at all, which is $($Hostdata.MemFreePct)% free"
    Write-Host ""

}
Write-Host "The conservative approach for logical cores is `t1:8 "
</pre>
<p>&#160;</p>
<p>Eine Beispielausgabe sieht dann so aus: </p>
<p><a href="https://www.hertes.net/wp-content/uploads/2017/11/hyperv1.png"><img fetchpriority="high" decoding="async" title="hyperv1" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="hyperv1" src="https://www.hertes.net/wp-content/uploads/2017/11/hyperv1_thumb.png" width="644" height="192" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2017/11/hyper-v-welcher-host-ist-am-besten-fr-eine-neue-vm-geeignet/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PowerShell &#8211; RAM-Konfiguration eines Systems auslesen</title>
		<link>https://www.hertes.net/2017/03/powershell-ram-konfiguration-eines-systems-auslesen/</link>
					<comments>https://www.hertes.net/2017/03/powershell-ram-konfiguration-eines-systems-auslesen/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Wed, 22 Mar 2017 20:43:00 +0000</pubDate>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows Client]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[Arbeitsspeicher]]></category>
		<category><![CDATA[Memory]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[WMI]]></category>
		<guid isPermaLink="false">https://www.hertes.net/?p=3414</guid>

					<description><![CDATA[Bei der Frage, ob ein Server (oder auch Client) noch etwas mehr RAM vertragen kann, stellt sich oft die Frage, wieviel RAM dann aktuell in wie vielen Modulen verbaut ist und wieviele Slots noch frei sind. Natürlich gibt es dazu auch bereits grafische Werkzeuge, die das können, aber spätestens, wenn mehrere Maschinen (ggf. auch Core-Server ohne GUI) abgefragt werden sollen, kann die PowerShell ihre Stärken ausspielen. Daher habe ich ein kleines Skript gebaut, welches diese Aufgabe erfüllt: [Cmdletbinding()] Param( [string]$Computername = "localhost" ) cls $PysicalMemory = Get-WmiObject -class "win32_physicalmemory" -namespace "root\CIMV2" -ComputerName $Computername Write-Host "Memory Modules:" -ForegroundColor Green $PysicalMemory &#124;&#8230;]]></description>
										<content:encoded><![CDATA[<p>Bei der Frage, ob ein Server (oder auch Client) noch etwas mehr RAM vertragen kann, stellt sich oft die Frage, wieviel RAM dann aktuell in wie vielen Modulen verbaut ist und wieviele Slots noch frei sind. Natürlich gibt es dazu auch bereits grafische Werkzeuge, die das können, aber spätestens, wenn mehrere Maschinen (ggf. auch Core-Server ohne GUI) abgefragt werden sollen, kann die PowerShell ihre Stärken ausspielen. Daher habe ich ein kleines Skript gebaut, welches diese Aufgabe erfüllt:</p>
<pre lang="PowerShell" line="1">[Cmdletbinding()]
Param(
    [string]$Computername = "localhost"
)
cls
$PysicalMemory = Get-WmiObject -class "win32_physicalmemory" -namespace "root\CIMV2" -ComputerName $Computername

Write-Host "Memory Modules:" -ForegroundColor Green
$PysicalMemory | Format-Table Tag,BankLabel,@{n="Capacity(GB)";e={$_.Capacity/1GB}},Manufacturer,PartNumber,Speed -AutoSize

Write-Host "Total Memory:" -ForegroundColor Green
Write-Host "$((($PysicalMemory).Capacity | Measure-Object -Sum).Sum/1GB)GB"

$TotalSlots = ((Get-WmiObject -Class "win32_PhysicalMemoryArray" -namespace "root\CIMV2" -ComputerName $Computername).MemoryDevices | Measure-Object -Sum).Sum
Write-Host "`nTotal Memory Slots:" -ForegroundColor Green
Write-Host $TotalSlots

$UsedSlots = (($PysicalMemory) | Measure-Object).Count 
Write-Host "`nUsed Memory Slots:" -ForegroundColor Green
Write-Host $UsedSlots

If($UsedSlots -eq $TotalSlots)
{
    Write-Host "All memory slots are filled up, none is empty!" -ForegroundColor Yellow
}</pre>
<p>Die Ausgabe sieht dann etwa so aus:</p>
<p><a href="https://www.hertes.net/wp-content/uploads/2017/03/PS_Memory1.png"><img decoding="async" title="PS_Memory1" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="PS_Memory1" src="https://www.hertes.net/wp-content/uploads/2017/03/PS_Memory1_thumb.png" width="644" height="389" /></a></p>
<p>Auf meinem Notebook mit nur zwei RAM-Slots (beide belegt) kommt zusätzlich noch eine kleine “Warnung”:</p>
<p><a href="https://www.hertes.net/wp-content/uploads/2017/03/PS_Memory2.png"><img decoding="async" title="PS_Memory2" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="PS_Memory2" src="https://www.hertes.net/wp-content/uploads/2017/03/PS_Memory2_thumb.png" width="644" height="252" /></a></p>
<p>Ihr könnt das Skript auch hier herunterladen:</p>
<p><a title="https://gallery.technet.microsoft.com/scriptcenter/Get-Memory-RAM-configuratio-35dda12e" href="https://gallery.technet.microsoft.com/scriptcenter/Get-Memory-RAM-configuratio-35dda12e">https://gallery.technet.microsoft.com/scriptcenter/Get-Memory-RAM-configuratio-35dda12e</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2017/03/powershell-ram-konfiguration-eines-systems-auslesen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
