Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (3) [1] 2 3  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как лучше организовать хранилище айпи?
VELIK505  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1515
Пользователь №: 25307
На форуме: 6 лет, 7 месяцев, 17 дней
Карма: 44




Надо организовать хранилище по сути только айпишников. 5 разных хранилиш.
есть 5 видов рекламок.
При клике сверочка с айпи если был за эти сутки клик с такого айпи то с рекла бабло не списывается.
разных видов реклам таких 5 штучек.
В них примерно идёт по 700к записей в сутки. Соответственно и обращений в сутки так же на проверку есть ли там такой.
создал к 1ой рекламе за сутки 727к записей:
user posted image
Надо таких 5ть табличек в которых будет 700 - лям записей в сутки скапливаться. и раз в сутки по крону допустим зачищать.
Если делать в mysql то напряжно и на запись и на селект юзать так много.
Есть 2 сервачка:
user posted image
На первом крутить нода. мемкеш. редис. пых, nginx, csf(жёсткий)
На 2ом сервачке токо мускул можно сказать.
Как вариант что первое приходит в голову на 2ом сервачке можно создать отдельную mysql базу с 5тью табличками Memory и положить её напрямую в tmpfs тогда и truncate 5 табличек пройдёт махом(но не уверен тоже что правильно делать за раз 5-6 и более лямов записей truncate. (но мне надо экономить как то %CPU а мускуль будет занижать id) Там более 50 гиг озу даже в пики свободно. Тем самым разгрузить %CPU 1ого сервачка так как там файрвол поджирает прилично процессорного времени (он пока банит накрутчиков из за этого там конфиг большеват порядко 20к строк что не есть хорошо).
Как бы вы организовали чтобы задействовать минимум %CPU?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4284
Пользователь №: 29002
На форуме: 5 лет, 11 месяцев, 27 дней
Карма: 147




Цитата
Там более 50 гиг озу

700 лямов айпишников, это - 10 гигов.
почему бы просто не запустить инстанс ноды и хранить все в озу?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VELIK505  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1515
Пользователь №: 25307
На форуме: 6 лет, 7 месяцев, 17 дней
Карма: 44




Цитата (redreem @ 25.01.2016 - 18:03)
Цитата
Там более 50 гиг озу

700 лямов айпишников, это - 10 гигов.
почему бы просто не запустить инстанс ноды и хранить все в озу?

какие 10 гигов. там максимум 2-3гиг и то врятли.
и если ты не заметил я и спрашиваю как хранить в озу лучше.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Ron  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1318
Пользователь №: 41686
На форуме: 1 год, 11 месяцев, 19 дней
Карма: 24




Цитата (VELIK505 @ 25.01.2016 - 21:43)
Как бы вы организовали чтобы задействовать минимум %CPU?

Я бы попрбовал на Redis, есть механизм expire, не подойдет?



--------------------
5.11.2017
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VELIK505  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1515
Пользователь №: 25307
На форуме: 6 лет, 7 месяцев, 17 дней
Карма: 44




Цитата (Ron @ 25.01.2016 - 18:32)
Цитата (VELIK505 @ 25.01.2016 - 21:43)
Как бы вы организовали чтобы задействовать минимум %CPU?

Я бы попрбовал на Redis, есть механизм expire, не подойдет?

У редиса есть чёто типо мемкешевских чанков? чтобы в 1ом хранилище не хранить 5-6 лямов айпи. А разбить на 5-6 чанков. (мемкеш точно не подойдёт хоть и быстрее доступ чем с редисом но он CPU любит кушать, редис вообще почти не тратит процессорное время). Думаю он подойдёт если пойму как в нём правильно организовать хранилище и чистить его раз в сутки.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Oyeme  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Reality is wrong. Dreams are for real
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1726
Пользователь №: 16955
На форуме: 8 лет, 5 месяцев, 3 дня
Карма: 96




Думаю redis точно подойдет,так как redis поддерживает репликацию.

Как говорят memcache сидит на стеройдах и да на втором серваке mysql.Хранить в unsigned integer or VARBINARY(16)

Используя функции INET_ATON() и INET_NTOA() - для получения и хранения.

Данных то немного,мы же не говорим об миллардах строк в сутки.


Особо стандартное решение.


--------------------
Programming: Private lessons via skype £45/h

Частные уроки в Лондоне / удаленно по skype.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VELIK505  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1515
Пользователь №: 25307
На форуме: 6 лет, 7 месяцев, 17 дней
Карма: 44




Oyeme
Мне не надо mysql(можно если чё потерять данные пофиг на них).
А как редис ну я буду пихать всё в редис там будет куча записей как к нему доступ будет? У редиса подхранилища свои есть? в редис буду ломиться на том сервачке где mysql. Ну допустим тот же xcache я бью на слоты чтобы равноверно в каждый слот записывать данные чтобы доступ быстрее был к скриптам. Если в 1 слот всё запихать очень долгий доступ будет. Мемкеш на чанки так же. А у редиса что? понял про что я?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Oyeme  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Reality is wrong. Dreams are for real
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1726
Пользователь №: 16955
На форуме: 8 лет, 5 месяцев, 3 дня
Карма: 96




Цитата (VELIK505 @ 25.01.2016 - 19:16)
Oyeme
Мне не надо mysql(можно если чё потерять данные пофиг на них).
А как редис ну я буду пихать всё в редис там будет куча записей как к нему доступ будет? У редиса подхранилища свои есть? в редис буду ломиться на том сервачке где mysql. Ну допустим тот же xcache я бью на слоты чтобы равноверно в каждый слот записывать данные чтобы доступ быстрее был к скриптам. Если в 1 слот всё запихать очень долгий доступ будет. Мемкеш на чанки так же. А у редиса что? понял про что я?

Пример как можно хранить ключи

http://instagram-engineering.tumblr.com/po...imple-key-value

Для Ip можно что-то придумать с конвертации в decimal http://www.aboutmyip.com/AboutMyXApp/IP2Integer.jsp


--------------------
Programming: Private lessons via skype £45/h

Частные уроки в Лондоне / удаленно по skype.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 823
Пользователь №: 36058
На форуме: 4 года, 7 месяцев
Карма: 42




Цитата (VELIK505 @ 25.01.2016 - 21:43)
Если делать в mysql то напряжно и на запись и на селект юзать так много.

Бред.
Даже на слабом серверочке mySQL легко отработает >>100 млн. запросов в сутки, что на порядок больше требуемого для Вашей задачи (5 * 700к записей в сутки).


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 396
Пользователь №: 41702
На форуме: 1 год, 11 месяцев, 14 дней
Карма: 13




VELIK505, попробую немного не в тему подумать вслух.
В вашем варианте при клике идет запрос (к базе, к памяти... пох куда) и идет поиск по IP, что имеет свою нагрузку.
Если например юзеру писать в куку первый клик, и потом тупо сверять по куке, то не придется сверять IP. При варианте с защитой от накруток, процесс можно усложнить, но он наверняка будет менее затратным , чем поиск одного IP из 700 лямов.

Попробуйте посмотреть в эту сторону.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2641
Пользователь №: 37963
На форуме: 3 года, 11 месяцев, 17 дней
Карма: 29




Цитата (S.Chushkin @ 25.01.2016 - 23:53)
Бред.
Даже на слабом серверочке mySQL легко отработает >>100 млн. запросов в сутки, что на порядок больше требуемого для Вашей задачи (5 * 700к записей в сутки).

Какой тип лучше для IP в MySQL?


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15395
Пользователь №: 4190
На форуме: 9 лет, 5 месяцев, 21 день
Карма: 470




Цитата (Медведь @ 26.01.2016 - 22:27)
Какой тип лучше для IP в MySQL?

Если уж использовать БД, то в Постгре есть тип данных IP. Не надо ничего придумывать, просто берешь и используешь.

Цитата (icedfox @ 26.01.2016 - 17:21)
Если например юзеру писать в куку первый клик, ...

Тогда уж лучше в сессию, наверное smile.gif

VELIK505, можно ж еще партиции использовать, это позволит существенно снизить поисковую нагрузку.
Рассуждения насчет truncate не понял. Вообще, это очень быстрая операция.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2641
Пользователь №: 37963
На форуме: 3 года, 11 месяцев, 17 дней
Карма: 29




Цитата (sergeiss @ 26.01.2016 - 22:49)
Если уж использовать БД, то в Постгре есть тип данных IP. Не надо ничего придумывать, просто берешь и используешь.

Хостинг, его дивизию...


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 396
Пользователь №: 41702
На форуме: 1 год, 11 месяцев, 14 дней
Карма: 13




Цитата (sergeiss @ 27.01.2016 - 00:49)
Тогда уж лучше в сессию, наверное

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

Цитата (Медведь @ 27.01.2016 - 00:27)
Какой тип лучше для IP в MySQL?

в MySQL нет полей для IP, обычно ставят varchar(40)
Именно поэтому поиск по IP не самый оптимальный запрос к базе. На высоконагруженных проектах разный изврат используют для оптимизации wink.gif
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15395
Пользователь №: 4190
На форуме: 9 лет, 5 месяцев, 21 день
Карма: 470




Цитата (icedfox @ 26.01.2016 - 22:58)
когда можно на стороне клиента это решить

Это для "пионеров" защита. А на сервере всё равно ж проверять придется, по-любому.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (3) [1] 2 3  Ответ в темуСоздание новой темыСоздание опроса