Re: MULTIPROCESSOR OPTION 7.13
Posted in 1996
In article <327fa20d.27552573@news.netline.net>, Allen Jantzen <allenj@ndr.com> writes >The Informix DSA Administrators Guide, version 7.1, page 10-18 says > >"On some two-processor computers, you should only run one CPU virtual >processor because the overhead of synchronizing the two virtual >processors offsets the benefit of distributing the processing" > >Of course, using one CPU virtual processor means that the >MULTIPROCESSOR option should be set to zero, which means that >I am telling Informix that I don't have more than one processor >and am basically crippling my server software for parallelism/PDQ. > >So far, my tests have been fairly close either way. Can anyone provide >any further insight into this? > >I am using an HP J200 with 2 100 MHZ PA-RISC processors and >Informix DSA 7.13.UC1 > >Any assistance appreciated > >Allen Jantzen >allenj@ndr.com When there is >1 CPU then access to memory needs to be co-ordinated amongst threads which run on CPU VPs E.g, sqlexec (sql processing) threads which access things like stored procedure caches, dictionary caches etc. This means that internal mutexs (Mutual Execlusion) latches need to be checked. With only 1 CPU VP and a guranteee that only one CPU VP will every run (i.e. SINGLE_CPU_VP set to Y in onmonitor) there can only every be one thread which runs on a CPU VP running at any one time. Thus nothing is need to co-ordinate access to stored procedure caches and dictionary caches. Since these internal mutexes do not need to be checked performance slightly improves. However if 2 CPU VP's are active then in theory they can both run threads at the same time thus giving better performance, assume one CPU VP do not spend most of it's time running and not waiting on a mutex held by the other one. Also other applications run on the processrrs then there is less time when both CPU VPs are running and so little performance increase and possibly a performance decrease with the extra overhead of check all the mutex which may be held by the other CPU VP which is not running. Since the overhead of checking mutexes varies amongst operating systems and the amount of contention between CPU VP's depends upon the work they are doing it also depends upoin the application/hardware involved. The only real answer is to try it set both ways and see which is the fastest. It depends upon so many factors that it is quick to just try it. -- David Williams