나는 MySQL, Grails, Java와 싸우고있다.mysql 프로세스 간의 우선 순위 설정
- Grails 앱이 실행되는 앱 서버가 있습니다.
- mysql db가있는 다른 서버가 있습니다.
- 저는 하나의 Java 응용 프로그램을 가지고 있으며 서버에 연결하여 CSV 파일로 데이터를 내보냅니다.
나는 DB에 많은 데이터 (10 백만개의 레지스터)가 있고, 15 분마다 Grails 앱이 DB에 연결되어 새로운 정보를 확인하고 저장한다. 정상적인 작동 방법.
제 문제는 grails 응용 프로그램이 작동하는 동안 DB의 정보 일부를 내보내는 Java 응용 프로그램을 실행하고 싶습니다. 그러나 내 문제는 프로세스가 느리게 재검색된다는 것입니다. 나는 설명 할 것이다 :
Grails의 응용 프로그램이 작동하면, 내 자바 응용 프로그램은 모든 data.The 자바 였는지를이 CPU의 약 0.3-0 %를 소요 수출 사일 주위가 필요합니다.
Tomcat을 끈 경우 결과적으로 DB에 대한 모든 연결 (mySQL에서 show processlist 명령)이 약 40 분이 걸리므로 모든 프로세스가 완료됩니다. Java 프로세스는 CPU의 약 85 %를 차지합니다.
나는 문제가 무엇인지에 대해 잘 모르겠지만, 나는 모든 것을 시도하고, 내 문제는 내가 Grails는 내가 내보낼 모든 시간을되는 앱을 중지 할 수 없다는 것입니다. 이 때문에, Java 프로그램의 우선 순위를 높이기 위해 프로세스 간 우선 순위를 부여하는 방법이 있습니다.
미리 답변 해 주셔서 감사합니다.
그래서 Tomcat 및 Grails가 실행 중일 때 자바 기반보고 프로그램은 4 일 동안 CPU 시간이 거의 필요하지 않습니까? 그리고 자체적으로 실행될 때 (Tomcat이없고 Grails도 없음), CPU 시간 85 %에서 40 분 동안 실행됩니까? –
예, 더 많거나 적습니다. 내 Java 응용 프로그램 외에도 DB에 더 많은 연결이있는 것처럼 보입니다. 모든 것이 실제로 느리며 가장 낮은 우선 순위를 가진 것처럼 보입니다. –
DB는 InnoDB입니다. –