We have one 2.60 and one 3.60 database running, both native, on one server. Most clients use a terminal server client from which they connect to their Navision. So all TS’s have 2.60 and 3.60 clients installed and running.
Because our users experience a drop down in performance several times a day we are investigating all possible causes. As part of that investigation we found information about Navision only using one processor / core.
Of course as part to solve the problem, but also out of curiosity we like to find out more about the way Navision server and client works in a multiprocessor or multi-core environment.
Say we have two processors on our Navision server, how will the 2.60 and 3.60 services run?
• Both on the same processor?
• The first on the first processor and the second on the second processor?
• The first on the first processor and the second on the processor under the least load?
The same question for multiple clients on a terminal server with two processors:
• All on one processor?
• Alternating between the two processors?
• On the processor with the lowest load at start up?
Since we also think about a technical upgrade, is Navision 5.00 capable of using more processors / cores?
Comments
That is related to window workload distribution.. Windows “might” allocated one process to each CPU but aren’t guaranteed. If I’m not in mistake after services are running you can manually assign a process to each CPU.
When you are running in terminal services with several clients you most probably will have workload distributed by CPU’s.
No, it’s still limited to single CPU.
I think your are mixing concepts. Each process will use only a CPU but don’t forget that each client is an independent process.
Freelance Dynamics AX
Blog : http://axnmaia.wordpress.com/
But Terminal Services is a multi-processor aware application. It will take advantage of the extra processors.
This is all irrelevant. (Logically I will assume that the terminal services are running on a different machine) so...
Navision server will run fine on a 486, (assuming the OS is not CPU intensive) the processor is barely used, so CPU is for sure NOT your bottle neck. Firstly make sure you have enough ram to give each Navision Server 1 gig of ram, so at least 2.5 gig.
But the big thing will be drives and spindles. How many drives do you have, and make sure that the drives are separated, and no parts share a drive (spindle). Also how are the controllers working, if they are fast enough they should handle all the drives, but if possible it might be better to have separate controllers for each Navision Server.
How big are the databases, and how many users.
Also make sure there is NOTHING else running on the Navision server, no BDC or backup tapes etc. HotCopy is the only other thing you should have on that machine.
Yes that’s I told that each process will use a single CPU. But process it will distributed by CPU’s
Freelance Dynamics AX
Blog : http://axnmaia.wordpress.com/
1. Windows system processes (kernel threads) are by default bound to logical processor 0
2. NIC interrupt services are bounded the last logical processor. As far as I remember NIC 0 to the last, NIC1 to previous, etc.
If you want to control what process is run on what logical processor you may set affinity for each running process. Affinity is a 32 bit mask telling the system on which logical processor particular process can be run
You may use ProcessExplorer tool from ww.sysinternals.com to set affinity mask for running process.
The problems with affinity mask are that with the affinity you can restrict the single particular process from using some of logical processors but you cannot warrant that only this process will be run on selected logical processor.
Second - Sysinternals ProcessExplorer tool allows you to change affinity of existing, running process, and I'm not aware of any other tool which allows you to preassing the affinity mask so each time process is restarted the affinity is re-applied.
To recap - with affinity setting you can for example exclude all but one logical processor for Navison 2.6 database server, and exclude all but different one logical processor for Navision 3.6 server, forcing in effect both servers to use different logical processors. Another question is - do you believe that you will do it manually better than OS ?
I'm using 'logical processor' to indicate single core processor, or single core in multi core processor, or virtual processor in hyper-threaded cores/processors.
Here situation is a bit better as every client will have its own process so most probably Windows OS will distribute the load across all available logical processors, however single client will be not faster than like on single-core processor machine with the same clock speed.
No, NAV 5.0 is still single-threaded application. However it might be faster due to some other reasons, but I've never compared 5.0 vs. 2.6 performance on the native database, so this is my guess only.
To use SQL database probably technical update to at least 4.0SP3 with some platform updates is a must IMHO.
Regards,
Slawek
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-03
This is irrelevant anyway. The reason Navision's native server does not use multi threading, is because there is no benefit to it. The CPU is NEVER the bottle neck, its normally the drives and some times the RAM.
There have been no substantial changes to the server from 2.60 to 5.00, so a technical upgrade of the server is not going ot benefit (Though the client upgrade should help).
If you want this system to go fast then stop wasting time on CPUs and look at the drives.
](*,)