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

AnrDaemon

Продвинутый новичок
Да, я видел. Предлагают самостоятельно создавать своп. За свой счёт, если позволите подобную аллегорию.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Это вполне "нормально", учитывая, что своп может тебе не требоваться, геморроя доставляет конечно. Добавляется ведь не сильно сложно.
 

MiksIr

miksir@home:~$
Ну вообще настраивая сервер нужно про память думать, да. А не тупо запускать все подряд надеясь на своп.
 

AnrDaemon

Продвинутый новичок
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
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Код:
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
 

AnrDaemon

Продвинутый новичок
Господи... Дался вам апач. Что за ненависть такая? Чуть что, сразу "апач виноват".
 

Активист

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

Apache там не так много и отожрал. Если выпилить ненужные библиотеки, то будет и меньше .
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
AnrDaemon, может, не надо было на 512 тачку ставить апач просто?
Именно) Первое что я сделал на своей работе - снес апач, ибо один его процесс выжирал неслабые 40-70Мб оперативки и сервак быренько вываливался в своп.
 

AnrDaemon

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

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

Apache там не так много и отожрал. Если выпилить ненужные библиотеки, то будет и меньше .
А если вместо prefork MPM поставить event - ещё меньше.
 

fixxxer

К.О.
Партнер клуба
Толку-то от mpm-event, если с ним mod_php не работает и не может работать? А если fastcgi - так nginx проще поставить.
 

Активист

Активист
Команда форума
И при старте отжирает 300-500 мегов. Минут на 10, не больше, но если в системе памяти не хватает, этих 10 минут достаточно, чтобы превратить в часы неработы сервера.
Никогда с таким не сталкивался. Либо MaxConnection много (а на каждый коннект буферы выделяются, фактически умножать надо кроме пуллов), либо бага какая-то. Версия MySQL, OS?
 

MiksIr

miksir@home:~$
В 5.6 там еще память перфоманс схема отжирает. Но это постоянное. Пиковое отжирание на старте - очень странно. У меня такого нет, аналогичный дистрибутив и мускуль.
Может не сам мускуль отжирает, а при запуске какие-то активные до базы процессы стартуют?
 

AnrDaemon

Продвинутый новичок
Даже если 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
 
Последнее редактирование:

MiksIr

miksir@home:~$
Ну мускуль, и что? Кто-то запускает какие-то процессы в мускуле, и он кушает память, потом отдает. Какие-нить таблицы MEMORY создает, например. Кстати, max_heap_table_size не вижу, а он по-умолчанию вроде 16М.
 

AnrDaemon

Продвинутый новичок
Это стартап. Клиентов нет. (Т.е. я могу опустить Апач, 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"
}'
 
Сверху