문제

I have 2 SQL 2017 Instances on each node in a 2 node cluster with a file share witness. 8 cores and 64GB RAM on each.

Node A acts as the primary for Instance 1 and Node B acts as the primary for Instance 2 . (Synchronous) Node B acts as the secondary for Instance 1 and Node A acts as the secondary for instance 2. (Synchronous)

I am wondering what the right balance of resources (Max DOP and Max Memory) would be in the ideal scenario? Would I be shooting myself in the foot by setting maxdop = 8 on the primaries? What is advisable for Maxdop on the secondaries in this situation?

Likewise, generally how much max memory should I set for the primary/secondary? (Obviously leave some for OS as well)

I am already working on a solution to re-balance the resources in the event of a failover, so no need to account for that in your reply. Unfortunately, this is for a Production build where I am unable to replicate the amount of typical load, so any generalities are welcome.

Thanks!!

도움이 되었습니까?

해결책

I am already working on a solution to re-balance the resources in the event of a failover, so no need to account for that in your reply.

That's actually the main thing that drives the reply. If you don't sharply limit each primary instance it will acquire an unfair share of the server memory, and you may have severely degraded performance of the other instance after failover.

If you rebalance by setting max server memory for both instances in the case of a failover, you may run without limiting it on each node normally.

I would not limit the CPU affinity or maxdop on either instance. The OS allocates CPU resources very dynamically and fairly, so unless you observe one isntance being starved by excessive CPU utilization from the other instance, just leave those at the default settings.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 dba.stackexchange
scroll top