Centos MySQL优化4gb ram

我正在使用4gb ram的vps上使用Centos 6 64bit。 1个wordpress网站和2个壁纸脚本网站。 Wordrpess每天有10K次访问。 网站很慢。

在my.cnf

 #示例大型系统的mysqlconfiguration文件。
 #
 #这是用于系统运行的大型系统,内存= 512M
 #MySQL。
 #
 #你可以复制这个文件
 #/etc/my.cnf设置全局选项,
 #mysql-data-dir / my.cnf设置服务器特定的选项(在这里
 #安装这个目录是/ usr / local / mysql / var)或者
 #〜/ .my.cnf设置用户特定的选项。
 #
 #在这个文件中可以使用程序支持的所有长选项。
 #如果您想知道程序支持哪些选项,请运行该程序
 #with --help选项。

 #以下选项将传递给所有MySQL客户端
 [客户]
 #password = your_password
端口= 3306
 socket = /tmp/mysql.sock

 #以下是一些特定程序的条目

 #MySQL服务器
的[mysqld]
端口= 3306
 socket = /tmp/mysql.sock
跳锁
 set-variable = key_buffer = 256M
 set-variable = max_allowed_pa​​cket = 1M
 set-variable = table_cache = 256
 set-variable = sort_buffer = 1M
 set-variable = record_buffer = 1M
 set-variable = myisam_sort_buffer_size = 64M
 set-variable = thread_cache = 8
 #尝试thread_concurrency的CPU数* 2
 set-variable = thread_concurrency = 8
login斌
 server-id = 1

 #如果您正在使用BDB表,请取消注释以下内容
 #set-variable = bdb_cache_size = 64M
 #set-variable = bdb_max_lock = 100000

 #如果你使用InnoDB表,取消注释如下
 #innodb_data_home_dir = / usr / local / mysql / var /
 #innodb_data_file_path = ibdata1:10M:autoextend
 #innodb_log_group_home_dir = / usr / local / mysql / var /
 #innodb_log_arch_dir = / usr / local / mysql / var /
 #你可以设置.._ buffer_pool_size高达50  -  80%
 RAM的数量,但要小心设置内存使用率太高
 #set-variable = innodb_buffer_pool_size = 256M
 #set-variable = innodb_additional_mem_pool_size = 20M
 #将.._log_file_size设置为缓冲池大小的25%
 #set-variable = innodb_log_file_size = 64M
 #set-variable = innodb_log_buffer_size = 8M
 #的innodb_flush_log_at_trx_commit = 1
 #set-variable = innodb_lock_wait_timeout = 50

 #将以下path指向不同的专用磁盘
 #tmpdir = / tmp /     
 #log-update = / path-to-dedicated-directory / hostname

 [mysqldump的]
快
 set-variable = max_allowed_pa​​cket = 16M

 [MySQL的]
无自动翻版
 #如果您不熟悉SQL,请删除下一个注释字符
 #安全更新function

 [使用isamchk]
 set-variable = key_buffer = 128M
 set-variable = sort_buffer = 128M
 set-variable = read_buffer = 2M
 set-variable = write_buffer = 2M

 [myisamchk的]
 set-variable = key_buffer = 128M
 set-variable = sort_buffer = 128M
 set-variable = read_buffer = 2M
 set-variable = write_buffer = 2M

 [mysqlhotcopy的]
互动超时

这是./mysqltuner.pl

 --------一般统计---------------------------------------- ----------
 [ - ]跳过版本检查MySQLTuner脚本
 [确定]当前正在运行支持的MySQL版本5.5.27-log
 [确定]在64位体系结构上运行

 --------存储引擎统计--------------------------------------- ----
 [ - ]状态:+归档-BDB -Federated + InnoDB -ISAM -NDBCluster
 [ - ] MyISAM表中的数据:16M(表:61)
 [ - ] InnoDB表中的数据:4M(表:34)
 [ - ] PERFORMANCE_SCHEMA表中的数据:0B(表:17)
 [!!]碎片表总数:34

 --------安全build议---------------------------------------- ---
 [确定]所有数据库用户都分配了密码

 -  -  -  -  性能指标  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - ---------
 [ - ]上行:9m 53s(40K q [68.862 qps],3K conn,TX:203M,RX:4M)
 [ - ]读/写:83%/ 17%
 [ - ]总caching:432.0M全局+每个线程6.4M(最多151个线程)
 [OK]最大可能的内存使用量:1.4G(已安装RAM的36%)
 [OK]慢查询:0%(0 / 40K)
 [OK]可用连接的最高使用率:74%(113/151)
 [确定]键缓冲区大小/总MyISAM索引:256.0M / 10.1M
 [确定]键缓冲命中率:97.9%(152Kcaching/ 3K读)
 [确定]查询caching效率:62.0%(caching17K / 27K)
 [确定]每天查询caching修剪:0
 [确定]需要临时表的sorting:0%(0次临时sorting/ 224次sorting)
 [确定]磁盘上创build的临时表:25%(磁盘上的71个/总共277个)
 [确定]线程caching命中率:77%(831创build/ 3K连接)
 [确定]表caching命中率:39%(135打开/ 342打开)
 [确定]使用打开的文件限制:15%(162 / 1K)
 [确定]立即获得表锁:98%(立即13K / 13K锁)
 [确定] InnoDB的数据大小/缓冲池:4.5M / 128.0M

 --------build议----------------------------------------- ------------
一般build议:
    运行OPTIMIZE TABLE进行碎片整理以获得更好的性能
     MySQL在过去24小时内启动 - 推荐可能不准确
    启用慢查询日志来解决不良查询

尝试增加innodb_buffer_pool_size(到512M)和查询caching大小(query_cache_type = 1和query_cache_size = 256M)。

一些简单的,一般的build议: http : //www.ilsistemista.net/index.php/linux-a-unix/26-mysql-performance-tuning.html?limitstart=0

尝试为您的WordPress安装安装一个caching插件。 我个人推荐W3 Super Cache:

http://wordpress.org/extend/plugins/wp-super-cache/

您也可以安装XCache并将PHPconfiguration为FCGI以获得更好的caching(WP Super Cache可以与XCache一起使用以及独立使用)。

Percona有一个相当不错的configuration向导,它将吐出一个密切关注你的服务器和工作负载的my.cnf文件: https : //tools.percona.com/wizard

它不会给你一个完美的configuration,但你可以比较你正在运行,看看他们为什么select某些设置。

为什么认为MySQL是一个瓶颈? 我相当舒适的PHP是这里的问题,因为我pipe理大量的Magento网站访问量超过10k /天。

Wp是100%与PHP7兼容,所以从那里开始。 先在开发环境中进行,然后在现场进行。 另外一个caching插件是一个很好的推动,我build议rediscaching简单超快。 下一步是将mysql / mariadb移动到另一个虚拟机。 既然你抽了my.cnf你偷cpu / ram到php所以1 vm for php和一个for mysql应该会有很大的帮助