![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| n4n0bit |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.6.2008 Репутация: нет Всего: 1 |
Доброе время суток.
Пишу небольшую примочку к squid, что та вроде биллинга. Написал я редиректор для squid-a, работает он справно, но как принес из дома на работу, там примерно 50-60 компов, то mysql начал жрать 60-70% CPU, как бы можно было оптимизировать? Или никак? а пользоваться уже существующими ( SquidGuard - работает с Berkeley DB, и тд, их валом ). Или мне поменять БД? Дела в том что запросов через редиректор проходит много, ну скажем человек запросил какой нить ресурс где куча картинок <img src> и эти ссылки все будут проходить через редиректор, а людей то много и mysqld много жрет проца. Нужели в этой ситуации будет выигрывать Berkeley DB ? Ниже приведена часть редиректора knife.pl :
SquidTools::Redirector::Verifier :
|
||||
|
|||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Уважаемый n4n0bit, посмотрите время выполнения запросов в MySQL (DBI::Profile). По результатам можно будет сделать выводы.
Это сообщение отредактировал(а) ginnie - 20.6.2008, 14:29 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| n4n0bit |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.6.2008 Репутация: нет Всего: 1 |
Если я делаю /SquidTools/bin/knife.pl а потом передаю аргументы http://xakep.ru 127.0.0.1 tester GET то сбрасывается дамп в файл такого вида:
Но если этот файл юзает squid, то в файл ничего не сбрасывается. Это сообщение отредактировал(а) n4n0bit - 20.6.2008, 15:30 |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Можно при помощи
явно указать файл, в который будет записываться статистика. Данные в файл запишутся после перезапуска squid. Смотреть лучше на рабочем сервере (чтобы были реальные цифры). -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| n4n0bit |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.6.2008 Репутация: нет Всего: 1 |
Файл Virifier.pm изменил след образом:
Результат домпа DBI::DataDumper:
Первоночально top показывал что mysqld жрет 70% CPU и машина заметно тормозило, сейчас при тестировании ниже приведенным сценарием CPU грузится до 7%, разница заметна, хочу выразить благодарность ginnie
ps: При использовании модуля DBI::ProfileDumper squid сбрасывал файл дампа в свою директорию где лежит его кэш /usr/local/squid/cache ( см. топик выше ) Это сообщение отредактировал(а) n4n0bit - 20.6.2008, 19:56 |
||||||
|
|||||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
ачем логи килать в мускул? лучше в файл а из него потом брать, а apache именно так сделано...
попробуйте оптимизировать, например если у вас памяти 2Gb и более, то попробуйте поставить больше памяти для ключей и т.д... можите постаивить несоклько серверов, сделать один кластер... Это сообщение отредактировал(а) gcc - 20.6.2008, 21:00 |
|||
|
||||
| n4n0bit |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.6.2008 Репутация: нет Всего: 1 |
gcc золотые слова =) мне даже не дают еще один комп для поднятия домена =)))
Чесн сказать немнога вас не понял, ну у меня и берутся логи из фала а потом в mysql, т.е. access.log squid-a остается в оригинале. Памити вроде 2Gb, хотя не уверен, но то что я делал сегодня это на моем домашнем ПК с 512 ОЗУ, думаю на работе будет работать справнее. |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
а почему вы записываете в DB Berkley?
ну на apache при 1000 пользователей, открыты всегда лог файлы в них записываються всегда логи, и ничего не грузит, грузит но не сильно... если все это записвать в мускул, то говорят, что будет грузить может mysql грузится потомучто в нее выполняют insert, а не select? Это сообщение отредактировал(а) gcc - 21.6.2008, 02:20 |
|||
|
||||
| n4n0bit |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.6.2008 Репутация: нет Всего: 1 |
gcc Mysql грузился не при insert а при select, когда пользователи делаю кучу запросов, тогда было гружение, а при добавлении данных в БД insert-ом проц грузит тока перл скрипт который добавляет, но это решается путем использования модуля Time::HiRes ф-ции sleep при построчном чтении.
ps: всем спс |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |