下面的mysqld用法看起来不太正确,还有时间戳!有人知道为什么会这样疯狂吗?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
25662 mysql 16 0 139m 30m 5256 S 88.9 1.7 312:17.23 mysqld
20200 apache 16 0 102m 14m 7548 S 5.0 0.8 0:01.42 httpd在mysql、Apache和Lighttpd配置方面,我完全是新手,但mysql完全一无所知。下面是我的my.conf。我正在一台拥有2GB内存的机器上运行,并使用InnoDB,通过PDO进行连接。
[mysqld]
set-variable=local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid完全默认从零开始并避免错误,帮助!:)
发布于 2009-07-01 12:05:43
您绝对应该查看您的Processlist,看看哪个查询如此慢。
但是,在您的“顶部”屏幕上,我建议您对my.cnf文件进行以下更改
[mysqld]
thread_cache_size = 64
table_cache = 64
key_buffer = 64M
sort_buffer_size = 256K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
tmp_table_size=16M
max_heap_table_size=16M
query_cache_size=64M
query_cache_type=1
innodb_data_file_path = ibdata1:1000M:autoextend
innodb_buffer_pool_size = 768M
innodb_additional_mem_pool_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_support_xa = 0
innodb_lock_wait_timeout = 50
innodb_flush_method=O_DIRECT
innodb_log_files_in_group = 2
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_thread_concurrency = 8下次遇到这个问题时,您可能需要做一些调整,但是这些设置对于当前的问题是非常好的。
发布于 2009-06-29 17:23:42
首先,使用mysql或mysqladmin命令访问您的服务器,并使用它运行“show processlist”以检查哪些查询当前正在运行。
例如:mysqladmin -u root -p processlist。这将提示您输入mysql根用户的密码(与常规根帐户不同),并向您显示当前正在运行的查询。
此外,您的设置可能需要进行一些调整。我发现mysqltuner.pl脚本非常方便,可以为我提供从哪里开始的提示。记住,这只是个开始。花几个小时学习mysql性能调优的基础知识,是对负载如此沉重的服务器的明智投资。
发布于 2009-06-29 17:08:36
我会运行一个“显示处理列表”,看看您运行的是什么样的查询。很明显它已经在那里坐了一段时间了。
https://serverfault.com/questions/33360
复制相似问题