Ниже вы найдете несколько примеров конфигураций, которые помогут вам убедиться, что вы не выделяете ресурсы без необходимости.
MySQL
Поместите приведенную ниже конфигурацию в /etc/my.cnf и перезапустите ваш сервер mysql, чтобы начать использовать новую конфигурацию.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | [mysqld] port = 3306 socket = /var/lib/mysql/mysql.sock skip-locking key_buffer = 16K max_allowed_packet = 1M table_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 64K # При малом количестве памяти не следует использовать Berkeley DB, поэтому не комментируйте skip-bdb, если это не требуется skip-bdb # При малом количестве памяти InnoDB не должна использоваться, поэтому не комментируйте skip-innodb, если это не требуется 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 # Удалите следующий символ комментария, если вы не знакомы с SQL #safe-updates [isamchk] key_buffer = 8M sort_buffer_size = 8M [myisamchk] key_buffer = 8M sort_buffer_size = 8M [mysqlhotcopy] interactive-timeout |
Apache
Убедитесь, что файл httpd.conf (/etc/httpd/conf/httpd.conf) не настроен на запуск слишком большого количества серверов, или в нем нет большого количества запасных серверов, которые лучше всего использовать для похудения. Обратитесь к приведенному ниже примеру
1 2 3 4 5 6 | StartServers 1 MinSpareServers 1 MaxSpareServers 5 ServerLimit 50 MaxClients 50 MaxRequestsPerChild 5000 |
Также не забудьте настроить KeepAliveTimeout (скажем, на 2 или 3).
Конфигурационный файл по умолчанию для apache также часто загружает все возможные модули. Это особенно важно для мобильных устройств с prefork mpm, так как каждый экземпляр apache будет съедать в геометрической прогрессии больше памяти, если включены ненужные модули. Закомментируйте все ненужные модули, чтобы сэкономить память.
Конфигурационные файлы, вероятно, находятся в каталоге /usr/local/apache2/conf. Кроме того, откомментируйте следующую строку в файле httpd.conf
1 | # Include conf/extra/httpd-mpm.conf |
Затем вы можете отредактировать этот файл с помощью вышеуказанного совета. Последний совет - закомментируйте функции, которые вы не используете в данный момент (например, webdav).
Также убедитесь, что Apache настроен на использование правильного многопроцессорного модуля для вашей установки. mpm_prefork, в то время как mpm_worker отнимал слишком много оперативной памяти.
На Ubuntu нужно установить пакет mpm-prefork:
1 | apt-get install apache2-mpm-prefork |
Это необходимо, чтобы не превысить лимит памяти. Это позволило уменьшить объем памяти apache с 225 МБ (один поток) до 12 МБ на поток.