全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 4428|回复: 7

mysql资源参数限制优化

[复制链接]
发表于 2009-8-18 15:31:02 | 显示全部楼层 |阅读模式
Msyql参数调优
针对my.cnf文件进行优化:
[mysqld]
skip-locking(取消文件系统的外部锁)
skip-name-resolve(不进行域名反解析,注意由此带来的权限/授权问题)
  key_buffer_size = 256M(分配给MyISAM索引缓存的内存总数)  对于内存在4GB左右的服务器该参数可设置为256M或384M。  注意:该参数值设置的过大反而会是服务器整体效率降低!
  max_allowed_packet = 4M(允许最大的包大小)
  thread_stack = 256K(每个线程的大小)
  table_cache = 128K(缓存可重用的线程数)
  back_log = 384(临时停止响应新请求前在短时间内可以堆起多少请求,如果你需要在短时间内允许大量连接,可以增加该数值)
  sort_buffer_size = 2M(分配给每个线程中处理排序)
  read_buffer_size = 2M(读取的索引缓冲区大小)
  join_buffer_size = 2M(分配给每个线程中处理扫描表连接及索引的内存)
  myisam_sort_buffer_size = 64M(myisam引擎排序缓冲区的大小)
  table_cache = 512(缓存数据表的数量,避免重复打开表的开销)
  thread_cache_size = 64(缓存可重用线程数,见笑创建新线程的开销)
  query_cache_size = 64M(控制分配给查询缓存的内存总量)
  tmp_table_size = 256M(指定mysql缓存的内存大小)
  max_connections = 768(最大连接数)指mysql整个的最大连接数
        max_connect_errors = 10000(最大连接错误数据)
  wait_timeout = 10(超时时间,可以避免攻击)
  thread_concurrency = 8(根据cpu数量来设置)
  skip-bdb 禁用不必要的引擎
  skip-networking(关闭mysql tcp/ip连接方式)
  Log-slow-queries = /var/log/mysqlslowqueries.log
  long_query_time = 4(设定慢查询的时间)
  skip-host-cache(提高mysql速度的)
  open_files_limit = 4096(打开文件数)
interactive_timeout = 10(服务器在关闭它前在一个交互连接上等待行动的秒数)
max_user_connections = 500(最大用户连接数)  

Mysql内存使用公式:实际物理内存计算公式key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections  

MAX_QUERIES_PER_HOUR 用来限制用户每小时运行的查询数量:
mysql> grant all on dbname。* to db@localhost identified by “123456” with max_connections_per_hour 5;
(db用户在dbname的数据库上限制用户每小时打开新连接的数量为5个)


MAX_USER_CONNECTIONS 限制有多少用户连接MYSQL服务器:
mysql> grant all on dbname。* to db@localhost identified by “123456” with max_user_connections 2;
(db用户在dbname的数据库账户一次可以同时连接的最大连接数为2个)

MAX_UPDATES_PER_HOUR 用来限制用户每小时的修改数据库数据的数量:
mysql> grant all on dbname。* to db@localhost identified by “123456” with max_updates_per_hour 5;
(db用户在dbname的数据库上限制用户每小时修改更新数据库的次数为5次)
MAX_USER_CONNECTIONS 用来限制用户每小时的修改数据库数据的数量:
mysql> grant all on dbname。* to db@localhost identified by “123456”
With  MAX_QUERIES_PER_HOUR 20 ;指mysql单个用户的最大连接数
(db用户在dbname的数据库上限制用户每小时的连接数为20个)



不足的  望斑竹帮补充,我想对mysql的资源进行限制,不让客户占用大的资源。这些参数我收集了,可能还不完整。
发表于 2009-8-18 15:32:26 | 显示全部楼层

回复 1# 的帖子

搞虚拟主机呀,难道要限制Mysql连接数?
 楼主| 发表于 2009-8-18 15:33:07 | 显示全部楼层
是的呀。觉得限制资源的参数还是不够。
发表于 2009-8-18 16:34:11 | 显示全部楼层

回复 3# 的帖子

对客户的限制最好是限制平均CPU占用。
发表于 2009-9-11 11:04:08 | 显示全部楼层
一般用mysql预置的几个方案选个合适的吧,自己修改的话容易造成参数之间不匹配
发表于 2009-9-11 12:39:17 | 显示全部楼层

回复 5# 的帖子

default  recommended 的,用哪个好?
发表于 2009-9-11 13:05:17 | 显示全部楼层
原帖由 cpuer 于 2009-9-11 12:39 发表
default  recommended 的,用哪个好?

一般应用my-medium.cnf就足够了,独立主机如果内存较大可以用my-large.cnf,内存超过8G的可以用my-huge.cnf
发表于 2009-9-11 13:39:13 | 显示全部楼层

回复 7# 的帖子

呵呵,那就一般用my-medium.cnf了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-12-26 13:08 , Processed in 0.068554 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表