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