RelaxДом

Быстрый поиск

Расширенный поиск

Авторизация

Запомнить? | Забыл пароль?
 
Register
Welcome
 
RelaxДом > Андеграунд > Операционные системы > Gentoo Linux » Как правильно поставить производительный MySQL сервер
Ответ
Опции темы Опции просмотра
 
Непрочитано 07.04.2009, 00:13   #1
BIT Мужской

Аватар для BIT
 
Администратор
Регистрация: 26.11.2007
Сообщений: 998
pm
Smile Как правильно поставить производительный MySQL сервер

  1. Приведем в порядок CFLAGS(обьяснял как в соседней теме с Nginx + PHP)
  2. Выкинем из флагов все лишнее
    Код:
    echo "dev-db/mysql -berkdb perl -ssl -big-tables -cluster -debug -embedded -extraengine -latin1 -max-idx-128 -minimal -selinux static" >> /etc/portage/package.use
  3. Компилим
    Код:
    emerge dev-db/mysql
  4. Приступаем к самой ответственной части - настройке конфига(/etc/mysql/my.cnf):
    Код:
    # /etc/mysql/my.cnf: The global mysql configuration file.
    # $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/my.cnf-4.1,v 1.3 2006/05/05 19:51:40 chtekk Exp $
    
    # The following options will be passed to all MySQL clients
    [client]
    port                                            = 3306
    socket                                          = /var/run/mysqld/mysqld.sock
    
    [mysql]
    character-sets-dir=/usr/share/mysql/charsets
    default-character-set=utf8
    
    [mysqladmin]
    character-sets-dir=/usr/share/mysql/charsets
    default-character-set=utf8
    
    [mysqlcheck]
    character-sets-dir=/usr/share/mysql/charsets
    default-character-set=utf8
    
    [mysqldump]
    character-sets-dir=/usr/share/mysql/charsets
    default-character-set=utf8
    
    [mysqlimport]
    character-sets-dir=/usr/share/mysql/charsets
    default-character-set=utf8
    
    [mysqlshow]
    character-sets-dir=/usr/share/mysql/charsets
    default-character-set=utf8
    
    [myisamchk]
    character-sets-dir=/usr/share/mysql/charsets
    
    [myisampack]
    character-sets-dir=/usr/share/mysql/charsets
    
    # use [safe_mysqld] with mysql-3
    [mysqld_safe]
    err-log                                         = /var/log/mysql/mysql.err
    
    # add a section [mysqld-4.1] or [mysqld-5.0] for specific configurations
    [mysqld]
    log                             = /var/log/mysql_full.log
    character-set-server            = utf8
    default-character-set           = utf8
    user                            = mysql
    port                            = 3306
    socket                          = /var/run/mysqld/mysqld.sock
    pid-file                        = /var/run/mysqld/mysqld.pid
    log-error                       = /var/log/mysql/mysqld.err
    basedir                         = /usr
    datadir                         = /var/lib/mysql
    skip-locking
    key_buffer                      = 250M
    max_allowed_packet              = 20M
    table_cache                     = 5056
    sort_buffer_size                = 10M
    net_buffer_length               = 64K
    read_buffer_size                = 5M
    read_rnd_buffer_size            = 512K
    myisam_sort_buffer_size         = 80M
    language                        = /usr/share/mysql/english
    
    set-variable = query_cache_size=1500M
    set-variable = key_buffer_size=300M
    set-variable = table_cache=5056
    set-variable = sort_buffer_size=40M
    set-variable = read_buffer_size=8M
    set-variable = tmp_table_size=500M
    
    thread_cache_size = 20
    thread_cache = 20
    join_buffer_size = 5M
    query_cache_limit = 25M
    
    max_connections = 1024
    
    #Не скидывать лог на диск при commit
    innodb_flush_log_at_trx_commit=2
    
    
    #log-bin
    server-id                                       = 1
    
    # point the following paths to different dedicated disks
    tmpdir                                          = /tmp/
    #log-update                             = /path-to-dedicated-directory/hostname
    
    # you need the debug USE flag enabled to use the following directives,
    # if needed, uncomment them, start the server and issue
    # #tail -f /tmp/mysqld.sql /tmp/mysqld.trace
    # this will show you *exactly* what's happening in your server ;)
    
    #log                                            = /tmp/mysqld.sql
    #gdb
    #debug                                          = d:t:i:o,/tmp/mysqld.trace
    #one-thread
    
    # uncomment the following directives if you are using BDB tables
    #bdb_cache_size                         = 4M
    #bdb_max_lock                           = 10000
    
    # the following is the InnoDB configuration
    # if you wish to disable innodb instead
    # uncomment just the next line
    #skip-innodb
    #
    # the rest of the innodb config follows:
    # don't eat too much memory, we're trying to be safe on 64Mb boxes
    # you might want to bump this up a bit on boxes with more RAM
    innodb_buffer_pool_size = 45M
    # this is the default, increase it if you have lots of tables
    innodb_additional_mem_pool_size = 8M
    #
    # i'd like to use /var/lib/mysql/innodb, but that is seen as a database :-(
    # and upstream wants things to be under /var/lib/mysql/, so that's the route
    # we have to take for the moment
    #innodb_data_home_dir           = /var/lib/mysql/
    #innodb_log_arch_dir            = /var/lib/mysql/
    #innodb_log_group_home_dir      = /var/lib/mysql/
    # you may wish to change this size to be more suitable for your system
    # the max is there to avoid run-away growth on your machine
    innodb_data_file_path = ibdata1:10M:autoextend:max:128M
    # we keep this at around 25% of of innodb_buffer_pool_size
    # sensible values range from 1MB to (1/innodb_log_files_in_group*innodb_buffer_pool_size)
    innodb_log_file_size = 15M
    # this is the default, increase it if you have very large transactions going on
    innodb_log_buffer_size = 14M
    # this is the default and won't hurt you
    # you shouldn't need to tweak it
    set-variable = innodb_log_files_in_group=2
    # see the innodb config docs, the other options are not always safe
    innodb_flush_log_at_trx_commit = 1
    innodb_lock_wait_timeout = 50
    
    [mysqldump]
    quick
    max_allowed_packet                      = 16M
    
    [mysql]
    # uncomment the next directive if you are not familiar with SQL
    #safe-updates
    
    [isamchk]
    key_buffer                              = 20M
    sort_buffer_size                        = 20M
    read_buffer                             = 2M
    write_buffer                            = 2M
    
    [myisamchk]
    key_buffer                              = 20M
    sort_buffer_size                        = 20M
    read_buffer                             = 2M
    write_buffer                            = 2M
    
    [mysqlhotcopy]
    interactive-timeout
Завтра с утречка выложу комменты к значениям и разгребу все по полочкам.
На данный момент вот лог моего SQL сервера:
Цитата:
MySQL Version 5.0.70-log i686

Uptime = 2 days 14 hrs 7 min 48 sec
Avg. qps = 41
Total Questions = 9199782
Threads Connected = 15
__________________

В памяти моей ты останешься молодой и любимой...
BIT вне форума   Ответить с цитированием
Непрочитано 25.09.2009, 10:54   #2
FreeSky Мужской

Аватар для FreeSky
 
Осваиваюсь
Регистрация: 11.06.2008
Адрес: /dev/sda2
Сообщений: 143
pm
По умолчанию Re: Как правильно поставить производительный MySQL сервер

9 миллионов.... с ума сойти
__________________
Я сделан из такого вещества,
Из двух неразрешимых столкновений,
Из ярких красок полных торжества,
Из черных подозрительных сомнений...
FreeSky вне форума   Ответить с цитированием
Непрочитано 25.09.2009, 14:30   #3
Deny Мужской

 
Известный житель
Регистрация: 24.09.2007
Адрес: динамический
Сообщений: 2,220
pm
По умолчанию Re: Как правильно поставить производительный MySQL сервер

да уж %_)
__________________
[Ссылка заблокирована: Зарегистрируйтесь!]
Deny вне форума   Ответить с цитированием
 
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход