[help]the CPU usage for jchem base db search

User fc7e70056e

24-08-2009 05:30:02

Use JChem Base API:jChemSearch in J2EE projrammer(JChem 5.2).


only put one query structure with format smiles as condition. do substructure searching.


there are 300,000 compound structure in structureTable.


>5 concurrent user do the searching.


the CPU usage in Server B always be 100%, why?


to reduce the CPU usage, what can I do?


 


Server A:
Microsoft SQL Server 2008
Windows server 2003 SP2
Intel Pentium Dual CPU
E2140 @ 1.60GHZ
2.00 GB RAM



Server B:
tomcat6.0
Windows server 2008
Pentium Dual_Core CPU E5200 @ 2.5GHZ
4.00 GB RAM
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)

ChemAxon 9c0afc9aaf

24-08-2009 19:26:00

Hi,


 


the CPU usage in Server B always be 100%, why?


You mean even after all searcheds finished ? (Have all the 5 searches finished) ?


Could you paste the parts of the code where you start the searchers and where you are waiting for them to finish ?


 


Best regards,


 


Szilard



User fc7e70056e

25-08-2009 03:53:26

jChemSearch.setStructureTable(structureTableName);
     
jChemSearch.setQueryStructure(structure);
     
jChemSearch.setSearchOptions(jcSearchOptions);
     
jChemSearch.setConnectionHandler(connectionHandler);
     
jChemSearch.setRunMode(JChemSearch.RUN_MODE_SYNCH_COMPLETE);


jChemSearch.run();
jChemSearch.getResults();


 


the 5 searches do the circulatory searching, with 2 second interval. Continue to 5 minutes.


the CPU usage was so high only the 5 searches is running.


Is that JChemSearch need so much CPU usage, or I need to put some options to JChemSearch to reduce the CPU usage.

ChemAxon 9c0afc9aaf

25-08-2009 15:31:39

Obviously any kind of calculation on a computer finishes soonest if it is able to use the CPU 100%, so that is a favorable situation.


There is no option to slow down the JChemSearch or any other of our calculations by reducing CPU usage.


 


Best regards,


Szilard


 

User fc7e70056e

26-08-2009 05:40:57

Is it possible to influence on the searching speed (the response time at client side) if there are more than 200 concurrent users who are doing the search on our web server at the same time?


 We use LoadRunner to simulate the virtual users for frequent visiting.

ChemAxon aa7c50abf8

26-08-2009 10:52:12

Others may give you better, JChem-specific answers, but one simple solution to deal with this kind of problems immediately jumps to my mind: limit the number of concurrent searches to an amount which your particular hardware/OS/DB configuration can cope with.


Taking the JDBC connections required by JChemSearch from a bounded JDBC connection pool should automatically throttle the concurrent searches, as the pool.getConnection() call will block after the configured number of connections are all in use.


Peter



 

User fc7e70056e

27-08-2009 12:07:37

Thanks for your help.