Hi Jerry,
I think Bret explain what could be the problem here and you confirmed that with “dataserver process is using more than 95 %CPU”, when engine, engines are very close to 100% user busy task maybe not get schedule time which mean we do not process the deferred queue and do not schedule connection handler the first lead to “The internal timer is not progressing ….” and the second to that the client getting the “ct_connect(): user
api layer: internal Client Library error: Read from the server has timed out”.
As Bret said a couple of shared memory dump will help to Diagnostic this problem that is best done with a support case this is how to collect the manual shared memory dump.
https://support.wdf.sap.corp/sap/support/notes/1940109
You need to be logged in to service market place to open this link.
A other question is this running on a Virtual environment ? and what Kernel mode are you use in ASE 15.7 ?
You could also investigate this from the operating system level as an start, checking what take the 100%.
1. How to identify highest thread usage by CPU in the dataserver process for linux ?
top -H -p <pid> or to save to file top -n 10 -b -H -p <pid of dataserver> > top-output.txt
About option -b and -n from the linux top command man page:
-b : Batch mode operation
Starts top in "Batch mode", which could be useful for sending out put from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations
limit you have set with the -n command-line option or until killed.
-n : Number of iterations limit as: -n number
Specifies the maximum number of iterations, or frames, top should produce before ending.
2. Find Thread stack , you can use nsd -stacks or use OS debugger
On Linux pstack maybe not exist if it does not exist. pstack is symlink to gstack which is part of the gdb package so gstack could be used.
This could give some idea which thread is the one that have most User Busy Utilization and what it is doing at that time.
Niclas