Неплохой хостинг на SSD - 20GB, 1Tb - всего за $5 - рабочий сервер через 55сек.

Да, я видел. Предлагают самостоятельно создавать своп. За свой счёт, если позволите подобную аллегорию.
 
Это вполне "нормально", учитывая, что своп может тебе не требоваться, геморроя доставляет конечно. Добавляется ведь не сильно сложно.
 
Ну вообще настраивая сервер нужно про память думать, да. А не тупо запускать все подряд надеясь на своп.
 
MiksIr, посмотри на вывод top в работе. И сравни с
Код:
top - 20:43:01 up 8 days,  1:22,  1 user,  load average: 0.15, 0.07, 0.01
Tasks:  37 total,   1 running,  36 sleeping,   0 stopped,   0 zombie
Cpu(s):  8.3%us,  1.0%sy,  0.0%ni, 90.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.1%st
Mem:    524288k total,   510276k used,    14012k free,        0k buffers
Swap:   524288k total,   195380k used,   328908k free,    16248k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
27846 mysql     20   0 1024m 358m 3668 S    0 70.0   0:00.75 /usr/sbin/mysqld
26003 www-data  20   0  351m  39m 1076 S    0  7.7   0:07.56 /usr/sbin/apache2 -k start
27507 www-data  20   0  335m  35m 1052 S    0  7.0   0:00.50 /usr/sbin/apache2 -k start
 
Код:
top - 23:26:56 up 2 days, 16:38,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  73 total,  1 running,  72 sleeping,  0 stopped,  0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:    507612 total,  421432 used,    86180 free,    82768 buffers
KiB Swap:        0 total,        0 used,        0 free.  245388 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM    TIME+ COMMAND                                                   
943 mysql    20  0  327860  40628  5824 S  0.0  8.0  1:57.65 mysqld                                                   
2785 www-data  20  0  104436  16276  10544 S  0.0  3.2  0:01.41 php5-fpm                                                 
904 root      20  0  101852  13912  10888 S  0.0  2.7  0:20.07 php5-fpm                                                 
2783 www-data  20  0  101880  6776  3576 S  0.0  1.3  0:01.21 php5-fpm                                                 
2787 www-data  20  0  101880  6376  3176 S  0.0  1.3  0:01.19 php5-fpm

Абсолютно дефолтные пакеты и образ системы DO
 
Господи... Дался вам апач. Что за ненависть такая? Чуть что, сразу "апач виноват".
 
MiksIr, посмотри на вывод top в работе. И сравни с

Отожрал MySQL. Есть утилита тюнинга. А также есть калькуляторы расчета объема памяти для MySQL.
Понимание разницы между VIRT, RES, SHR, динамические библиотеки

Apache там не так много и отожрал. Если выпилить ненужные библиотеки, то будет и меньше .
 
AnrDaemon, может, не надо было на 512 тачку ставить апач просто?
Именно) Первое что я сделал на своей работе - снес апач, ибо один его процесс выжирал неслабые 40-70Мб оперативки и сервак быренько вываливался в своп.
 
Отожрал MySQL. Есть утилита тюнинга. А также есть калькуляторы расчета объема памяти для MySQL.
Посмотри предыдущее сообщение. Табличка как раз считает по этим калькуляторам. И результаты сходятся. Как ни пересчитывай. Вот только MySQL плевать хотел на все рассчёты. И при старте отжирает 300-500 мегов. Минут на 10, не больше, но если в системе памяти не хватает, этих 10 минут достаточно, чтобы превратить в часы неработы сервера.

С этим пониманием как раз всё в порядке, но за ссылки спасибо. Добавил в коллекцию.

Apache там не так много и отожрал. Если выпилить ненужные библиотеки, то будет и меньше .
А если вместо prefork MPM поставить event - ещё меньше.
 
Толку-то от mpm-event, если с ним mod_php не работает и не может работать? А если fastcgi - так nginx проще поставить.
 
И при старте отжирает 300-500 мегов. Минут на 10, не больше, но если в системе памяти не хватает, этих 10 минут достаточно, чтобы превратить в часы неработы сервера.
Никогда с таким не сталкивался. Либо MaxConnection много (а на каждый коннект буферы выделяются, фактически умножать надо кроме пуллов), либо бага какая-то. Версия MySQL, OS?
 
В 5.6 там еще память перфоманс схема отжирает. Но это постоянное. Пиковое отжирание на старте - очень странно. У меня такого нет, аналогичный дистрибутив и мускуль.
Может не сам мускуль отжирает, а при запуске какие-то активные до базы процессы стартуют?
 
Даже если myisamchk, но не 300 мегов же?... Базы практически поголовно InnoDB
MiksIr, топ смотри. Именно сам мускуль :( RES сразу прыгает до какого-то пика, потом медленно падает минуты три, висит 5-7 минут, и резко дропается раз в 10. Дальше уже никогда не выходит за рассчитанные пределы.
 
Show Processlist на этапе старта что показывает?

Кстати, а что за калькулятор такой консольный? И еще, это нормально юзать сторонние репозитории для критических приложений? В Ubuntu разве не централизованный репозиторий? Может мейнтейнер чего не с теми либами собрал и течет?

Глянул что предлагает мой SID.

На сегодня
Код:
root@home:/home/keeper# apt-cache policy mysql-server
mysql-server:
  Установлен: (отсутствует)
  Кандидат:   5.5.37-1
  Таблица версий:
     5.5.37-1 0
        990 http://http.debian.net/debian/ sid/main amd64 Packages

Код:
root@home:/home/keeper# apt-cache policy mysql-server-5.6
mysql-server-5.6:
  Установлен: (отсутствует)
  Кандидат:   5.6.19-1~exp1
  Таблица версий:
     5.6.19-1~exp1 0
          1 http://http.debian.net/debian/ experimental/main amd64 Packages

А вот 5.6 лежит в экспериментальной (experimental) ветке и использовать его в продакшине просто нельзя... Если 5.6 даже не попал в unstable, значит есть критические баги.

https://qa.debian.org/[email protected]
 
Последнее редактирование:
Попробуйте скомпилировать из сырцов (как-то так):

apt-get build-dep mysql-server-5.6
apt-get source mysql-server-5.6 --compile
dpkg -i blabla.deb
 
Последнее редактирование:
Ну мускуль, и что? Кто-то запускает какие-то процессы в мускуле, и он кушает память, потом отдает. Какие-нить таблицы MEMORY создает, например. Кстати, max_heap_table_size не вижу, а он по-умолчанию вроде 16М.
 
Это стартап. Клиентов нет. (Т.е. я могу опустить Апач, exim - и ситуация будет точно такая же. Может, чуть быстрее память упадёт до нормы.)
Активист, они такие же сторонние, как и каноникловские. MySQL в PPA собирается из текущей дебки и актуальных сырцов. По сути бэкпорт. (Некоторый софт иначе просто нереально достать из-за политики обновления Каноникал. Тот же Апач 2.4.)
Скрипт откуда-то из блогов почерпнул, и подрихтовал до полного автоматизма.

"SHOW PROCESSLIST;" ничего не дала :(
Код:
2014-08-28-193731
Id	User	Host	db	Command	Time	State	Info
19578	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193751
Id	User	Host	db	Command	Time	State	Info
19579	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193800
Id	User	Host	db	Command	Time	State	Info
19580	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193848
Id	User	Host	db	Command	Time	State	Info
96	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193851
Id	User	Host	db	Command	Time	State	Info
97	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193852
Id	User	Host	db	Command	Time	State	Info
98	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193852
Id	User	Host	db	Command	Time	State	Info
99	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193853
Id	User	Host	db	Command	Time	State	Info
100	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193853
Id	User	Host	db	Command	Time	State	Info
101	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193854
Id	User	Host	db	Command	Time	State	Info
102	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193854
Id	User	Host	db	Command	Time	State	Info
103	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193854
Id	User	Host	db	Command	Time	State	Info
104	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
2014-08-28-193855
Id	User	Host	db	Command	Time	State	Info
105	debian-sys-maint	localhost	NULL	Query	0	init	SHOW PROCESSLIST
top - 19:38:58 up 9 days, 18 min,  1 user,  load average: 0.17, 0.45, 0.70
Tasks:  32 total,   1 running,  31 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.6%us,  0.0%sy,  0.0%ni, 97.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    524288k total,   509528k used,    14760k free,        0k buffers
Swap:   524288k total,    41508k used,   482780k free,    62276k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
18637 mysql     20   0 1024m 415m 9064 S    0 81.1   0:00.61 /usr/sbin/mysqld
  299 bind      20   0  238m  10m  992 S    0  2.0   0:10.45 /usr/sbin/named -u bind

Скрипт:
Код:
#!/bin/sh

mysql -u debian-sys-maint -p"$( grep -Po "(?<=password\s\=\s)\S+" < /etc/mysql/debian.cnf | head -1 )" -e "SHOW VARIABLES; SHOW STATUS;" | tee $HOME/mysql-stats.txt | awk '
{
 VAR[$1]=$2
}
END {
 MAX_CONN = VAR["max_connections"]
 MAX_USED_CONN = VAR["Max_used_connections"]
 BASE_MEM=VAR["key_buffer_size"] + VAR["query_cache_size"] + VAR["innodb_buffer_pool_size"] + VAR["innodb_additional_mem_pool_size"] + VAR["innodb_log_buffer_size"]
 MEM_PER_CONN=VAR["read_buffer_size"] + VAR["read_rnd_buffer_size"] + VAR["sort_buffer_size"] + VAR["join_buffer_size"] + VAR["binlog_cache_size"] + VAR["thread_stack"] + VAR["tmp_table_size"]
 MEM_TOTAL_MIN=BASE_MEM + MEM_PER_CONN*MAX_USED_CONN
 MEM_TOTAL_MAX=BASE_MEM + MEM_PER_CONN*MAX_CONN

 printf "+------------------------------------------+--------------------+\n"
 printf "| %40s | %15.3f MB |\n", "key_buffer_size", VAR["key_buffer_size"]/1048576
 printf "| %40s | %15.3f MB |\n", "query_cache_size", VAR["query_cache_size"]/1048576
 printf "| %40s | %15.3f MB |\n", "innodb_buffer_pool_size", VAR["innodb_buffer_pool_size"]/1048576
 printf "| %40s | %15.3f MB |\n", "innodb_additional_mem_pool_size", VAR["innodb_additional_mem_pool_size"]/1048576
 printf "| %40s | %15.3f MB |\n", "innodb_log_buffer_size", VAR["innodb_log_buffer_size"]/1048576
 printf "+------------------------------------------+--------------------+\n"
 printf "| %40s | %15.3f MB |\n", "BASE MEMORY", BASE_MEM/1048576
 printf "+------------------------------------------+--------------------+\n"
 printf "| %40s | %15.3f MB |\n", "sort_buffer_size", VAR["sort_buffer_size"]/1048576
 printf "| %40s | %15.3f MB |\n", "read_buffer_size", VAR["read_buffer_size"]/1048576
 printf "| %40s | %15.3f MB |\n", "read_rnd_buffer_size", VAR["read_rnd_buffer_size"]/1048576
 printf "| %40s | %15.3f MB |\n", "join_buffer_size", VAR["join_buffer_size"]/1048576
 printf "| %40s | %15.3f MB |\n", "thread_stack", VAR["thread_stack"]/1048576
 printf "| %40s | %15.3f MB |\n", "binlog_cache_size", VAR["binlog_cache_size"]/1048576
 printf "| %40s | %15.3f MB |\n", "tmp_table_size", VAR["tmp_table_size"]/1048576
 printf "+------------------------------------------+--------------------+\n"
 printf "| %40s | %15.3f MB |\n", "MEMORY PER CONNECTION", MEM_PER_CONN/1048576
 printf "+------------------------------------------+--------------------+\n"
 printf "| %40s | %18d |\n", "Max_used_connections", MAX_USED_CONN
 printf "| %40s | %18d |\n", "max_connections", MAX_CONN
 printf "+------------------------------------------+--------------------+\n"
 printf "| %40s | %15.3f MB |\n", "TOTAL (MIN)", MEM_TOTAL_MIN/1048576
 printf "| %40s | %15.3f MB |\n", "TOTAL (MAX)", MEM_TOTAL_MAX/1048576
 printf "+------------------------------------------+--------------------+\n"
}'
 
Сверху