솔라리스에서 싱글스레드로 멀티프로세싱할때 문제가 발생합니다..
안녕하세요 CPU 퍼포먼스 관련해서 도움을 받고자 합니다...
마이그레이션을 진행하는데(로컬간) 총 유저 2800 명을 100명 단위로 나눈뒤 한 프로세스로 잡고
가상서버 2대(Solaris 10 spracv9 - T4) 에 각각 14개씩 돌리는 방식입니다.
두대의 솔라리스 서버는 한대의 리눅스 DB서버(mysql)를 바라보고있습니다.
프로세스는 로컬내 유저의 sqlite 를 한번 질의 후 File과 함께 DB정보를 mysql로 마이그레이션 하는 로직입니다.
(DB,File 스토리지는 NFS 에 마운트되어있습니다.)
문제는 OS 재부팅 후 발생했는데...
문제가 발생하기 전까지는 mysql에 초당 4000~5000개의 쿼리를 요청하여 처리하였으나
문제가 발생 후에는 초당 100개도 요청하지 못하고있습니다.
cpu 모니터링을 좀 해 본 결과...
prstat -mL 로 확인하면 12개의 모든 해당 프로세스의 LCK 비율이 100% 인걸 확인하였으며
top 에서 kernel의 사용률이 계속 60%이상, 프로세스들은 계속 cpu on 상태로 sleep은 전혀 하지 않고 있었습니다.
( 정상일때는 자주 sleep 했던걸로 기억합니다.)
솔라리스 서버 1대의 물리프로세서는 2대(chip_id 0,1)이며
chip_id 0 = 5core = 40 virtual processor
chip_id 1 = 1core = 8 virtual processor
구성입니다.
OS 담당자는 I/O 상태를 보고 정상이라고 하는데...
저는 왜 재부팅 후 이런 현상이 발생하는지 모르겠습니다. ㅠㅠ
ps. 멀티스레딩으로 진행해보았을때는 LCK는 거의 발생하지않으나 퍼포먼스가 안나와서 포기했습니다...
추가
한가지더말씀드리자면 모든 프로세스는 하나의 로그파일에 로깅합니다
이게문제일까싶어 고쳐보려구요..
댓글 달기