I have customized the employee scheduling App. Then I run it inside the AWS EC2 instance as a Java application. But the server terminated within 1 minute.
The log it printed is not much helpful: The last few line of the log is given below:
2024-11-08 09:57:09,349 ip-172-31-51-70 quarkus-run.jar[1592] DEBUG [ai.tim.sol.cor.imp.loc.DefaultLocalSearchPhase] (pool-5-thread-1) LS step (24)>
2024-11-08 09:57:09,366 ip-172-31-51-70 quarkus-run.jar[1592] DEBUG [ai.tim.sol.cor.imp.loc.DefaultLocalSearchPhase] (pool-5-thread-1) LS step (25)>
2024-11-08 09:57:09,381 ip-172-31-51-70 quarkus-run.jar[1592] DEBUG [ai.tim.sol.cor.imp.loc.DefaultLocalSearchPhase] (pool-5-thread-1) LS step (26)>
2024-11-08 09:57:09,395 ip-172-31-51-70 quarkus-run.jar[1592] DEBUG [ai.tim.sol.cor.imp.loc.DefaultLocalSearchPhase] (pool-5-thread-1) LS step (27)>
2024-11-08 09:57:09,408 ip-172-31-51-70 quarkus-run.jar[1592] INFO [io.quarkus] (Shutdown thread) employee-scheduling stopped in 0.320s
We have contacted with AWS engineers also. They told it is happening for CPU utilization. For some period of time it gets 100% CPU utilization.
Is there any fix available?
The solver is designed for 100 % CPU utilization - local search is a compute-heavy operation, and to find the needle in the haystack, it needs all the CPU you can give it, for as much time as you can afford.
If your cloud provider is killing your solver because of CPU utilization, it's not the right fit. Although I doubt that this is the actual reason - we run solvers in the cloud all the time.