[leecholho]님이 남기신 글:
>답변 주셔서 감사합니다.
>
>max_connections은 원래대로 계산했을때 넘 낮아서 그냥 높여
놓은건데
>문제가 될만할까요? 현재는 2048로 해놧습니다.
>1000개 밑으로 할려고 했는데 mysql_status에서 계속 빨간글로
올리라는
>말이 나와서요.. 실제로 계산했을때 한 3~400정도에서 왔다 갔다
했던것
>같습니다.
>
>그리고 스왑의 문제인데요..
>disk I/O는 레이드1로 묶은 상태이거든요(하드는
스카시에 15000rpm)
>문제가 생겼을때에 1000개 가까이 프로세스가 올라갔을때
메모리가
>부족하다고 나왔는데 그때 사용한게 아닌가 생각이
듭니다만은
>이부분의 가능성은 없는것인가요?
>
>
>[산이]님이 남기신 글:
>
>>
>>[leecholho]님이 남기신 글:
>>
>>>죄송합니다. 빠진 내용이 있어서..
>>>현재 시스템을 2G에서 4G로 올릴려고 하고 있습니다.
>>>의견내어주실만
부분있다면 어떤 부분이 있을까요?
>>
>>========================================
>>
>>
>>와우 초당 100 쿼리면 상당하군요.
>>
>>일단 눈의 띄는 부분만 언급합니다.
>>(mysql_status 제가 짰지만 제가 보기에 편하네요. ㅎㅎ)
>>
>>1. Create_tmp_disk_tables_per 이 값이 약 50%에 육박하는데
>>tmp_table_size 가 작다는 의미입니다. 이 값을 32MB 에서
>>64MB 로 올려보고 차후에도 Create_tmp_disk_tables_per 값이
>>안 떨어지면 128MB 순으로 올려보세요.
>>
>>
>>2. max_connections = 16,384
>>웁 이값 너무 큽니다.
>>
>>key_buffer_size + (record_buffer + sort_buffer) * max_connections = available of
memory
>>
>>이런 계산식입니다.
>>
>>mysql 은 4.x에서는 튜닝만 잘하면 500까지는 나올 수
있지만,
>>max_connections 이 300 이상 넘기 어렵습니다.
>>
>>
>>3. read_rnd_buffer_size = 256 KB
>>
>>이 값이 너무 작은것 같습니다. 1번 처럼 두배씩(512KB, 1M,
2M)
>>순차적으로 2MB 까지 적용해 보세요.
>>
>>
>>현재까지의 status 로 봐아 디스크 스왑을 상당히 쓴것도
같네요.
>>
>>혹 시스템 스왑과 disk I/O 를 5분 단위로 주기적으로 체크(또는
그래프)해 보세요.
>>
>>아마 해답이 여기에 있을 듯 하네요.
>
>========================================
========================================
max_connections 이 500 이상 넘어간 상태에서 빨간색 멘트가
나오면(거의 기계적인 멘트이지만) 절대적으로 메모리가
부족한 상황입니다.
아마 덩치큰 SQL 이 가동된것도 같습니다. 차후 sql 을 튜닝해
보시고,
현재로서는 메모리를 4G 이상을 장착해야 그럭저럭 돌것도
같네요.
혹 DB 용량이 많지 않으면(1GB 이내) tmpfs (메모리기반) 에
올려놓고
사용해 보는 것도 한가지 방법이 될 수 있습니다.
이때는 재부팅되면 데이터가 모두 날라가므로 replications 이
필수적입니다.
|