高端pc机服务器4cpu双核,8G内存,磁盘做了raid 5,下面的配置如何设置为佳?【mysqld】
2 key_buffer_size 3.2G
3 table_open_cache 4096
4 thread_cache_size 32
5 query_cache_size 256M
7 myisam_sort_buffer_size 128M
9 sort_buffer_size 8M
10 read_buffer_size 8M
11 max_allowed_packet 128M12 innodb_buffer_pool_size
13 innodb_log_file_size
14 innodb_log_buffer_size
15 innodb_flush_logs_at_trx_commit 2
2 key_buffer_size 3.2G
3 table_open_cache 4096
4 thread_cache_size 32
5 query_cache_size 256M
7 myisam_sort_buffer_size 128M
9 sort_buffer_size 8M
10 read_buffer_size 8M
11 max_allowed_packet 128M12 innodb_buffer_pool_size
13 innodb_log_file_size
14 innodb_log_buffer_size
15 innodb_flush_logs_at_trx_commit 2
a) 系统使用,假设预留800M;
b) 线程独享,约2GB = 500 * (1MB + 1MB + 1MB + 512KB + 512KB),组成大概如下:
sort_buffer_size:1MB
join_buffer_size:1MB
read_buffer_size:1MB
read_rnd_buffer_size:512KB
thread_statck:512KB
c) MyISAM Key Cache,假设大概为1.5GB;
d) Innodb Buffer Pool 最大可用量:8GB - 800MB - 2GB - 1.5GB = 3.7GB;
假设这个时候我们还按照50%~80%的建议来设置,最小也是4GB,而通过上面的估算,最大可用值
在3.7GB 左右,那么很可能在系统负载很高当线程独享内存差不多出现极限情况的时候,系统很可能就
会出现内存不足的问题了。而且上面还仅仅只是列出了一些使用内存较大的地方,如果进一步细化,很
可能可用内存会更少。
上面只是一个简单的示例分析,实际情况并不一定是这样的,这里只是希望大家了解,在设置一些
参数的时候,千万不要想当然,一定要详细的分析可能出现的情况,然后再通过不断测试调整来达到自
己所处环境的最优配置。就我个人而言,正式环境上线之初,我一般都会采取相对保守的参数配置策
略。上线之后,再根据实际情况和收集到的各种性能数据进行针对性的调整。
以上出至于 简朝阳---MySQL性能调优与架构设计
mysql里面的最高并发数和最大连接数是一个概念吗?值是一样的吗?
是通过这个参数max_connections来设置最大连接数吗?
如何去生产库查询目前的并发数呢? show status like '%max%';这个参数好像查的不对:
Max_used_connections, 146
我自己虚拟机上面,几乎就我一个人连接用,最大连接就有146,明显不对啊。用什么可以查询出mysql数据库目前用户的并发数呢?
SLEEP的不算啊。它是死连接。
mysql> show global status like '%runn%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| Slave_running | OFF |
| Threads_running | 2 |
+-----------------+-------+
2 rows in set (0.00 sec)mysql> show processlist;
+----+-----------------+----------------+------+---------+------+-----------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+----------------+------+---------+------+-----------------------------+------------------+
| 1 | event_scheduler | localhost | NULL | Daemon | 16 | Waiting for next activation | NULL |
| 2 | root | localhost:4290 | mydb | Query | 0 | NULL | show processlist |
+----+-----------------+----------------+------+---------+------+-----------------------------+------------------+
2 rows in set (0.00 sec)
线程独享,约2GB = 500 * (1MB + 1MB + 1MB + 512KB + 512KB),组成大概如下:这里面的500是怎么得来的呢?是通过啥参数来获取的呢?