Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рождён удивлять
53 / 56 / 9
Регистрация: 08.08.2011
Сообщений: 438
1

Решение проблемы с высокой загрузкой сервера Redis

19.12.2016, 17:16. Показов 1309. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Пишу сервак, который принимает запросы и записывает данные в Redis. Столкнулся с такой проблемой.
В сутки прилетает 2 миллиона запросов (примерно 25 запросов в секунду) и Redis Сервер становится загружен на 100%.

Моя задача следующая:
1) У нас есть в базе Supply Tags, они содержат в себе Demand Tags. Деманд теги содержат в себе ссылку на XML файл, наш Supply тэг должен брать ссылку на xml подходящего нам деманда и сгененировать свой xml.

2) Я написал скрипт, который раз в 3 минуты выгружает из базы данных в редис ключи
Javascript
1
2
3
4
5
6
7
'vast:supply:'+supply_id+':domain:'+domain+':demand:1' = JSON.stringify({
   link: item.link, // ССылка на XML деманда
   requests: reqs,
   supply: supply,
   demand: demand,
   domain: domain
});
3) Обращение к серверу происходит по ссылке:
http://adserver.ru/tag/14?w={{WIDTH}}&h={{HEIGHT}}&url={{URL}}&cb={{CACHEBUSTER}}

/tag/14 - это идентификатор саплай тега

4) После того, как было такое обращение, наш саплай тэг сервер делает следующие веши:

- BW_List_Supply('supply_*_list:'+supply_id) // проверяю есть ли у данного саплай тега блек или вайт лист для доменов, с которых идет обращение к серверу

- Redis.keys('vast:supply:'+supply_id+':domain:'+referer+'*') // Получаем список всех демандов, которые доступны данному саплаю и реферу

- getDemandForShow(redis_keys) получаю доступный деманд тег, для показа из списка (У каждого деманда есть количество requests доступное для показа)

- проверяю доступный деманд тег на Black / White list

5) Если все окей, я возвращаю ссылку на xml данного деманда, парсю её, выдаю свой Xml.



Цыклов ни каких нету, сервер 48 ядер, 120 гб оперативки.
В среднем на серваке редиса лежит 150 тысяч ключей, которые каждые 5 минут обновляются.

в окне htop я вижу нагрузку на сервер 99-100%, что в моем коде может заставить редис нагрузится на 100%?
Вложения
Тип файла: zip file.zip (4.1 Кб, 2 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2016, 17:16
Ответы с готовыми решениями:

Решение задач высокой сложности
Хотелось бы создать тему, в которой каждый сможет выложить своё решение задач повышенной сложности...

Проблемы с загрузкой
Здравствуйте. У меня есть такая проблема. Я установил Windows 8, перезагрузил, и тут же у меня...

Решение задачи с высокой вычислительной сложностью
Дорогие форумчане! Хочется спросить ваше мнение по следующему вопросу как у специалистов в области...

Проблемы с BIOS и загрузкой
Всем привет! Проблема вот в чём. Есть древний комп с платой Gigabyte. Стояла Windows 7. В один...

0
19.12.2016, 17:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2016, 17:16
Помогаю со студенческими работами здесь

Проблемы с загрузкой windows
После нескольких установок Window при запуске системы появляется меню выбора системы загрузки, там...

Проблемы с компьютером и загрузкой 7
Привет господа! Возникло такое недоразумение. Вообщем понадобилось винчестер IDE переставить в...

проблемы с загрузкой файлов
<?php if($_REQUEST){ $target_path = "uploads/"; $target_path = $target_path . basename(...

Проблемы с загрузкой HDD
Ребутнул ноут на днях, теперь не грузит систему с диска. БИОС определяет веник все как надо быть,...

Проблемы с загрузкой системы
Пять дней назад поставил систему, все это время было хорошо. А сегодня система перестала...

Проблемы с загрузкой биоса
Материнская плата b350 plus https://www.asus.com/ru/Motherboards/PRIME-B350-PLUS/ Поменял частоты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru