我在 amazon ec2 免费套餐上建立了一个网站,它带有 613MB 内存,没有交换。我发现服务器几乎一直使用 100% 的内存。我的网站运行 wordpress,并启用了 wp 超级磁盘缓存。网站并不繁忙,每天大约 300ip。有人能告诉我这是正常的,还是出了什么问题?谢谢!
free -m
total used free shared buffers cached
Mem: 596 589 7 0 0 14
-/+ buffers/cache: 574 22
Swap: 0 0 0
ps aux | grep "apache"
apache 10120 0.2 5.1 287908 31732 ? S 10:41 0:19 /usr/sbin/httpd
apache 10122 0.2 4.9 288448 30504 ? S 10:41 0:22 /usr/sbin/httpd
apache 10123 0.2 4.8 288380 29676 ? S 10:41 0:20 /usr/sbin/httpd
apache 10124 0.2 5.1 287616 31708 ? S 10:41 0:21 /usr/sbin/httpd
apache 10125 0.2 4.6 287428 28704 ? S 10:41 0:20 /usr/sbin/httpd
apache 10126 0.2 5.2 288376 32372 ? S 10:41 0:22 /usr/sbin/httpd
apache 10127 0.2 4.6 284028 28164 ? S 10:41 0:21 /usr/sbin/httpd
apache 10207 0.2 5.3 288452 32396 ? S 10:49 0:19 /usr/sbin/httpd
apache 10224 0.2 4.3 284520 26496 ? S 10:50 0:19 /usr/sbin/httpd
apache 10226 0.2 5.1 287872 31640 ? S 10:50 0:20 /usr/sbin/httpd
apache 10376 0.2 5.0 288340 30856 ? S 11:03 0:16 /usr/sbin/httpd
apache 10453 0.2 5.2 288416 32384 ? S 11:10 0:16 /usr/sbin/httpd
apache 10455 0.1 5.2 288124 32252 ? S 11:10 0:15 /usr/sbin/httpd
apache 10457 0.2 4.8 288380 29676 ? S 11:10 0:15 /usr/sbin/httpd
apache 10459 0.1 5.2 288636 32224 ? S 11:10 0:14 /usr/sbin/httpd
apache 12106 0.2 4.8 288384 29536 ? S 13:07 0:01 /usr/sbin/httpd
apache 12107 0.2 4.8 288380 29480 ? S 13:07 0:02 /usr/sbin/httpd
apache 12110 0.2 4.8 288380 29496 ? S 13:07 0:01 /usr/sbin/httpd
答案1
创建文件系统交换可能不会有什么坏处。
#!/bin/bash -e
# Set default variable values
: ${SWAP_SIZE_MEGABYTES:=1024}
: ${SWAP_FILE_LOCATION:=/var/swap.space}
if (( $SWAP_SIZE_MEGABYTES <= 0 )); then
echo 'No swap size provided, exiting.'
exit 1
elif [ -e "$SWAP_FILE_LOCATION" ]; then
echo "$SWAP_FILE_LOCATION" already exists, skipping.
fi
if ! swapon -s | grep -qF "$SWAP_FILE_LOCATION"; then
echo Creating "$SWAP_FILE_LOCATION", "$SWAP_SIZE_MEGABYTES"MB.
dd if=/dev/zero of="$SWAP_FILE_LOCATION" bs=1024 count=$(($SWAP_SIZE_MEGABYTES*1024))
mkswap "$SWAP_FILE_LOCATION"
swapon "$SWAP_FILE_LOCATION"
echo 'Swap status:'
swapon -s
else
echo Swap "$SWAP_FILE_LOCATION" file already on.
fi
echo 'Done.'
答案2
编辑 /etc/apache/apache.conf 文件并将 MaxClients 设置为 30。留意 apache 错误日志以查看是否用完了客户端,如果是,则将 MaxClients 增加 5。在您不再收到错误后,再添加 5 以提供一点余量。
您还可以检查 /etc/php5/apache/php.ini 中的 memory_limit 设置。对于 WordPress,您可能可以使用 64MB 的设置。如果您正在运行任何图形处理(例如缩略图生成器等),则可能需要将其增加到 96MB。
如果您也在该服务器上运行 MySQL,则应检查是否可以减少某些关键索引大小或其他内存占用设置。