The hardware requirements in Lync Server 2013 have increased since the previous version, which makes sense since now Audio/Video Conferencing, Monitoring and Archiving roles can be collocated in the Front End. As a result, more CPU and RAM are needed to make Lync Server 2013 work properly.
When you deploy one Standard Front End you will have 3 local SQL database instances running; on the contrary, the Enterprise Front End runs 2 SQL instances. These instances are SQL Express and now it gets tricky, especially if you have a virtual machine host with 4 physical CPUs and you create a new virtual machine with 4 Cores, assigning each Core to each Socket (physical CPU) available.
Lync services will use all available Cores independently if they are on the same Socket or note, but there is a catch — SQL Express license only allows the instances to use 1 Socket. Thus, if you have each Core on separated Sockets, all SQL Express instances will only use 1 Core, and in larger deployments this can cause client disconnect issues, conferences failing and overall user experience degradation.
If you are using Windows Server 2012, you can check in Task Manager how many Sockets and Cores you have.
In the previous image you can see that this Virtual Machine is running on 1 Socket and has 2 Cores.
On Windows Server 2008 R2 you can run the following PowerShell cmlet:
gwmi Win32_ComputerSystem | select NumberOfProcessors, NumberOfLogicalProcessors | fl
Where NumberOfProcessors corresponds to the number of Sockets (physical CPUs) and NumberOfLogicalProcessors is the number of CPU Cores.
You must carefully prepare your Lync 2013 deployment. If you have a Standard Front End, make sure that you assign 4 CPU Cores to the same Socket. On Enterprise the same applies but keep in mind that, if you have 4 Front End‘s, you should not assign the same Socket to all Cores.
The SQL Express limitation is 1 Socket or 4 Cores. You can check this in: Features Supported by the Editions of SQL Server 2012.