Meh*_*izi -3 linux io high-load
如果我想防止这种高负载,我该怎么办。
当负载高于 8 时,我的网站变慢。
请参阅 iotop 结果。
top - 20:23:10 up 127 days, 3:22, 1 user, load average: 9.92, 9.87, 9.81 任务:总共 1031 个,运行 3 个,睡眠 1027 个,停止 0 个,僵尸 1 个 Cpu(s):14.7%us、0.7%sy、0.1%ni、79.6%id、4.7%wa、0.0%hi、0.2%si、0.0%st 内存:总共 16413676k,已使用 16312548k,101128k 空闲,110836k 缓冲区 交换:总计 10190840k,已使用 3182468k,免费 7008372k,缓存 2033604k PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令 2776 mysql 15 0 14.6g 10g 5220 S 405.7 67.4 21710:40 mysqld 6201 阿帕奇 15 0 369m 16m 5356 S 3.7 0.1 0:00.40 httpd 8447 阿帕奇 15 0 368m 15m 5364 S 3.7 0.1 0:00.27 httpd 10807 apache 16 0 368m 14m 4640 S 3.7 0.1 0:00.04 httpd 11074 根 15 0 11548 1668 676 R 3.7 0.0 0:00.04 顶部 2088 阿帕奇 15 0 368m 15m 5972 S 1.8 0.1 0:00.93 httpd 2737 根 15 0 3824 392 336 S 1.8 0.0 433:37.40 klogd 6879 阿帕奇 15 0 367m 15m 5652 S 1.8 0.1 0:00.39 httpd 8457 阿帕奇 15 0 367m 15m 5744 S 1.8 0.1 0:00.54 httpd 8866 阿帕奇 15 0 369m 15m 4832 S 1.8 0.1 0:00.18 httpd 9147 阿帕奇 15 0 368m 14m 4960 S 1.8 0.1 0:00.15 httpd 9884 阿帕奇 16 0 368m 16m 6508 S 1.8 0.1 0:03.97 httpd 10583 apache 16 0 368m 15m 5148 S 1.8 0.1 0:00.10 httpd 10731 阿帕奇 15 0 367m 13m 3484 S 1.8 0.1 0:00.16 httpd 10782 阿帕奇 16 0 367m 12m 3544 S 1.8 0.1 0:00.04 httpd 14618 阿帕奇 15 0 367m 16m 6736 S 1.8 0.1 0:03.24 httpd 18697 阿帕奇 15 0 368m 16m 6744 S 1.8 0.1 0:02.47 httpd
虚拟机 procs -----------内存----------- ---swap--- -----io---- --system--- -----cpu ------ rb swpd 免费 buff 缓存 si so bi bo in cs us sy id wa st 2 1 3182636 468436 111776 2012016 0 0 94 274 0 0 15 1 80 5 0
iostat
Linux 2.6.18-274.12.1.el5 () 12/31/2012
avg-cpu: %user %nice %system %iowait %steal %idle
14.66 0.12 0.93 4.73 0.00 79.56
设备:tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 122.97 1504.32 4383.82 16525670026 48158254126
sda1 0.00 0.04 0.00 435456 230
sda2 122.97 1504.28 4383.82 16525231218 48158253896
DM-0 570.94 1502.31 4381.94 16503546226 48137527328
dm-1 0.48 1.97 1.89 21684608 20727136
顶 总磁盘读取:126.48 K/s | 总磁盘写入:6.79 M/s(这不是太高了吗?) TID PRIO 用户磁盘读磁盘写交换 IO> 命令 15610 be/4 mysql 0.00 B/s 0.00 B/s 99.99 % 25.76 % mysqld --basedi~mysql/mysql.sock 15622 be/4 mysql 0.00 B/s 0.00 B/s -7.28 % 24.92 % mysqld --basedi~mysql/mysql.sock 3659 be/4 mysql 7.44 K/s 5.88 M/s 0.00 % 13.71 % mysqld --basedi~mysql/mysql.sock 2822 be/4 mysql 0.00 B/s 0.00 B/s 2.88 % 10.22 % mysqld --basedi~mysql/mysql.sock 2819 be/4 mysql 0.00 B/s 0.00 B/s 0.00% 9.71% mysqld --basedi~mysql/mysql.sock 15635 be/4 mysql 0.00 B/s 0.00 B/s -3.72 % 8.09 % mysqld --basedi~mysql/mysql.sock 15629 be/4 mysql 0.00 B/s 0.00 B/s -2.42 % 5.58 % mysqld --basedi~mysql/mysql.sock 801 be/3 根 0.00 B/s 208.31 K/s 0.00 % 3.97 % [kjournald] 2842 be/4 根 0.00 B/s 0.00 B/s 8.09 % 3.81 % irqbalance 2820 be/4 mysql 0.00 B/s 0.00 B/s 0.00 % 2.88 % mysqld --basedi~mysql/mysql.sock 7001 be/4 apache 0.00 B/s 0.00 B/s 0.00 % 2.70 % httpd 15636 be/4 mysql 0.00 B/s 0.00 B/s 10.32 % 2.51 % mysqld --basedi~mysql/mysql.sock 8034 be/4 apache 0.00 B/s 0.00 B/s 0.00 % 2.42 % httpd 2140 be/4 apache 0.00 B/s 0.00 B/s 0.00 % 2.32 % httpd
您的特定问题肯定与 I/O 相关,因为 mySQL 将您推到了交换空间的深度。理想情况下,您应该在绝大多数时间使用零交换,因为操作系统开始将内存交换到磁盘的那一刻,您的性能将在进程等待 I/O 时急剧下降。把它想象Performance = 1 / N ^ swap成当操作系统使用更多的交换空间时,性能通常会呈指数级恶化。您的交换空间似乎有 3 GB 的深度,这对我来说简直太可怕了。
如果在您按照您提到的那样调整了 mySQL 设置之后,您仍然应该考虑平均超过几兆的交换空间:[最好到最坏的想法,2 和 3 大致相同]
| 归档时间: |
|
| 查看次数: |
2057 次 |
| 最近记录: |