我正在将PHP/Drupal/MySQL网站从虚拟服务器移动到专用服务器。奇怪的是,这个站点在专用服务器上要慢得多。通过下面的测试,我可以缩小差异可能主要是由MySQL造成的。
文件test.sql包含以下50.000行:
SELECT id FROM foobar WHERE bar = 'baz';
(查询返回0行。)
现在,$ time cat test.sql | mysql告诉我
virtual dedicated
real 0m2.193s 0m7.322s
user 0m0.574s 0m2.600s
sys
我有4 CPU的linux服务器。我安装了mysql,并且在后台运行24/7运行CPU繁重的任务。我对每个进程使用CPU关联有什么好处吗?例如:
1 CPU = background task/daemon
2 CPU = background task/daemon
3 CPU = background task/daemon
4 CPU = mysql
每个后台任务在任何给定的时间消耗多达80%的CPU。
更新:我的任务是lxml解析器(python)。
我在两台机器上安装了Tomcat系统的Liferay 6:
Machine 1: Windows 2003 Server 2GB RAM, 2Gh CPU Mysql Ver 14.14 Distrib 5.1.49 Liferay 6.0.6 with Tomcat 6
Machine 2: Linux CentOS 5.5 4GB RAM, 2Gh CPU Mysql Ver 14.14 Distrib 5.5.10 Liferay 6.0.6 with Tomcat 6
两个救生筏系统都有相同的启动参数和mysql配置。救生筏系统包含一个自定义主题和一个检查每个URL访问的servlet
mysql Ver 14.16 Distrib 5.2.12-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2, tables MyISAM
情景:从两个不同的客户端到一个数据库和表的两个select查询(使用join查询)。
服务器上的处理器有8个内核。
我想知道,是不是启动了两个进程,每个客户端一个,每个进程执行一个来自8核的进程?
有可能吗?是否有任何MySQL/MySQL选项用于max_process或其他什么?
据我所知,一个mysql进程可以与一个核心的处理器一起工作。我在谷歌上搜索了一下,找到了一些InnoDB表
我注意到MySQL在我的工作站上使用的CPU比平时多(通常是1%或更少,因为这是我的工作站,而不是服务器)。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14004 mysql 20 0 536m 44m 7136 S 141 1.2 65:24.72 mysqld
我查看了我缓慢的日志,没有任何疑问。我在普通日志上运行了tail -f,以查看正在运行的是什么,那里也什么也没有。MySQL处理列表也是空的。
+-----