- 论坛徽章:
- 0
|
原帖由 zhangjoto 于 2008-7-28 02:11 发表 ![]()
从我看到的现象来看,机器速度慢主要是CPU在等待IO操作,这样的情况下主机的CPU性能还没有得到发挥就到达了瓶颈.因此个人认为要考虑的不是mysql,而是另外几个问题:
1.磁盘性能是否太低?这可以用复制大文件的方式来检查,如果得到的性能指标达不到你的期望,那就要检查一下硬件是否存在问题,考虑能否做些调整比如使用raid0或更换更快的存储设备;
2.是否有可能减少不必要的IO?这就要分析IO产生的原因:是内存数据的扇入扇出?是mysql读取和写入的操作?如果是前者,就需要考虑调整内存分配比例或者增加内存;如果是后者,就得从mysql的数据分布,表的规模,索引,读写同/异步,以及应用逻辑等各方面来考虑了;
3.如果有条件,把应用的文件系统和mysql的数据库文件系统,甚至mysql中读写比较频繁的表分离到不同的硬盘上去,对性能是肯定有帮助的.
另:1G的内存为何要配10多G的SWAP?做为server,用swap比内存用得多的时候,性能恐怕已经低得让人忍不住直接重启了;另外内存的free似乎不少,mysql的内存使用率可以调大.
谢谢回复
我试了一下,拷贝一个大概300M的数据库目录
在同一个分区间拷贝
发现很慢
同时,发现wa的值也很高
top - 10:57:50 up 5 days, 17:29, 2 users, load average: 1.16, 0.30, 1.89
Tasks: 68 total, 2 running, 66 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2% us, 3.6% sy, 0.0% ni, 5.1% id, 90.8% wa, 0.2% hi, 0.0% si
Mem: 969608k total, 163392k used, 806216k free, 6284k buffers
Swap: 11582856k total, 25196k used, 11557660k free, 124092k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1904 root 17 0 2120 272 236 S 2.3 0.0 1:19.90 cpuspeed
6 root 5 -10 0 0 0 S 0.7 0.0 1:52.85 events/0 196 root 15 0 0 0 0 S 0.7 0.0 24:47.78 kjournald
3197 root 15 0 79156 1208 776 S 0.7 0.1 4:10.32 X 19860 root 16 0 0 0 0 S 0.3 0.0 0:00.43 pdflush
20868 root 16 0 8176 2304 1828 S 0.3 0.2 0:00.34 sshd 21118 root 18 0 5732 596 512 R 0.3 0.1 0:02.39 cp
1 root 16 0 3220 272 248 S 0.0 0.0 0:27.93 init 2 root RT 0 0 0 0 S 0.0 0.0 0:05.48 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:07.29 ksoftirqd/0 4 root RT 0 0 0 0 S 0.0 0.0 0:15.71 migration/1
5 root 34 19 0 0 0 S 0.0 0.0 0:25.89 ksoftirqd/1 7 root 5 -10 0 0 0 S 0.0 0.0 3:40.57 events/1
8 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 khelper 9 root 15 -10 0 0 0 S 0.0 0.0 0:00.00 kacpid
41 root 5 -10 0 0 0 S 0.0 0.0 0:28.70 kblockd/0 42 root 5 -10 0 0 0 S 0.0 0.0 0:32.67 kblockd/1
另外怎么去分析平时IO高产生的原因呢? 因为基本上我发现数据库在执行某几个查询的时候IO值就很高
另外关于读写文件,我的mysql数据库表是放在/usr/local/mysql/var目录下了
如果再重新分一个区用来存这些数据库
会不会好点? |
|