- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Написал на перле программу, которая запрашивает достаточно много внешних данных через get().
Число параллельно исполняемых запросов внешних данных управляется в программе. При отладке заметил что на уровне 6-7 одновременных запросов наступает ограничение производительности. В этом режиме внешний трафик примерно 3 Мбит/с , если попытаться выполнять более 10 запросов, то внешний трафик падает до 2 Мбит/с и в такой же мере понижается общая производительность программы.
Кто-нибудь знает где искать узкое место? Может это что-то с портами? Может еще с чем?
Общая нагрузка на процессор не более 10%, памяти предостаточно.
Написал на перле программу, которая запрашивает достаточно много внешних данных через get().
В перле много модулей, и добрая половина из них имеет метод/функцию get. О котором модуле речь?
если попытаться выполнять более 10 запросов, то внешний трафик падает до 2 Мбит/с и в такой же мере понижается общая производительность программы.
А источник данных-то один и тот же? Может он и не справляется с отдачей?
В перле много модулей, и добрая половина из них имеет метод/функцию get. О котором модуле речь?
Модуль LWP::Simple
А источник данных-то один и тот же? Может он и не справляется с отдачей?
Источники данных разные, подавялющее большинство из них имеют отдачу более 10 Мбит/с.
Модуль LWP::Simple
Источники данных разные, подавялющее большинство из них имеют отдачу более 10 Мбит/с.
А как распараллеливается скрипт - fork или threads?
А как распараллеливается скрипт - fork или threads?
Проще. Запуском отдельных .pl модулей, каждый из которых содержит get() и предварительную обработку. Окончательная стыковка (линковка) данных в главном модуле. Обмен данными через файлы.
Ощущение, что сам скрипт у вас ни причем. Может в диске дело? Вообще, трудно сказать, не зная всей конфигурации. 3 Мбит/c - это порядка 30 Мбайт в сек. Вот у меня сейчас sata диск в системе пишет на тесте со скростью от 12 до 20 Мбайт в сек - ну комп не очень новый.
Можно попробовать прогнать тест закачек на Ram-диск, если условия позволяют, а потом уже глядеть на возможные сетевые проблемы.
... 3 Мбит/c - это порядка 30 Мбайт в сек....
3 Мбит/c это примерно 300 Кбайт/с - скорость совсем смешная для любого диска :)
Ну да, протупил под вечер. Тогда сеть смотрите, попробовать десять wget-ов одновременно запустить по этим же адресам и посмотреть результат. Сам LWP - просто честно сосет трафик из соединения, без выкрутасов, там ничего не поймать.
Ну да, протупил под вечер. Тогда сеть смотрите, попробовать десять wget-ов одновременно запустить по этим же адресам и посмотреть результат. Сам LWP - просто честно сосет трафик из соединения, без выкрутасов, там ничего не поймать.
Десять каких wget-ов ?
SPQ, обычных теперь уже классических программ wget из обычного shell.
КАЖДЫЙ из 10 источников разный?
На какой платформе запускаете ? Не забываем про ограничения сокетов в openvz и ограничения на полуоткрытые соединения в "клиентских" windows.
КАЖДЫЙ из 10 источников разный?
На какой платформе запускаете ? Не забываем про ограничения сокетов в openvz и ограничения на полуоткрытые соединения в "клиентских" windows.
Да , все 10 разные и все 10 весьма быстрые в отдаче.
Запускаю под денвером в win xp .
Как посмотреть ограничения сокетов и ограничения на полуоткрытые соединения ? Можете дать ссылку на мануал ?