Назад | Перейти на главную страницу

Мой Vps слишком хрупкий

Я использую тарифный план digitalocean за 5 долларов.

Установлен 1 процессор, оперативная память 512 МБ, mysql + apache, nginx + centos 6.5 + cpanel. 2 сайта wordpress по этому поводу.

Но если я перезагружаю страницу одного из своих сайтов, использование процессора увеличивается до 50%, 60%. Если я проверяю mysite из woorank (анализатор SEO), мой сервер дает сбой, использование процессора и оперативной памяти увеличивается до 100%. Эти сайты не такие уж большие. Могу сказать новое. Что я могу с этим поделать? На виртуальном хостинге я получаю гораздо больше производительности.

Htop прочь:

Htop, когда я обновляю любую страницу одного из своих сайтов wordpress:

Я использую wp-super cache, cloudflare, плагинов не так много, установлены только необходимые.

Вот my.cnf

[mysqld]
     port            = 3306
     socket          = /var/lib/mysql/mysql.sock
     default-storage-engine=MYISAM 
     max_connections = 50
     key_buffer_size = 16M
     max_allowed_packet = 1M
     table_open_cache = 1000
     sort_buffer_size = 64K
     read_buffer_size = 256K
     read_rnd_buffer_size = 256K
     net_buffer_length = 2K
     thread_cache_size = 128
     query_cache_type = 1
     query_cache_size = 16M
     query_cache_limit = 1M
     log-slow-queries= /var/lib/mysql/slow.log
     log-error = /var/lib/mysql/error.log
     expire_logs_days   = 10
     max_binlog_size         = 100M

     # For low memory, InnoDB should not be used so keep skip-innodb uncommented unless required
     skip-innodb

     # Uncomment the following if you are using InnoDB tables
     #innodb_data_home_dir = /var/lib/mysql/
     #innodb_data_file_path = ibdata1:10M:autoextend
     #innodb_log_group_home_dir = /var/lib/mysql/
     #innodb_log_arch_dir = /var/lib/mysql/
     # You can set .._buffer_pool_size up to 50 - 80 %
     # of RAM but beware of setting memory usage too high
     #innodb_buffer_pool_size = 16M
     #innodb_additional_mem_pool_size = 2M
     # Set .._log_file_size to 25 % of buffer pool size
     #innodb_log_file_size = 5M
     #innodb_log_buffer_size = 8M
     #innodb_flush_log_at_trx_commit = 1
     #innodb_lock_wait_timeout = 50

     [mysqldump]
     quick
     max_allowed_packet = 16M

     [mysql]
     no-auto-rehash
     # Remove the next comment character if you are not familiar with SQL
     #safe-updates

     [isamchk]
     key_buffer = 8M
     sort_buffer_size = 8M

     [myisamchk]
     key_buffer = 8M
     sort_buffer_size = 8M

     [mysqlhotcopy]
     interactive-timeout

Вот моя конфигурация apache:

Start Servers : 1
Min. Spare Servers: 5
Max. Spare Servers: 10
Server limit : 256
Max clients : 15
Max request per child :10000
Keep-alive : ON
Keep-alive timeout: 15
Max keep alive request: 100
Timeout: 300

Виртуальная машина стоимостью 5 долларов не может содержать полную установку cPanel.

Несколько предложений:

  • Настройте MySQL для использования минимальных настроек, пример .cnf
  • Отключите все ненужные модули в Apache и настройте количество Max / Min / Spare серверов
  • Рассмотрите возможность перехода на nginx и php-fpm
  • Изучите плагины Wordpress, которые преобразуют веб-сайты в статический HTML.
  • Используйте бесплатную учетную запись CloudFlare, чтобы защитить свой сервер от скачков использования

Если вы планируете использовать это для веб-хостинга cPanel, я бы подумал об использовании более крупной виртуальной машины (или даже нескольких более крупных виртуальных машин).

Сами сайты могут быть не такими большими, но просто запущенные apache (и php) и mysql, а ОС может превысить выделенный вам RAM (что вы делаете, посмотрите использование свопа), если вы не примете меры по оптимизации и сохранению мелочи. В наши дни 512 МБ не очень далеко, особенно с настройками php и apache по умолчанию.

Рассмотрите возможность оптимизации ваших программ для небольшого объема памяти и сокращения их активных процессов / слушателей до минимума. Если вы собираетесь работать на машине встроенного размера, вам придется запускать ее как встроенную машину ... или перейти на план в 10 долларов.