2014-09-29 4 views
0
  1. 배경 : 나는 그것이 PHP/MySQL은/​​버전/구현 문제라고 생각하기 때문에 .NET 개발자 제한 PHP 코딩 지식
  2. 이 질문을 해달라고 부탁, 그리고 OSticket dev 측에서 실제 정보를 얻는 중 ...
  3. 내 코딩/db 지식이 필자에게 이것이 서버 설정과 관련이 없다고 말했기 때문에 나는 이것을 Serverfault에 게시하지 않았으며 위와 같이 OSticket 자원에서 많은 정보를 얻지 못했다. .
  4. IIS7, MySQL은 5.6, PHP 5.5.13

우리는 두 개의 서버를 실행하고 있습니다. 둘 다 Server 2008을 실행합니다 (1 = Web, 1 = 표준).OsTicket + IIS + MySQL을 + 매우 느린 쿼리

두 서버 모두 IIS 환경에서 PHP를 구성하여 OSticket을 실행합니다. (두 개의 서로 다른 osTicket 구현 및 데이터베이스)

1 대의 서버에서 수천 개의 티켓으로 모든 것이 정상적으로 작동합니다. 다른 서버에서는 쿼리가 최대 90 초가 걸리며 대부분 30 ~ 40 초가 걸립니다 ...이 쿼리는 매우 단순한 쿼리처럼 보입니다 ...이 db tho에는 약 16,000 개의 티켓이 있습니다 ... 일부는 적당한 크기입니다 첨부 파일 ...

두 서버 모두 동일한 버전의 OSticket을 실행합니다.

문제는 기본 쿼리와 지연의 이러한 유형의 고통을 내가 한 번했던 MySQL의 코드 구현, 생각 나는 ... 나는 몇 가지 간단한 쿼리 변경을 가 있고, 그것은에 의해 가속화 인자. 이 문제는 매우 유사한 냄새를 맡습니다.

은 내가

  • 건너 뛰기 DNS는
  • MySQL의 InnoDB의 높이 TRX 로그 0에 2
  • 를 해결

    1. 고정 IP에 바인딩 및 lcoalhost를 사용하지 않는 MySQL의에서 다음과 같은 시도 모든 테이블을 수리했습니다. 테이블

    서버가 정말로 엉덩이입니다. 그것은 16GB RAM과 8 코어를 가지고 있습니다. IIS, MSSQL 등의 다른 서비스도 실행하지만 명시된 바와 같이 그 내용은 서버 설정/자원 문제라는 것을 알지 못합니다.

    MySQL은 1GB의 RAM에 대해이 소요되며, 시간, 5-15 %의 CPU는 .... 느린 쿼리의

    예는 다음과 같다 (CPU는 ... 나에게 높은 것) :

    SET timestamp=1411987784; 
    SELECT thread.*, info.email_mid, info.headers ,count(DISTINCT attach.attach_id) as attachments FROM ost_ticket_thread thread LEFT JOIN ost_ticket_email_info info 
           ON (thread.id=info.thread_id) LEFT JOIN ost_ticket_attachment attach 
           ON (thread.ticket_id=attach.ticket_id 
             AND thread.id=attach.ref_id) WHERE thread.id=108610 AND thread.thread_type='N' GROUP BY thread.id; 
    # Time: 140929 12:49:44 
    # [email protected]: osticket[osticket] @ PLM-S01 [192.168.10.11] Id: 154 
    # Query_time: 28.177612 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 108472 
    

    InnoDB의 상태 쿼리 반환 :

    ' 
    ===================================== 
    2014-09-29 14:25:16 25b0 INNODB MONITOR OUTPUT 
    ===================================== 
    Per second averages calculated from the last 57 seconds 
    ----------------- 
    BACKGROUND THREAD 
    ----------------- 
    srv_master_thread loops: 1972 srv_active, 0 srv_shutdown, 5354 srv_idle 
    srv_master_thread log flush and writes: 7325 
    ---------- 
    SEMAPHORES 
    ---------- 
    OS WAIT ARRAY INFO: reservation count 1366361 
    OS WAIT ARRAY INFO: signal count 1108283 
    Mutex spin waits 2150949, rounds 3167588, OS waits 18721 
    RW-shared spins 1435812, rounds 40962905, OS waits 1344494 
    RW-excl spins 2597, rounds 57911, OS waits 1364 
    Spin rounds per wait: 1.47 mutex, 28.53 RW-shared, 22.30 RW-excl 
    ------------ 
    TRANSACTIONS 
    ------------ 
    Trx id counter 6366171 
    Purge done for trx''s n:o < 6366156 undo n:o < 0 state: running but idle 
    History list length 325 
    LIST OF TRANSACTIONS FOR EACH SESSION: 
    ---TRANSACTION 0, not started 
    MySQL thread id 14, OS thread handle 0x25b0, query id 61326 localhost 127.0.0.1 osticket init 
    SHOW ENGINE INNODB STATUS 
    ---TRANSACTION 0, not started 
    MySQL thread id 13, OS thread handle 0xa94, query id 57911 localhost 127.0.0.1 osticket cleaning up 
    ---TRANSACTION 0, not started 
    MySQL thread id 6, OS thread handle 0x1cd4, query id 404 PLM-S01 192.168.10.11 osticket cleaning up 
    ---TRANSACTION 6366167, ACTIVE 49 sec starting index read 
    mysql tables in use 1, locked 1 
    LOCK WAIT 2 lock struct(s), heap size 360, 1 row lock(s) 
    MySQL thread id 318, OS thread handle 0x20b8, query id 60114 PLM-S01 192.168.10.11 osticket updating 
    UPDATE ost_ticket SET isoverdue=1, updated=NOW() WHERE ticket_id=21086 
    Trx read view will not see trx with id >= 6366168, sees < 6366153 
    ------- TRX HAS BEEN WAITING 48 SEC FOR THIS LOCK TO BE GRANTED: 
    RECORD LOCKS space id 136 page no 142 n bits 216 index `PRIMARY` of table `plm_osticket`.`ost_ticket` trx id 6366167 lock_mode X locks rec but not gap waiting 
    Record lock, heap no 30 PHYSICAL RECORD: n_fields 24; compact format; info bits 0 
    0: len 4; hex 0000525e; asc R^;; 
    1: len 6; hex 0000006123c9; asc a# ;; 
    2: len 7; hex 6f000002e201ca; asc o  ;; 
    3: len 6; hex 373939353332; asc 799532;; 
    4: len 4; hex 000003a0; asc  ;; 
    5: len 4; hex 00000000; asc  ;; 
    6: len 4; hex 00000001; asc  ;; 
    7: len 4; hex 00000002; asc  ;; 
    8: len 4; hex 00000002; asc  ;; 
    9: len 4; hex 00000000; asc  ;; 
    10: len 4; hex 0000000a; asc  ;; 
    11: len 4; hex 00000000; asc  ;; 
    12: len 4; hex 00000005; asc  ;; 
    13: len 13; hex 3139322e3136382e31302e3836; asc 192.168.10.86;; 
    14: len 1; hex 02; asc ;; 
    15: len 1; hex 01; asc ;; 
    16: len 1; hex 00; asc ;; 
    17: SQL NULL; 
    18: len 5; hex 9993f541b1; asc A ;; 
    19: SQL NULL; 
    20: len 5; hex 9993f541b1; asc A ;; 
    21: len 5; hex 9993ecb9a6; asc  ;; 
    22: len 5; hex 9993eca222; asc  ";; 
    23: len 5; hex 9993fae4da; asc  ;; 
    
    ------------------ 
    ---TRANSACTION 6366153, ACTIVE 351 sec fetching rows, thread declared inside InnoDB 1070 
    mysql tables in use 2, locked 0 
    33 lock struct(s), heap size 6544, 33 row lock(s), undo log entries 208 
    MySQL thread id 314, OS thread handle 0x1864, query id 61324 PLM-S01 192.168.10.11 osticket Sending data 
    SELECT thread.*, info.email_mid, info.headers ,count(DISTINCT attach.attach_id) as attachments FROM ost_ticket_thread thread LEFT JOIN ost_ticket_email_info info 
           ON (thread.id=info.thread_id) LEFT JOIN ost_ticket_attachment attach 
           ON (thread.ticket_id=attach.ticket_id 
             AND thread.id=attach.ref_id) WHERE thread.id=109028 AND thread.thread_type=''M'' GROUP BY thread.id 
    Trx read view will not see trx with id >= 6366154, sees < 6366114 
    -------- 
    FILE I/O 
    -------- 
    I/O thread 0 state: wait Windows aio (insert buffer thread) 
    I/O thread 1 state: wait Windows aio (log thread) 
    I/O thread 2 state: wait Windows aio (read thread) 
    I/O thread 3 state: wait Windows aio (read thread) 
    I/O thread 4 state: wait Windows aio (read thread) 
    I/O thread 5 state: wait Windows aio (read thread) 
    I/O thread 6 state: wait Windows aio (write thread) 
    I/O thread 7 state: wait Windows aio (write thread) 
    I/O thread 8 state: wait Windows aio (write thread) 
    I/O thread 9 state: wait Windows aio (write thread) 
    Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] , 
    ibuf aio reads: 0, log i/o''s: 0, sync i/o''s: 2 
    Pending flushes (fsync) log: 0; buffer pool: 0 
    7329448 OS file reads, 28218 OS file writes, 9771 OS fsyncs 
    1264.75 reads/s, 16384 avg bytes/read, 4.51 writes/s, 1.70 fsyncs/s 
    ------------------------------------- 
    INSERT BUFFER AND ADAPTIVE HASH INDEX 
    ------------------------------------- 
    Ibuf: size 1, free list len 17, seg size 19, 3190 merges 
    merged operations: 
    insert 3265, delete mark 252, delete 0 
    discarded operations: 
    insert 0, delete mark 0, delete 0 
    Hash table size 722273, node heap has 1 buffer(s) 
    566.90 hash searches/s, 68.35 non-hash searches/s 
    --- 
    LOG 
    --- 
    Log sequence number 5444405216 
    Log flushed up to 5444396184 
    Pages flushed up to 5444396184 
    Last checkpoint at 5444396184 
    1 pending log writes, 0 pending chkp writes 
    3744 log i/o''s done, 0.67 log i/o''s/second 
    ---------------------- 
    BUFFER POOL AND MEMORY 
    ---------------------- 
    Total memory allocated 373637120; in additional pool allocated 0 
    Dictionary memory allocated 399883 
    Buffer pool size 22272 
    Free buffers  1010 
    Database pages  21261 
    Old database pages 7828 
    Modified db pages 12 
    Pending reads 1 
    Pending writes: LRU 0, flush list 0, single page 0 
    Pages made young 16540365, not young 61439991 
    2726.25 youngs/s, 8876.23 non-youngs/s 
    Pages read 7329387, created 989, written 23206 
    1264.80 reads/s, 0.21 creates/s, 3.63 writes/s 
    Buffer pool hit rate 950/1000, young-making rate 107/1000 not 351/1000 
    Pages read ahead 61.74/s, evicted without access 7.81/s, Random read ahead 0.00/s 
    LRU len: 21261, unzip_LRU len: 0 
    I/O sum[59357]:cur[18], unzip sum[0]:cur[0] 
    -------------- 
    ROW OPERATIONS 
    -------------- 
    1 queries inside InnoDB, 0 queries in queue 
    2 read views open inside InnoDB 
    Main thread id 8924, state: flushing log 
    Number of rows inserted 3212, updated 1123, deleted 8, read 132865050 
    1.58 inserts/s, 0.25 updates/s, 0.00 deletes/s, 19276.61 reads/s 
    ---------------------------- 
    END OF INNODB MONITOR OUTPUT 
    ============================ 
    ' 
    

    가 나는 바이올린을 켜는 시작할 수있는 위치에 대한 몇 가지 아이디어를 부탁드립니다 ...

  • 답변

    0

    완전히 새로운 데이터베이스를 작성하고 양식 긁기를 시작했습니다.