Tadeu Alves wrote:
Thanks for this heads up i was thinking into some of these i was looking into the page that has the calculation of each looking into mysqlperformance blog it's a good idea of add more memory into this variables? query_cache_size= 1000M to 2000M and
innodb_buffer_pool_size= 6000M to 8000M
for the query_cache_size you should see the current query cache efficiency using the Qcache_xxxxx status variables, if you have already a very good performance(http://www.mysqlperformanceblog.com/2006/07/27/mysql-query-cache/) probably is not the case to dedicate an additional gigabyte to it.

the InnoDB buffer pool as a generic rule could be sized to 50%-80% of the available physical RAM, in your case it is already to its maximum recommended size.

remember that some buffers are general, some are per connected thread like 'join_buffer_size', 'sort_buffer_size','read_buffer_size','read_rnd_buffer_size', so their total size will be [threads_connected * (size of all per connection buffers)]

Cheers
Claudio


our maximum users connections are about 400 simultaneous users

On Wed, Apr 1, 2009 at 12:14 AM, Claudio Nanni <claudio.na...@gmail.com <mailto:claudio.na...@gmail.com>> wrote:

    Hi,
    probably your system is swapping on disk,
    immediately reduce the sort_buffer_size, it is a per connection
    buffer, and your setting is way too high:


    sort_buffer_size=1000M  (with 8 client threads you finish your ram)

    set it to something between 256K and 8 M

    sort_buffer_size=1M

    also


    read_rnd_buffer_size=270M

    again is too high, try with same principle (256K - 8M)

    read_rnd_buffer_size=1M


    these are the first quick fixes I would do.

    Cheers

    Claudio


    2009/4/1 Tadeu Alves <tadeu...@gmail.com <mailto:tadeu...@gmail.com>>

        Helo there guys today ive got a brig problem my server that
        runs only Mysql
        is undegoind a very load, the server is ok but memory and cpu
        usage are very
        high
        mys server configuration is a

        2x Quad Core Intel® Xeon® E5450, 2x6MB Cache, 3.0GHz, 1333MHz FSB
        8GB 800MHz Memory
        2x SAS 73GB 15000RPM in RAID 1

        and i'm running Myslq Server version: 5.1.32-0.dotdeb.1 (Debian)
        The server runs mostly InnoD files it has a little Mysam tables

        Oh yeah I use "moodle 1.7.2+" if anyone knows this :D

        bellow is my.cnf file my server is a Ubuntu 8.04 Tls Version
        (with all
        updates and upgrades)

        Really need help cause server may crash and this cannot heapen.


        #####################
        ###### my.cnf #######
        #####################
        #
        # The MySQL database server configuration file.
        #
        # You can copy this to one of:
        # - "/etc/mysql/my.cnf" to set global options,
        # - "~/.my.cnf" to set user-specific options.
        #
        # One can use all long options that the program supports.
        # Run program with --help to get a list of available options
        and with
        # --print-defaults to see which it would actually understand
        and use.
        #
        # For explanations see
        # http://dev.mysql.com/doc/mysql/en/server-system-variables.html
        # This will be passed to all mysql clients
        # It has been reported that passwords should be enclosed with
        ticks/quotes
        # escpecially if they contain "#" chars...
        # Remember to edit /etc/mysql/debian.cnf when changing the
        socket location.
        [client]
        port = 3306
        socket = /var/run/mysqld/mysqld.sock
        # Here is entries for some specific programs
        # The following values assume you have at least 32M ram
        # This was formally known as [safe_mysqld]. Both versions are
        currently
        parsed.
        [mysqld_safe]
        socket = /var/run/mysqld/mysqld.sock
        nice = -18
        [mysqld]
        #
        # * Basic Settings
        #
        user = mysql
        pid-file = /var/run/mysqld/mysqld.pid
        socket = /var/run/mysqld/mysqld.sock
        port = 3306
        basedir = /usr
        datadir = /var/lib/mysql
        tmpdir = /tmp
        language = /usr/share/mysql/english
        skip-external-locking
        #
        # For compatibility to other Debian packages that still use
        # libmysqlclient10 and libmysqlclient12.
        #old_passwords = 1
        #
        # Instead of skip-networking the default is now to listen only on
        # localhost which is more compatible and is not less secure.
        #bind-address = 127.0.0.1
        #
        # * Fine Tuning do MY.CNF #
        #The size of the buffer used for index blocks. Increase this
        to get better
        index handling (for all reads and multiple writes) to as much
        as you can
        afford; 64M on a 256M machine that mainly runs MySQL is quite
        common.
        #key_buffer_size=1500M alterado no dia da divisao dos servidores
        key_buffer_size=2000M
        #Each thread that needs to do a sort allocates a buffer of
        this size.
        #sort_buffer_size=700M alterado no dia da divisao dos servidores
        sort_buffer_size=1000M

        #If no specific storage engine/table type is defined in an
        SQL-Create
        statement the default type will be used.
        default-storage-engine=innodb
        #Used to help MySQL to decide when to use the slow but safe
        key cache index
        create method.
        myisam_max_extra_sort_file_size=300k
        #Don't use the fast sort index method to created index if the
        temporary file
        would get bigger than this.
        myisam_max_sort_file_size=2M
        #The buffer that is allocated when sorting the index when
        doing a REPAIR or
        when creating indexes with CREATE INDEX or ALTER TABLE.
        myisam_sort_buffer_size=100M
        #The bigger you set this the less disk I/O is needed to access
        data in
        tables. On a dedicated database server you may set this
        parameter up to 80%
        of the machine physical memory size. Do not set it too large,
        though,
        because competition of the physical memory may cause paging in
        the operating
        system.
        innodb_buffer_pool_size=6000M
        #Size of a memory pool InnoDB uses to store data dictionary
        information and
        other internal data structures. A sensible value for this
        might be 2M, but
        the more tables you have in your application the more you will
        need to
        allocate here. If InnoDB runs out of memory in this pool, it
        will start to
        allocate memory from the operating system, and write warning
        messages to the
        MySQL error log.
        innodb_additional_mem_pool_size=400M
        #Size of each log file in a log group in megabytes. Sensible
        values range
        from 1M to 1/n-th of the size of the buffer pool specified
        below, where n is
        the number of log files in the group. The larger the value,
        the less
        checkpoint flush activity is needed in the buffer pool, saving
        disk I/O. But
        larger log files also mean that recovery will be slower in
        case of a crash.
        The combined size of log files must be less than 4 GB on
        32-bit computers.
        The default is 5M.
        innodb_log_file_size=214M
        #The size of the buffer which InnoDB uses to write log to the
        log files on
        disk. Sensible values range from 1M to 8M. A big log buffer
        allows large
        transactions to run without a need to write the log to disk
        until the
        transaction commit. Thus, if you have big transactions, making
        the log
        buffer big will save disk I/O.
        innodb_log_buffer_size=300M
        #Specifies when log files are flushed to disk.
        innodb_flush_log_at_trx_commit=1
        #Number of file I/O threads in InnoDB. Normally, this should
        be 4, but on
        Windows disk I/O may benefit from a larger number.
        innodb_file_io_threads=5
        #Helps in performance tuning in heavily concurrent environments.
        innodb_thread_concurrency=18
        #Avoid double buffering and reduce swap pressure, in most
        cases this setting
        improves performance.
        innodb_flush_method=O_DIRECT

        #The memory allocated to store results from old queries.
        query_cache_size=1000M
        #antigo valor 500M alterado para teste de carga
        #antigo valor 800M -> 1000 alterado para teste de carga

        #The number of seconds the mysqld server is waiting for a
        connect packet
        before responding with 'Bad handshake'
        connect_timeout=10
        #The number of segonds the mysqld server will close the
        connection after 5
        seconds sleep
        wait_timeout=5
        #The number of simultaneous clients allowed.
        max_connections=200
        #antigo valor 100 alterado para teste de carga
        #The maximum number of active connections for a single user (0
        = no limit).
        max_user_connections=400
        #antigo valor 700 alterado para teste de carga
        #Set the default character set.
        default-character-set=utf8
        #Permits the application to give the threads system a hint for
        the desired
        number of threads that should be run at the same time
        thread_concurrency=18
        #antigo valor 14 alterado para teste de carga
        #How many threads we should keep in a cache for reuse.
        thread_cache_size=70
        #antigo valor 70 alterado para teste de carga
        #The stack size for each thread.
        thread_stack=256k
        #antigo valor 256k alterado para teste de carga
        #Each thread that does a sequential scan allocates a buffer of
        this size for
        each table it scans. If you do many sequential scans, you may
        want to
        increase this value.
        read_buffer_size=256k
        #antigo valor 256k alterado para teste de carga
        #Syntax: sql-mode=option[,option[,option...]] where option can
        be one of:
        REAL_AS_FLOAT, PIPES_AS_CONCAT,ANSI_QUOTES, IGNORE_SPACE,
        ONLY_FULL_GROUP_BY,NO_UNSIGNED_SUBTRACTION.
        transaction-isolation=READ-COMMITTED
        sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
        #When reading rows in sorted order after a sort, the rows are
        read through
        this buffer to avoid a disk seeks. If not set, then it's set
        to the value of
        record_buffer.
        read_rnd_buffer_size=270M
        #read_rnd_buffer_size=200M valor alterado apos a divisao dos
        servidores

        #The number of open tables for all threads.
        table_cache=512
        #If an in-memory temporary table exceeds this size, MySQL will
        automatically
        convert it to an on-disk MyISAM table.
        tmp_table_size=500M
        #tmp_table_size=400M valor alterado apos a divisao dos servidores

        #Maximum number of temporary tables a client can keep open at
        a time.
        max_tmp_tables=90
        #antigo valor 90 alterado para teste de carga
        #
        #key_buffer = 16M
        #max_allowed_packet = 128M
        #thread_stack = 128K
        #thread_cache_size = 8
        # This replaces the startup script and checks MyISAM tables if
        needed
        # the first time they are touched
        myisam-recover = BACKUP
        #max_connections = 100
        #table_cache = 64
        #thread_concurrency = 10
        #
        # * Query Cache Configuration
        #
        #query_cache_limit = 1M
        #
        #
        # * Logging and Replication
        #
        # Both location gets rotated by the cronjob.
        # Be aware that this log type is a performance killer.
        #log = /var/log/mysql/mysql.log
        #
        # Error logging goes to syslog. This is a Debian improvement :)
        #
        # Here you can see queries with especially long duration
        #log_slow_queries = /var/log/mysql/mysql-slow.log
        #long_query_time = 2
        #log-queries-not-using-indexes
        #
        # The following can be used as easy to replay backup logs or for
        replication.
        # note: if you are setting up a replication slave, see
        README.Debian about
        # other settings you may need to change.
        #server-id = 1
        #log_bin = /var/log/mysql/mysql-bin.log
        expire_logs_days = 10
        max_binlog_size = 100M
        #binlog_do_db = include_database_name
        #binlog_ignore_db = include_database_name
        #
        # * InnoDB
        #
        # InnoDB is enabled by default with a 10MB datafile in
        /var/lib/mysql/.
        # Read the manual for more InnoDB related options. There are many!
        #
        # * Security Features
        #
        # Read the manual, too, if you want chroot!
        # chroot = /var/lib/mysql/
        #
        # For generating SSL certificates I recommend the OpenSSL GUI
        "tinyca".
        #
        # ssl-ca=/etc/mysql/cacert.pem
        # ssl-cert=/etc/mysql/server-cert.pem
        # ssl-key=/etc/mysql/server-key.pem


        [mysqldump]
        quick
        quote-names
        #max_allowed_packet = 16M
        [mysql]
        #no-auto-rehash # faster start of mysql but no tab completition
        [isamchk]
        key_buffer = 16M
        #
        # * NDB Cluster
        #
        # See /usr/share/doc/mysql-server-*/README.Debian for more
        information.
        #
        # The following configuration is read by the NDB Data Nodes
        (ndbd processes)
        # not from the NDB Management Nodes (ndb_mgmd processes).
        #
        # [MYSQL_CLUSTER]
        # ndb-connectstring=127.0.0.1

        #
        # * IMPORTANT: Additional settings that can override those
        from this file!
        # The files must end with '.cnf', otherwise they'll be ignored.
        #
        !includedir /etc/mysql/conf.d
        #
        ########################
        ##### end of my.cnf ####
        ########################





--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to