How to troubleshoot unexpected memory limitations?

As you know, there are limitations on the available memory depending on the version of the operating system . These limitations may be caused by BIOS, hardware or instruction set architectures (x86,x64) too. Sometimes really hard to predict and troubleshoot them . Everything looks good, but doesn’t work. Let’s analyze basic steps that I have used to solve issues in different situations.

– Check memory limits for supported Windows releases

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx

  • Check Memory Mode in BIOS (Independent, Channel Mirroring, Lockstep, Sparing). For example, Channel Mirroring decreases your memory size by default. To use the full size of memory you should check that Memory mode is independent

bios_memory_mode

  • During POST, notice additional information about memory testing. Full size of memory must be OK. For example, you have 4 Gb installed memory and test shows «4096MB OK» if no problems with BIOS settings or hardware

memory_post_test

– Sometimes the reason is hardware. I had a problem on other Intel SR1670HV server system “DIMM A1 and DIMM A2 are disabled by BIOS”. Unfortunately, it’s mainboard’s bug (upgrading firmware and replacing DIMMs don’t resolve the issue)

  • If your OS uses unoriginal boot configuration , check Maximum Memory option at msconfig >boot > advanced options

msconfig_memory

  • I’ve had a very strange memory limitiation in my OS (Server 2008 R2 SP1 Ent). After server shutdown only 4 gb of 48 gb (6 x 8 Gb) were usable. I tried to change BIOS and OS settings plus checked firmware version. Everything was fine. I did not realize one thing. Why is only 4 gb instead 8 gb? If it was problem with DIMMs I had to get 8 x X Gb of memory. If it was problem with BIOS , I had to receive an information during POST test. So, something happened bad with OS after shutdown. I decided to change server edition using DISM utility (anyway, I had to change it because of VM’s amount) Curiously enough, changing server edition is solution. (I’m sure, simple re-activation can solve too) . To re-activate or change edition use PS and DISM.

Run Powershell. Use DISM /online /Get-CurrentEdition to get  your edition

get-currentedition

Then paste DISM /online /Get-TargetEditions to view possible target editions
get-targeteditions

Finally, to initiate an upgrade, run:

DISM /online /Set-Edition:<edition ID> /ProductKey:___

For example, I have an Enterprise version and want to upgrade to Datacenter.

Important: You have to use KMS key before activation with own key. Get KmS key using this link  http://technet.microsoft.com/en-us/library/ff793421.aspx

DISM /online /Set-Edition:ServerDatacenter /ProductKey:74YFP-3QFB3-KQT8W-PMXWJ-7M648

DISM will reboot server twice. Very strange memory limit has gone away.

Notice: After the reboot you should change the product key and activate system again.

SCCM 2012 Step-by-step installation guide

Before deployment you have to:

– install IIS, BITS on your SCCM server
– open 1433 and 4022 ports on SQL Server
– create “System Management” container with right permissions
– extend AD schema
– check SQL Server settings

Read “How to..” below. Wait,wait and carefully read and check

Supported Configurations for Configuration Manager

Notice, only SCCM SP1 fully supports Windows 8 and Server 2012.

Microsoft is going to publish final release SP1 in January,2013 (i hope so). Now, it’s only SP1 Beta with  some bugs inside

To resolve error with installing NETFX3 feature on Windows Server 2012 use my previous post about preparation and installing DPM 2012

———————

Open 1433 and 4022 ports on your SQL Server. Without this step you will receive an error “Firewall exception for SQL Server” 

netsh advfirewall firewall add rule name=”SQL Server” dir=in action=allow protocol=TCP localport=1433
netsh advfirewall firewall add rule name=”SQL Service Broker” dir=in action=allow protocol=TCP localport=4022

———————

You need to install BITS and IIS services (default settings+IIS 6 WMI Compatibility) on your SCCM server

Install-WindowsFeature Web-Common-HTTP,Web-Default-Doc,Web-Dir-Browsing,Web-HTTP-Errors,Web-Static-Content,Web-HTTP-Redirect,Web-HTTP-Logging,Web-Log-Libraries,Web-Request-Monitor,Web-HTTP-Tracing,Web-Stat-Compression,Web-Filtering,Web-ISAPI-Ext,Web-Mgmt-Tools

Install-WindowsFeature -Name BITS

———————

SCCM does not automatically create the System Management container in Active Directory Domain Services when the schema is extended. The container must be created one time for each domain that includes a Configuration Manager primary site server or secondary site server that publishes site information to Active Directory Domain Services.

SCCM server account must have “Full Control” permisson on System Management container. You can add this permission leter, but SCMM installation will  detect warning “Verify site server permissions to publish to Active Directory” and let you to continue setup.

Open adsiedit.msc

adsiedit

Right click on “CN=System” and create new object

new-object

Select class “Container” and click “Next”containere

Type the name of container “System Management” and Nextnameofcontainer

Open your AD Users and Computers, change view to “Advanced feature”. advancedfeatureon

Go to System -> System Mananagement and click on “Delegate control..”delegation

Add your SCCM server to delegation of controladdingSCCMserv

Select “Create a custom task …”delegation_2

Click “Next”

delegation_3

Select “Full Control” and click “Next”

delegation_4

———————

Extend AD schema for SCCM. If you have installed SCCM 2007, you do not have to extend AD schema!

Open extadsch.exe in YourCDdriveLetter:\SMSSETUP\BIN\X64extschema

Check result using log file C:\ExtAdSch.txtextschema_1

———————

Check your SQL Server service account. By default, SQL sets build-in account to run SQL Server service. This account does not have necessary permissions (sysadmin role in SQL) that SCCM wants to see. For example, during installation SCCM interrupts with following error:

Fail to create SQL Server Certificate, ConfigMgr cannot be completed

sql_cert_error_sccm

To resolve this you have to temporarily change service account . In this example, my local account have sysadmin role in SQL Server. After successful SCCM installation do not forget to change it back.

sql_fix

SCCM requires SQL Server to reserve a minimum of 8 Gb of memory for the central administration site and primary site and a minimum of 4 Gb for the secondary site. Without SQL Server memory settings SCCM prerequisites checker will show you warning:

SQLServer is configured for unlimited memory usage

Just set minimum and maximum of memory in SQL Server settings using SQL Server Management Studio as shown on picture

sqlmemory

INSTALLATION

1. Choose your deployment method and click “Next”. Do not choose typical installation. Some important settings are not covered in this method.sc_1

2. Type your product keysc_2

3. Accept all license termssc_3

4. Click on “Browse” to set path for downloaded required files or download them automatically using setting above and click “Next”sc_5

5. Select your SCCM languages and click “Next”sc_6

6. Select your client languages and click “Next”sc_7

7. Define Site code (xxx) and name , click “Next”sc_8

8. Join or create new primary site. Click “Next”sc_9

9. Define your SQL FQDN, instance name (just leave it blank) and database namesc_10

10. Click “Next” againsc_11

11. I don’t have a PKI infrastructure, so i choose use HTTP server communicationsc_12

12. Click “Next”sc_13

13. CEIP is a useful program, but now ” i don’t want to join…”. Click “Next”sc_14

14. Summary information. Click “Next”sc_15

15. I checked manually that my SCCM server have Full Control in “System Management” containter. WSUS SDK warning related with version of WSUS services. Just ignore it or update your WSUS.sc_16

16. Done!sccm_final

Don’t forget to update SCCM Server before your configuration! http://support.microsoft.com/kb/2706783 or just wait to SP1 release 🙂

Leave your comments! Thanks!