Find the answer to your Linux question:
Results 1 to 2 of 2
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1

    MySQL optimization or why the server is worsened


    Please advise me how can I optimize my MySQL server. Or advise which way to look. Maybe someone had similar problems?

    Over the past two weeks the MySQL server dropped 2 times. I began searching for ways to optimize the server.

    Overall the picture like that:
    There is a separate MySQL server (Debian), it stores the information for the call center built on top of the Asterisk open source IP PBX (separate server). Almost all information of the call center stored in the MySQL: call queues, agents, IVR values, CDR etc. The Asterisk constantly interacts with the MySQL server to get or to put info. Average number of phone calls for the system is about 70 calls simultaneously.

    Recently I observed a delay of the redistribution of clients for a free call center agents. A delay was increased from 5 second up to 60 seconds and sometimes even more. I suspected InnoDB locks and transactions deadlocks. And then the MySQL server started falling.

    In SHOW ENGINE INNODB STATUS\G I see a lot of locks and transactions that hang over 40 sec but I can not figure out hot to deal with them. And is it necessary?
    2721452-*** (2) TRANSACTION:
    2721453:TRANSACTION 0 1345044118, ACTIVE 45 sec, process no 23678, OS thread id 140176187664128 starting index read, thread declared inside InnoDB 0
    2721454-mysql tables in use 1, locked 1
    2721455-10 lock struct(s), heap size 3024, 7 row lock(s), undo log entries 2
    Also in the output is a bunch of information but I do not know what conclusions could be made for those values. Please look and tell me what values are most suspicious on your point of view.
    Complete log of half a month can be found in the file *show_engine_innodbAndProc_stat_10Apr2013

    Peak CPU load by mysqld is quit high as can be seen from the graphs. Memory and disk are not heavily loaded. See all the graphics in *graphs
    The list of MySQL tables and their engines can be seen in *mysql_engines
    MySQL global variables in *mysqlGvars.txt
    The MySQL server hardware settings in *phys_mysql_server

    *All files can be downloaded by the link

  2. #2
    Penguin of trust elija's Avatar
    Join Date
    Jul 2004
    Either at home or at work or down the pub
    If it's not already on, turn on the slow query log. Once you are collecting data for at least a day, use mysqldumpslow to summarise the log. Once you have identified the most common culprits, you can start to look at indexing to improve their performance. For this the explain command is your friend.

    This is where I would start as a poorly indexed query or two can bring a server to it's knees. A good index for your data will sometimes change as the amount of data grows and / or the use of the data changes
    Should you be sitting wondering,
    Which Batman is the best,
    There's only one true answer my friend,
    It's Adam Bloody West!

    The Fifth Continent

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts