cpu太空闲 提高mysql利用率_php – 我的服务器发生了什么?高负载,大量空闲CPU时间,低磁盘利用率...

我运营一个网站,并向订阅者发送合法的选择性每日电子邮件简报. Web托管和电子邮件发送都由同一台机器完成.

我有大约10万订阅者选择了我的每日电子邮件简报.我的PHP脚本在最近才向所有人发送邮件方面做得非常好,但随着列表的增长,我无法跟上.

当我运行顶部时,我的负载非常高 – 通常至少为6或7,有时高达15 – 尽管我只有两个CPU.但是,当我运行sar时,我的CPU平均闲置约30%的时间.所以,似乎我不受CPU限制.当我运行iostat时,似乎我没有磁盘绑定,因为我的每个设备的%util都非常低(不超过5%).

鉴于我似乎没有CPU绑定或磁盘绑定,为什么顶级报告如此高负载?

另外,由于我似乎没有CPU绑定或磁盘绑定,为什么我的电子邮件发送脚本无法跟上?

这是我在跑步时看到的:

top - 11:33:28 up 74 days, 18:49, 2 users, load average: 7.65, 8.79, 8.28

Tasks: 168 total, 5 running, 162 sleeping, 0 stopped, 1 zombie

Cpu(s): 38.9%us, 58.6%sy, 0.8%ni, 0.0%id, 0.7%wa, 0.2%hi, 0.8%si, 0.0%st

Mem: 3083012k total, 2144436k used, 938576k free, 281136k buffers

Swap: 2048248k total, 39164k used, 2009084k free, 1470412k cached

这是我在运行iostat -mx时看到的内容:

avg-cpu: %user %nice %system %iowait %steal %idle

34.80 1.20 55.24 0.37 0.00 8.38

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util

sda 0.19 71.70 1.59 29.45 0.02 0.07 5.90 0.55 17.82 1.16 3.59

sda1 0.00 0.00 0.00 0.00 0.00 0.00 7.10 0.00 13.80 13.72 0.00

sda2 0.05 50.45 1.13 24.57 0.01 0.29 24.25 0.35 13.43 1.15 2.97

sda3 0.05 10.17 0.20 2.33 0.01 0.05 43.75 0.05 20.96 2.45 0.62

sda4 0.00 0.00 0.00 0.00 0.00 0.00 2.00 0.00 70.50 70.50 0.00

sda5 0.07 0.22 0.03 0.07 0.00 0.00 32.84 0.08 856.19 8.03 0.08

sda6 0.02 5.45 0.03 0.72 0.00 0.02 67.55 0.02 26.72 5.26 0.39

sda7 0.00 1.56 0.00 0.42 0.00 0.01 38.04 0.00 8.88 5.84 0.24

sda8 0.01 3.84 0.20 1.35 0.00 0.02 28.55 0.05 31.90 4.08 0.63

这是我在运行sar时看到的内容:

09:40:02 AM CPU %user %nice %system %iowait %steal %idle

09:50:01 AM all 30.59 1.01 49.80 0.23 0.00 18.37

10:00:08 AM all 31.73 0.92 51.66 0.13 0.00 15.55

10:10:06 AM all 30.43 0.99 48.94 0.26 0.00 19.38

10:20:01 AM all 29.58 1.00 47.76 0.25 0.00 21.42

10:30:01 AM all 29.37 1.02 47.30 0.18 0.00 22.13

10:40:06 AM all 32.50 1.01 52.94 0.16 0.00 13.39

10:50:01 AM all 30.49 1.00 49.59 0.15 0.00 18.77

11:00:01 AM all 29.43 0.99 47.71 0.17 0.00 21.71

11:10:07 AM all 30.26 0.93 49.48 0.83 0.00 18.50

11:20:02 AM all 29.83 0.81 48.51 1.32 0.00 19.52

11:30:06 AM all 31.18 0.88 51.33 1.15 0.00 15.47

Average: all 26.21 1.15 42.62 0.48 0.00 29.54

以下是在我碰巧运行top -c的特定时间列出的少数几个进程:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

8180 mysql 16 0 57448 19m 2948 S 26.6 0.7 4702:26 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/bristno.pid --skip-external-locking

26956 brristno 17 0 0 0 0 Z 8.0 0.0 0:00.24 [php]

26958 brristno 17 0 94408 43m 37m R 5.0 1.4 0:00.15 /usr/bin/php /home/brristno/public_html/dbv.php

22852 nobody 16 0 9628 2900 1524 S 0.7 0.1 0:00.17 /usr/local/apache/bin/httpd -k start -DSSL

8591 brristno 34 19 96896 13m 6652 S 0.3 0.4 0:29.82 /usr/local/bin/php /home/brristno/bin/mailer.php 1qwqyb6 i0gbor

24469 nobody 16 0 9628 2880 1508 S 0.3 0.1 0:00.08 /usr/local/apache/bin/httpd -k start -DSSL

25495 nobody 15 0 9628 2876 1500 S 0.3 0.1 0:00.06 /usr/local/apache/bin/httpd -k start -DSSL

26149 nobody 15 0 9628 2864 1504 S 0.3 0.1 0:00.04 /usr/local/apache/bin/httpd -k start -DSSL

谢谢你,德米特里!

1)我已经有一个脚本取消订阅过去一个月内至少退回五次的电子邮件地址,所以希望这会使我的列表相对受限于活动的电子邮件地址.

2)我正在使用exim 4.69.我的配置文件是

/etc/exim.conf

我的日志文件位于:

在/ var /日志/ exim_mainlog

在/ var /日志/ exim_paniclog

在/ var /日志/ exim_rejectlog

另外,当我查看/etc/syslog.conf时,我看到以下内容:

# Log all the mail messages in one place.

mail.* -/var/log/maillog

我不知道 – / var / log / maillog开头的“ – ”是什么意思,但是当我查看该文件时,很明显很多东西都被记录在那里.

此外,此文件中还记录了很多内容:

在/ var /日志/ exim_mainlog

我之后添加到/etc/exim.conf这一行:

no_message_logs

我认为这会禁用邮件日志记录(我确实重启了exim),但是当我查看/ var / log / maillog和/ var / log / exim_mainlog时,两个文件仍然在接收新的日志条目.

问题:如何禁用大多数/所有exim日志记录?

3)当我查看/ var / log / exim_paniclog时,我看到很多像这样的条目:

2010-12-19 04:03:32 1PUFB1-0006xZ-GF User 0 set for local_delivery transport is on the never_users list

环顾四周后,似乎这意味着exim正在尝试传递到根电子邮件地址.在尽可能少地使用CPU资源的情况下,将这些邮件传递到root的最佳方法是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值