LINUX.ORG.RU
ФорумAdmin

MYSQL и большие таблицы

 ,


2

3

Друзья. Прошу помощи. Попытался залить в магазин 66500 товаров через импорт. сервак после заливки грузит по несколько минут страницы, зависает весь сервак, до тех пор пока не откатишь содержимое базы назад.... база становится весить всего-то 85 метров в общей сложности, ну таблица самая тяжелая около 30 метров, многие в интернете расписывают про суперскую работу MYSQL с базами где гигабайты данных

а у меня такая вот беда

не могу понять что не так на сервере но грешу на MYSQL, так как вижу зависшие там запросы и возможно не совсем верные его настройки

MYSQL  	
mysql-server-5.5-5.5.40-0+wheezy1
КОНФИГ
[client]
port		= 3306
socket		= /var/run/mysqld/mysqld.sock


[mysqld_safe]
socket		= /var/run/mysqld/mysqld.sock
nice		= 0

[mysqld]

user		= mysql
pid-file	= /var/run/mysqld/mysqld.pid
socket		= /var/run/mysqld/mysqld.sock
port		= 3306
basedir		= /usr
datadir		= /var/lib/mysql
tmpdir		= /tmp
lc-messages-dir	= /usr/share/mysql
skip-external-locking


key_buffer		= 256M
max_allowed_packet	= 32M
thread_stack		= 192K
thread_cache_size       = 8


myisam-recover         = BACKUP
max_connections = 300
table_open_cache = 1024
join_buffer_size  = 4M
tmp_table_size = 128M
max_heap_table_size = 128M
wait_timeout  = 100
interactive_timeout = 100
connect_timeout  = 100

#InnoDB
innodb_buffer_pool_size = 1024M
innodb_thread_concurrency = 16
innodb_additional_mem_pool_size=50M
innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size=32M

#MyISAM
myisam_max_sort_file_size=50G
myisam_sort_buffer_size=256M
key_buffer_size=256M
read_buffer_size = 256K
read_rnd_buffer_size = 512K
sort_buffer_size=256K 
#thread_concurrency     = 10
#
# * Query Cache Configuration
#
query_cache_limit	= 4M
query_cache_size        = 32M

expire_logs_days	= 10
max_binlog_size         = 100M




[mysqldump]
quick
quote-names
max_allowed_packet	= 16M

[mysql]
#no-auto-rehash	# faster start of mysql but no tab completition

[isamchk]
key_buffer		= 16M

!includedir /etc/mysql/conf.d/


Последнее исправление: eclipseg (всего исправлений: 2)

Ответ на: комментарий от anc

Угу, в то время как «Квалифицированный программист» «просто наследуется от своего абстрактного {Report}» - «бухгалтер» уже давно нажал одну кнопку в 1с и занялся другими делами.

Ну дак в этом и вся проблема. «Бухгалтер» по вашим словам, тыкает на кнопку, даже, по сути, не понимая конечного результата. Вы рассуждаете сейчас только со стороны пользователя. Я же пытаюсь рассуждать со стороны программиста.

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Бизнесу эти расскуждения не важны, им нужен результат.

яндекс

Да у них вообще зарплаты ниже рыночных, насколько я знаю. Зато всякие плюшки и график почти свободный.

pawnhearts ★★★★★
()
Ответ на: комментарий от pawnhearts

Off-topic

Дайте мне прямо сейчас конкретную задачу и ТЗ к ней. Я вам адекватный план реализации прямо здесь и накидаю, в течении пару часов, хоть и прибухал уже под утро :)

Бизнесу эти расскуждения не важны, им нужен результат.

Ну дак а я разве спорю с вами? :) Нужно сначала видеть конкретную задачу, чтобы от нее уже плясать. Бизнес - он, как говорится, и в Африке... Если я, допустим, решу ваши бизнес-задачи в разы быстрее чем любая компания на том же 1С, неужто вы и прям пойдете к ним, а не ко мне?=)

Да у них вообще зарплаты ниже рыночных, насколько я знаю. Зато всякие плюшки и график почти свободный.

Они так и работают, и посему их прогеры, до сих пор сидят на 40-вке, и в ус не дуют. А по сути они не делают нифига. К слову, они на собеседовании кидают issue os своих проектов, и просят, чтобы вы, если шарите, комитнули реальный фикс. Это у них такая проверка. Ну ясно же, что тупо халявный апдейт.

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Я, кстати, был когда-то у них на собеседовании. issue мне не кидали, давали какие-то задачки логические и по питону, насколько я помню. Офис мне не понравился у них - дурацкий опенспейс, шумно(не просто все галдят, какие-то чуваки на гитарах играют ещё прямо в офисе). Был в гораздо более приятных офисах и тоже со всякими теннисами и прочим.

pawnhearts ★★★★★
()

Конфиг сервера неадекватный, конечно, но что я могу от себя добавить:

1. Посмотрите, есть ли в joomla какой-то лог исполнения или профайлер, что-то должно быть. Запустите и посмотрите что он выдает.

2. Включите slow_query_log в mysql и загрузите страницу сайта, увидите в логе запросы и время их исполнения. Скорее всего там будет либо какой-нибудь запрос «выбери мне все 65000 товаров», либо 150 запросов к отдельным товарам для уточнения параметров формирования витрины. От этого надо будет и плясать. Второй вариант решится включением кеширования со стороны жумлы и правильной расстановкой индексов, в случае первого вариант не помешает багрепорт в вельюмаркт и патч приложения. Если вы на каждый запрос к сайту гоняете сотни мегабайт между БД и ПХП - проблем не избежать, или БД заткнется, или ПХП вылетит с невозможностью влезть в память.

3. mysqltuner.pl , но ему надо бы собрать статистику (несколько часов поработать, хотя бы), он даст рекомендации в целом по серверу, для повышения стабильности. Не стоит безоговорочно всем им следовать, но стоит посмотреть innodb_data_size и pool_size, чтобы у вас пул не занимал лишнее место в ОЗУ, Max memory usage, по моей практике он должен быть процентов 60 от ОЗУ, иначе может заклинить сервер, PHP и Ruby ждут сами по себе довольно много, а в случае в жумлой (я с ней не раз сталкивался), там на каждый запрос к сайту может метров по 200-300 памяти отъедаться.

BaBL ★★★★★
()
Ответ на: комментарий от anc

Противоречите себе

Нужно быть внимательнее:

и на не жутких запросах
неактивная, холодная, без кешей

Простые запросы на разогретой базе такие:

MariaDB [REVIVE]> select requested_impressions, expired from ox_data_summary_ad_zone_assoc where expired > NOW() - INTERVAL 7 DAY order by expired limit 1;
+-----------------------+---------------------+
| requested_impressions | expired             |
+-----------------------+---------------------+
|                   204 | 2016-01-13 07:41:01 |
+-----------------------+---------------------+
1 row in set (0.03 sec)


Это некешированный запрос но простой и на «тёплой» базе.

KRoN73 ★★★★★
()
Ответ на: комментарий от pawnhearts

Off-topic

шумно(не просто все галдят, какие-то чуваки на гитарах играют ещё прямо в офисе)

Узнал. Спасибо, вспомнил, снова настроение под полтинник=) Я тогда пока шел с сопровождающим через весь их этаж к интервьюеру, видел пару пустых комнат, компы висят в открытую с рабочими столами. Много где мастдай, (но ведь отдел программистов :)), а «работнички» тут же, в соседней комнате наяривают за теннисным столом. Остальные вокруг стоят и советы раздают :D Время, ЕМПИН, где-то около 3 дня было. Вроде обед прошел давно, хотя я хз, я их политикой так и не задался :) Помню я еще подумал тогда - «тут ваще кто-нить работает?». Парень, что меня сопровождал, параллельно всему этому еще успевал нести мне какую-то охинею за их новый проект, и как они «правильно» юзают многопоточность и типа, про какой-то их «свой» способ экономить сервачки с помощью этого проекта. Кароче ушел я от них довольный тогда, настроение подняли просто до сотки, вот весело было точно :)

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

спасибо друзья за ответы ваши))

да дело не в самой джумле, движок то это только набор стартового кода

дело в самом компоненте магазина, да слишком он не оптимизированный под такое число товаров

поставил другой компонент, где разработчики заявляют, что тестировался на 200 000 товаров и работал легко, вот я загрузил туда уже 50 тыс товаров, пока шустренько все и без вопросов

так что дело не в сервере было :)

eclipseg
() автор топика
Ответ на: комментарий от eclipseg

поставил другой компонент

А не проще сразу поставить нормальный Prestashop какой-нибудь? Где всё оптимизировано под задачу изначально?

KRoN73 ★★★★★
()
Ответ на: комментарий от znenyegvkby

Конечно, никто не запрещает реализовать что-бы не было. Дело не в этом. Я могу, допустим, реализовать это, но как программист, я ведь понимаю что основная проблема не в просто «напиши, пускай захавают». Основная проблема в сопровождении, то есть в адекватной поддержке 24/7, рекламе, апдейтах и т.д. и т.п. То есть любому прогеру в одинокого это никогда не потянуть. А то что 1С имеют на это бабло, и занимаются этим, большой чести им это не делает. Я видел их кишки. Это реально ужасно.

В кишках любого ынтерпрайза такое найдете :) Если говорить про ынтерпрайз этой страны то имхо во многом виновата жадность управленцев. Во всяком случае я сталкивался с разным софтом (если брать ерп класса 1с то та же галактика) и достаточно узко специализированным в том числе, везде ситуация протекала (ичсх протекает) одинаково, был отличный коллектив с реально грамотными спецами, выпустили первые версии, пошло бабло, спецов поувольняли (ибо нефиг столько денег на них тратить) для затыкания дыр взяли полтора таджика. Но софт продолжает продаваться, бабло течет значит все как надо. Проходит несколько лет бабла чего-то все меньше и меньше, старые клиенты валят, новые не приходят. Опять нанимают спецов проект как-то реанимируется (но костыли таджиков никуда не делись), опять бабло, опять всех спецов нафиг и так по кругу, а костылей все больше и больше.
А уж про «ум» программистов от ынтерпрайза можно долго рассказывать. :) Одна из историй годичной давности, задача передавать данные от моей системы в их ынтерпрайз (у них пока ничего не реализовано), свозили на объект все показали в живую, рассказываю про всю цепочку и т.д. доходим до момента когда мне задают вопрос можно ли считать четыре поля естественным ключом, говорю что нет и даже с пятым полем и начинаю объяснять почему тут меня прерывают и выдают потрясающую фразу нууу тут значит и еще одну базу делать прийдется, вторую базу Карл! При том что в этой части к ним в итоге передается восемь параметров.
Вообще «любовь» плодить бд похоже у них у всех это фишка. В другом месте такие товарищи захавав себе нехилый кусок в крупной конторе который год переделывают уже существующие задачи. Задачи на текущий момент уже работают, софт написан и поддерживается силами своих программистов (но с них же откат не получишь) пользователей устраивает, модернизация нужна только для одной задачи (давно писалась еще на обычном фоксе). Так вот пока все еще ничего не работает но наплодили уже 27 бд (вместо 5-ти существующих) и это явно не предел :)

anc ★★★★★
()
Ответ на: комментарий от znenyegvkby

В здании где у нас офис, тоже этаж занимает какая-то софтверная контора. Курилка на здание одна, слушать их разговоры это что-то... вобщем не хотел бы я там работать.
И да тенистый стол у них тоже есть, стоит в холе где лифты. Хол большой. :)

anc ★★★★★
()
Ответ на: комментарий от KRoN73

Зайцев вообще нирикаминдует query_cache.

Впрочем, сдаётся, это потому что «у нас это не работает, значит вам это не нужно». В марии с этим куда проще.

svr4
()
Ответ на: комментарий от anc

Софтверные конторы бывают разные. Например, на моей предыдущей работе я что-то тоже за ~полгода расхотел работать.

курилка

На нынешней кстати все ходят ПРОБЗДЕТЬСЯ на улицу - на остановку для служебной развозки, возле входа в здание.

svr4
()
Последнее исправление: svr4 (всего исправлений: 1)
Ответ на: комментарий от svr4

В марии с этим куда проще.

Меня query_cache много лет, ещё со времён mysql спасает. В среднем раза в два разгружает.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Я к тому, что в Percona XDC он достаточно долго не работал вообще, а сейчас типа deprecated, и требует ручного (скриптового) включения после старта кластера.

svr4
()
Ответ на: комментарий от svr4

все-таки поставил 3 джумлу чистую 3 вирт чистый все заработало)

28058 категорий и подкатегорий 66496 товаров

все шустренько)

eclipseg
() автор топика
Ответ на: комментарий от eclipseg

У нас например товаров вообще не очень много, но до чёрта служебной информации, очень сложное оформление заказов и т.п. Но у нас и не жумла.

svr4
()
Последнее исправление: svr4 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.