蜘蛛服务器导致网站崩溃

蜘蛛服务器导致网站崩溃

我有一台服务器,在抓取它时,它给出 MySQL 服务器已消失/连接超时/连接被拒绝的错误。当服务器上有大量用户时,它的运行速度似乎在高峰时段大幅下降。我在此服务器上安装了 Magento Enterprise。我想知道这可能是持久连接的问题,还是我的 my.conf 中的某些设置有问题?

以下是有关我的服务器的一些信息:

Processor #1
    Vendor
        GenuineIntel
    Name
        QEMU Virtual CPU version (cpu64-rhel6)
    Speed
        2127.998 MHz
    Cache
        4096 KB

Processor #2
    Vendor
        GenuineIntel
    Name
        QEMU Virtual CPU version (cpu64-rhel6)
    Speed
        2127.998 MHz
    Cache
        4096 KB

Processor #3
    Vendor
        GenuineIntel
    Name
        QEMU Virtual CPU version (cpu64-rhel6)
    Speed
        2127.998 MHz
    Cache
        4096 KB

Processor #4
    Vendor
        GenuineIntel
    Name
        QEMU Virtual CPU version (cpu64-rhel6)
    Speed
        2127.998 MHz
    Cache
        4096 KB

RAM
    10GB

HDD
    200GB

这是我的my.conf:

[mysqld]
thread_concurrency=4
thread_cache_size=64
wait_timeout = 400
table_cache=2048
query_cache_type=1
query_cache_size=512M
query_cache_limit=512M
key_buffer_size=256M
max_allowed_packet=32M
max_connections=1000
tmp_table_size=1024M
max_heap_table_size=1024M
table_definition_cache=4000 
table_open_cache=4000
open_files_limit=65535
sort_buffer_size=1M
read_buffer_size=1M
join_buffer_size=16M

innodb_thread_concurrency=0
innodb_file_per_table=1
innodb_buffer_pool_size=4G
innodb_lock_wait_timeout=300
innodb_flush_log_at_trx_commit=1
innodb_additional_mem_pool_size=24M

tmpdir=/mysqltmp

log_error=/var/log/mysql/mysql-error.log
log_queries_not_using_indexes=1
slow_query_log_file=/var/lib/mysql/mysql-slow.log 

发生这些错误时,服务器资源如下(来自 Munin):

CPU = 395%
RAM (apps) = approx 6gb
I/O Stat (read/write) = approx -10k/10k

答案1

看起来蜘蛛正在让你负担过重。使用mysqltuner检查你的 mysql 配置。

配置数据库,使其不会使用超过 60% 的系统 RAM。

根据您发布的当前信息,减少:

query_cache_size=(我将从 64M 开始)

query_cache_limit=(我将从 1M 开始)

wait_timeout = 400?!将此值等于您的 apache 超时值,并考虑用户等待 300 秒才能得到您的响应;)(我会开始将 mysql 和 apache 都调低到 30 秒。)

增加 open_files_limit如果你有很多表(特别是 myisam),并且不要忘记你的系统限制.conf

如果降低缓冲区没有帮助,您也可以使用 iptables 来限制蜘蛛:)

相关内容