
이전에 여러 번 수행했던 작업인 OpenVZ로 프로덕션 서버를 옮겼지만 이번에는 특정 작업의 트랜잭션 동작에 영향을 미쳤습니다.
내 테이블은 모두 innoDB입니다. 기본 상태에서 매개변수를 변경하지 않았습니다.
JBoss에 대한 특정 요청으로 인해 완료하는 데 정확히 10초가 걸리는 트랜잭션이 발생하지만 간헐적으로만 발생합니다. 보통 그들은 번개처럼 빠릅니다.
my.cnf나 Mysql 변수에서 이 10초 지연에 해당하는 내용을 찾을 수 없습니다. Innotop에 나타나는 트랜잭션을 볼 수 있는데, Q-쿼리 모드로 전환하면 f를 눌러도 전체 쿼리를 볼 수 없습니다.
지연이 되어도 기능이 깨지지 않기 때문에 롤백 같은 건 없는 것 같습니다. JBoss는 표준 구성에 따라 300초의 트랜잭션 시간 초과를 갖습니다.
/proc/user_beancounters에는 제한이 없습니다(OpenVZ는 VM이 리소스 할당량을 초과하는 경우 이를 모르는 사용자를 위해 추적합니다).
이 병목 현상이 어디서 발생하는지 확인하는 데 어려움을 겪고 있습니다.
답변1
좋아요, 이제 대답할 수 있어요.
Mysql이 연결을 처리하는 방법을 읽어보니 사용자가 하지 말라고 지시하지 않는 한 항상 역방향 조회를 시도하고 10초 후에 이 시도가 시간 초과되는 것으로 나타났습니다.
내 네트워크에서 왜 간헐적으로 시간 초과가 발생하는지 모르겠지만 다음을 추가하면 됩니다.
건너뛰기 이름 해결
my.cnf로 이동하면 문제가 사라졌습니다.
Jboss는 정기적인 활동량으로 인해 활성 상태를 유지해야 하는 풀링된 연결을 사용하기 때문에 실제로는 전혀 이해가 되지 않습니다.