Mac Опубликовано 30 января, 2008 Жалоба Поделиться Опубликовано 30 января, 2008 Товарищи! Отечество в опасности!Обращаюсь ко всем, кто хоть как-то связан с администрированием веб-серверов и программированием с просьбой о помощи. Как вы все видите, уже не первый месяц вечером на Улановку зайти становится все сложнее из-за нагрузки на сервер. В чем причина. Давайте разберемся вместе!Для начала опишу отброшенные гипотезы:[*:d7149e892e]Загрузка канала. Возможной причиной тормозов могли быть забитые каналы, но в этом случае страницы генерировались штатно быстро, а загружались бы медленно (по частям). Это мы не наблюдаем, и слава богу.[*:d7149e892e]Маломощность серверного "железа". Администратор форума Сибирьтелекома любезно предоставил нам конфигурацию "железа". Это действительно неслабая машина. Ее теоретически должно хватать для правильной работы веб-сервера с нашей нагрузкой (при правильной его настройке, конечно).Основных гипотез две:[*:d7149e892e]Ошибки и неоптимальный код движка.Сисадмины Сибирьтелекома, на серверах которого физически находится трекер, придерживаются именно ее, полагая, что дело в самом форумном движке phpBB, который не является лучшим выбором для подобного проекта. Я, честно говоря, не совсем согласен с этим утверждением, аргументируя это тем фактом, что phpBB используется во всем мире и входит в тройку самых популярных форумных движков. Существует множество форумов с куда большей посещаемостью, которые не страдают такими пролемами. Также скажу, что перелопатил все русское сообщество phpbb в тщетных попытках найти ответ на свой вопрос. Всевозможные мелкие уловки и хаки для оптимизации уже установлены (# кэширование, использование динамических HEAP-таблиц для хранения сессий, ограничение количества сессий, включение/выключение сжатия gzip и пр.).[*:d7149e892e]Неправильная (неоптимальная) настройка сервера.Я сам склоняюсь к этому мнению. В администрировании веб-серверов я, к сожалению, не силен, потому опираюсь лишь на свои дилетантские знания и гугл. Поэтому прошу людей знающих подсказать возможные пути решения проблемы в этом направлении. Конфигурацию сервера (phpinfo) предоставлю, может она прольет свет на возможные причины тормозов.К слову скажу, что недавно исправленная ошибка с загрузкой аватаров на сервер была связана именно с ошибкой в настройке веб-сервера - неправильно установленной директивой open_basedir в php.ini.Прошу программистов помочь разобраться в первой теории, а системщиков - поработать во втором направлении. Уверен, вместе мы найдем причину и устраним ее!График распределения нагрузки на сервер по времени суток выглядит примерно так:Как видно из рисунка, максимальный пик попадает на промежуток с 18.00 вечера до 00.00. А минимальная нагрука приходится на 5-6 утра.В данной теме прошу писать только свои трезвые предложения и толковые мысли, без оффтопа, а также прошу воздержаться от оскорблений администрации Сибирьтелекома. Ссылка на комментарий
Гость bot Опубликовано 30 января, 2008 Жалоба Поделиться Опубликовано 30 января, 2008 Топик был перенесен из форума Программирование в форум Работа трекера Mac Ссылка на комментарий
Merlin Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 а на сервере, кроме форума Улановки еще что-нить крутится?неплохо было бы еще посмотреть результаты команды top во время максимальных загрузок..чтобы посмотреть какие именно процессы больше всего нагружают систему..mysqld, множество httpd или вообще что-нить совсем другое.. Ссылка на комментарий
VampiRUS Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 Мне кажется нужно копануть в сторону оптимизации sql запросов Ссылка на комментарий
dr_agon Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 может скажу глупость - тормоза sql-запросов ликвидируются переиндексацией БД и ежедневным ребутом web-сервера, иногда просто админы мало уделяют внимание swap и ставят его на внешних дорожках накопителей - в таком случае своп забивается быстрее Ссылка на комментарий
btc Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 а параметры сервера увидеть можно ? Какой софт и железо там стоит? Ссылка на комментарий
Вадимка Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 ИМХО, 2-й вариант - сервер, в частности PHP, настроен криво. Об этом может говорить то, что сам сайт stbur.ru, открывается крайне медленно. Что делать: работать с админами. Ссылка на комментарий
Hedge Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 btc"ацтойное галимое железо стбура"The world's best selling server just got better; the new ProLiant DL380 delivers on its history of design excellence with enterprise-class uptime and manageability, proven 2-way Intel Xeon performance, and 2U density for a variety of rack deployments and applications.What's newIntroducing the HP ProLiant DL380 G4, now available with the latest Intel Xeon processors and new high performance models for convenient fully loaded configurations:Performance* Intel® Xeon™ processors with EM64T, 800 MHz FSB* 400MHz DDR-2 Memory, 6 sockets, 12GB Max (Note: 6GB Max at launch - 2GB DIMM availability is expected in 4Q04)* Ultra 320 Smart Array 6i w/transportable BBWC (128MB) option* High Performance modelsManagement* iLO shared network port* SmartStart 7.1Options* (3) PCI-X Expansion Slots non-hot-plug standard, optional PCI-E or hot-plug PCI-X* Optional improved duplex drive backplane* Optional floppy driveDesign* USB up-front* Universal rails (fits square and round hole racks)* Ambidextrous snap-on cable management arm and quick release levers provide fast access to serverSpecs at a glanceDL 380G4Processor Intel Xeon™ DP processor at 3.6 GHz/2MB standard (up to 2 supported), 800 MHz FSBStandard memory 1 GBMax memory 12 GBMax internal drives 6 x SCSI, 8 x SASForm factor 2UIdeal environmentEnvironments of all types and sizes* The unmatched flexibility of the DL380 has made it the best selling server in the world - sold to businesses of all sizes for a vast array of applications.* Large internal storage capacity for everything from web apps to databases* Easily connected to storage networks and easily managed from wherever you areSpace-constrained corporate data centers and service providers* The DL380 packs the storage, memory, and I/O you need into only 2U of rack space* Ambidexterous cable management and a quick deploy rail solution make racking a snap* Availability features like hot plug/redundant power, online spare memory, and hot plug/redundant fans keep environments up and running and users productiveSophisticated SMB locations* The DL380 is not just for enterprises. Small and medium businesses with rack environments that can benefit from remote server management or network backup should consider the DL380.* Not ready for a rack environment? Consider the ProLiant ML370.а вообще вот тема: stbur Ссылка на комментарий
CooDi Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 Возможно, что php подключен к апачу как cgi а не как библиотека (хотя я сомневаюсь). Ссылка на комментарий
Mac Опубликовано 31 января, 2008 Автор Жалоба Поделиться Опубликовано 31 января, 2008 Вот phpinfo() Ссылка на комментарий
Mac Опубликовано 1 февраля, 2008 Автор Жалоба Поделиться Опубликовано 1 февраля, 2008 И тишина...Вот тут конкретно с торрентпировского форума админ пишет:небольшие советы по увеличению производительности1. не допускать использования свопа2. поставить какой-нибудь php-кеш, например APC (http://pecl.php.net/package/APC), используется на torrents.ru и torrents.net.ua, дает существенное увеличение производительности3. включить в mysql query_cache ну и увеличить остальные буфера по вкусу4. избавится от apache, освобождается куча памяти, которую можно отдать, например, mysql-у. torrents.net.ua сейчас работает на связке nginx + php-fastcgiИ вот выдержка из статьи по оптимизации сервера:MySQLДобавьте или измените следующие опции в my.cnf:[*:dcdd874aa0]Отключите bin loglog-bin[*:dcdd874aa0]Включите и увеличте размер query_cachequery_cache_limit = 2M # по умолчанию было 1Mquery_cache_size = 64M # по умолчанию было 0query_cache_type = 1[*:dcdd874aa0]Увеличте table_cachetable_cache = 256 # по умолчанию было 64[*:dcdd874aa0]Увеличте key_bufferkey_buffer_size = 64M # по умолчанию было 8M[*:dcdd874aa0]Установите параметр max_connections так, чтобы он равнялся параметру MaxClients в настройках ApacheИсточник.В данный момент эти параметры у нас по дефолту:query_alloc_block_size 8192query_cache_limit 1048576query_cache_min_res_unit 4096query_cache_size 0query_cache_type ONquery_cache_wlock_invalidate OFFquery_prealloc_size 8192table_cache 64key_buffer_size 8388600max_connections 100Системные переменные MySQL сервера:Переменные сервера значения переменныхback_log 50basedir /usr/bdb_cache_size 8388600bdb_home /var/lib/mysql/bdb_log_buffer_size 32768bdb_logdirbdb_max_lock 10000bdb_shared_data OFFbdb_tmpdir /tmp/binlog_cache_size 32768bulk_insert_buffer_size 8388608character_set_client cp1251character_set_connection cp1251character_set_database cp1251character_set_results cp1251character_set_server cp1251character_set_system utf8character_sets_dir /usr/share/mysql/charsets/collation_connection cp1251_swedish_cicollation_database cp1251_general_cicollation_server cp1251_general_ciconcurrent_insert ONconnect_timeout 5datadir /var/lib/mysql/date_format %Y-%m-%ddatetime_format %Y-%m-%d %H:%i:%sdefault_week_format 0delay_key_write ONdelayed_insert_limit 100delayed_insert_timeout 300delayed_queue_size 1000expire_logs_days 0flush OFFflush_time 0ft_boolean_syntax + -><()~*:""&|ft_max_word_len 84ft_min_word_len 4ft_query_expansion_limit 20ft_stopword_file (built-in)group_concat_max_len 1024have_archive NOhave_bdb YEShave_blackhole_engine NOhave_compress YEShave_crypt YEShave_csv NOhave_example_engine NOhave_geometry YEShave_innodb YEShave_isam YEShave_ndbcluster NOhave_openssl YEShave_query_cache YEShave_raid NOhave_rtree_keys YEShave_symlink YESinit_connectinit_fileinit_slaveinnodb_additional_mem_pool_size 1048576innodb_autoextend_increment 8innodb_buffer_pool_awe_mem_mb 0innodb_buffer_pool_size 8388608innodb_data_file_path ibdata1:10M:autoextendinnodb_data_home_dirinnodb_fast_shutdown ONinnodb_file_io_threads 4innodb_file_per_table OFFinnodb_flush_log_at_trx_commit 1innodb_flush_methodinnodb_force_recovery 0innodb_lock_wait_timeout 50innodb_locks_unsafe_for_binlog OFFinnodb_log_arch_dirinnodb_log_archive OFFinnodb_log_buffer_size 1048576innodb_log_file_size 5242880innodb_log_files_in_group 2innodb_log_group_home_dir ./innodb_max_dirty_pages_pct 90innodb_max_purge_lag 0innodb_mirrored_log_groups 1innodb_open_files 300innodb_table_locks ONinnodb_thread_concurrency 8interactive_timeout 28800join_buffer_size 131072key_buffer_size 8388600key_cache_age_threshold 300key_cache_block_size 1024key_cache_division_limit 100language /usr/share/mysql/english/large_files_support ONlicense GPLlocal_infile ONlocked_in_memory OFFlog OFFlog_bin OFFlog_errorlog_slave_updates OFFlog_slow_queries OFFlog_update OFFlog_warnings 1long_query_time 10low_priority_updates OFFlower_case_file_system OFFlower_case_table_names 0max_allowed_packet 1048576max_binlog_cache_size 4294967295max_binlog_size 1073741824max_connect_errors 10max_connections 100max_delayed_threads 20max_error_count 64max_heap_table_size 16777216max_insert_delayed_threads 20max_join_size 4294967295max_length_for_sort_data 1024max_relay_log_size 0max_seeks_for_key 4294967295max_sort_length 1024max_tmp_tables 32max_user_connections 0max_write_lock_count 4294967295myisam_data_pointer_size 4myisam_max_extra_sort_file_size 2147483648myisam_max_sort_file_size 2147483647myisam_recover_options OFFmyisam_repair_threads 1myisam_sort_buffer_size 8388608net_buffer_length 16384net_read_timeout 30net_retry_count 10net_write_timeout 60new OFFold_passwords ONopen_files_limit 1024pid_file /var/run/mysqld/mysqld.pidport 3306preload_buffer_size 32768protocol_version 10query_alloc_block_size 8192query_cache_limit 1048576query_cache_min_res_unit 4096query_cache_size 0query_cache_type ONquery_cache_wlock_invalidate OFFquery_prealloc_size 8192range_alloc_block_size 2048read_buffer_size 131072read_only OFFread_rnd_buffer_size 262144relay_log_purge ONrelay_log_space_limit 0rpl_recovery_rank 0secure_auth OFFserver_id 0skip_external_locking ONskip_networking OFFskip_show_database OFFslave_net_timeout 3600slave_transaction_retries 0slow_launch_time 2socket /export/var/lib/mysql/mysql.socksort_buffer_size 2097144sql_modestorage_engine MyISAMsql_notes ONsql_warnings ONsync_binlog 0sync_replication 0sync_replication_slave_id 0sync_replication_timeout 0sync_frm ONsystem_time_zone IRKTtable_cache 64table_type MyISAMthread_cache_size 0thread_stack 196608time_format %H:%i:%stime_zone SYSTEMtmp_table_size 33554432tmpdirtransaction_alloc_block_size 8192transaction_prealloc_size 4096tx_isolation REPEATABLE-READversion 4.1.12version_bdb Sleepycat Software: Berkeley DB 4.1.24: (May 13, 2005)version_comment Source distributionversion_compile_machine i686version_compile_os redhat-linux-gnuwait_timeout 28800 Ссылка на комментарий
begemot Опубликовано 2 февраля, 2008 Жалоба Поделиться Опубликовано 2 февраля, 2008 PHPBB - действительно отстойный движок. И крупные трекеры рунета (torrents.ru, tfile.ru и др.), работающие на нём, точно так же лежат в DoS'e в вечернее время (только по московскому времени).Однако, если железо сервера хватает и канал достаточно широк, то оптимизировать, безусловно, нужно конфиг PHP в его .ini-файле, но и здесь вряд ли кроектся истинная проблема ulanovka.ru.По статистике в bottom'e страниц явно видно, что основная причина в MySQL! Следовательно, именно SQL-сервер и нцжно настраивать в первую очередь.Здесь у phpbb появляется яркое преимущество - он поддерживает PostgreSQL. Это промышленная РСУБД, рядом с которой MySQL и рядом не стояла. Однако, необходима поддержка провайдера, предоставляющего хостинг-площадку, и перевод имеющейся базы из MySQL в Postgres, что является очень нетривиальной задачей.Хотя, если не переходить на PostgreSQL, а продолжать "колдовать" над MySQL, то это будет не менее сложно! (:дело в том, что MySQL показывает лучшие результаты в производительности (по сравнению с postgres) на определённых конфигурациях оборудования и (что очень важно!) при отностительно небольшом количестве запросов в секунду!А при серьёзных нагрузках MySQL "падает", в то время как Postgres и "глазом не моргнёт"! (:С такой проблемой MySQL сталкивается, например, всем известный ЖЖ (livejournal.com), который уже что только не придумывал для повышения устойчивости MySQL.Самым эффективным улучшением является модуль mem_cache, однако, его можно использовать только если сервер- dedicated, то есть, если кроме ulanovka.ru ничего больше на сервере не хостится.Добавлено:Если идея о переходе на РСУБД PostgreSQL будет рассмотрена, то можно поискать автоматизированные способы перевода базы из MySQL.например, здесь: http://www.lowlevel.cz/log/pivot/entry.php?id=101 Ссылка на комментарий
MustDie Опубликовано 2 февраля, 2008 Жалоба Поделиться Опубликовано 2 февраля, 2008 Уже не первый раз сталкиваюсь вот с такой вот ошибкойphpBB : Critical ErrorError creating new sessionDEBUG MODESQL Error : 1114 The table 'phpbb_sessions' is fullINSERT INTO phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) VALUES ('2cfe8b9ac0d1ca8a5adc028d713bc1b7', -1, 1201780999, 1201780999, '5abc2f2b', 0, 0, 0)Line : 208File : sessions.phpИз чего следует что это ошибка движка.Что делаем:1. Очистить табличку 'phpbb_sessions' в mySQL.2. Увеличить максимально возможное кол-во одновременных сессий.Если это не помогло то как все это автоматизировать можно почитать на бескрайних просторах инета. С такой проблемой MySQL сталкивается, например, всем известный ЖЖ (livejournal.com) Нагрузка livejournal.com не сравнима с нагрузкой ulanovka.ru так что думаю не стоит тут все валить на MySQL. 3000 с лишним юзеров думаю для MySQL посилам. Да и отказывать от apache я бы тоже не советовал, если хорошее железо то проблема не в этом.Уважаемый, Mac, не стоит обольщаться, думаю обе ваши основные гипотезы верны. Неправильная настройка сервера в совокупности с корявостями движка дает о себе знать. Ссылка на комментарий
Mac Опубликовано 2 февраля, 2008 Автор Жалоба Поделиться Опубликовано 2 февраля, 2008 Уважаемый, Mac, не стоит обольщаться, думаю обе ваши основные гипотезы верны. Неправильная настройка сервера в совокупности с корявостями движка дает о себе знать.Да, нашел один очень страшный запрос в базу на главной странице. Убрал - существенно полегчало.1. Очистить табличку 'phpbb_sessions' в mySQL.2. Увеличить максимально возможное кол-во одновременных сессий.с сессиями стоит мод для их ограничения и автоочистки. Видимо, не успевает просто очистить при большом количестве подключений.Одновременных сессий стоит 160. На один ip - 2 сессии. Можно попробовать повысить первый показатель, но, боюсь, нагрузка возрастет. Ссылка на комментарий
mikhan Опубликовано 10 февраля, 2008 Жалоба Поделиться Опубликовано 10 февраля, 2008 на torrents.ru решили вопрос так21. Почему мне всё время пишет "Извините, сервер перегружен"?!Объяснения от глав. админа, зачем нужна эта табличка:Те вычислительные мощности которые есть у нас просто не позволяют серверам обслужить всех желающих.Именно поэтому мы вынуждены ограничить доступ к форуму.Чтобы получить свободный доступ на форум нужно выполнить одно из следующих условий: 1) Стать активным участником любой зарегистрированной группы на форуме. Список групп здесь. 2) Иметь ратио >1 и UP >100ГБ 3) Иметь собственную раздачу, которую скачали 10 пользователей.p.s. у них больше 7 тысяч человек одновременно, зарегистрированных более миллиона Ссылка на комментарий
Po$amax@ Опубликовано 12 февраля, 2008 Жалоба Поделиться Опубликовано 12 февраля, 2008 Следовало бы облегчить форум от ненужных ДБ MySQL и ненужных модов, например БашОрг квотера, замедляющего загрузку, просто поместить его в отдельный модуль, как SMS Sender, погоду Яндекса, т.к. я заметил, что после ее появления все стало грузиться намного тяжелееДобавлено спустя 1 минуту 15 секунд:Отключить GZIP сжатие SQL запросов, точнее данных СКуЛ Ссылка на комментарий
Mac Опубликовано 12 февраля, 2008 Автор Жалоба Поделиться Опубликовано 12 февраля, 2008 ненужных модов, например БашОрг квотера, замедляющего загрузку, просто поместить его в отдельный модульбашорг загружает 20 цитат с внешки раз в сутки. Все остальное время он берет их через php из тектовых файлов - это грузить не может.погоду Яндекса, т.к. я заметил, что после ее появления все стало грузиться намного тяжелеепогода действует по тому же принципу - раз в час.Отключить GZIP сжатие SQL запросов, точнее данных СКуЛвключал/отключал - эффект одинаковый. Сейчас выключил.Думаем насчет коллокэйшена. Подскажите минимальную конфигурацию железа для таких целей Ссылка на комментарий
Merlin Опубликовано 12 февраля, 2008 Жалоба Поделиться Опубликовано 12 февраля, 2008 для таких целей - это для каких конкретно?сколько человек одновременно должен держать сервак?1000? 2000? 3000?...10000?думаю, вряд ли у нас в регионе есть сайты с такой посещаемостью..так что, ориентироваться следует на советы западных коллег... Ссылка на комментарий
Po$amax@ Опубликовано 12 февраля, 2008 Жалоба Поделиться Опубликовано 12 февраля, 2008 убить репу - 2 запроса к SQL;убить флаги - облегчение запроса к phpbb_usersубрать бота - может поможет и еще + заметил, что на стбуровском форуме двига более тежелая и увесистая, но грузится быстрее. Гипотеза: может приоритет понизили на Улановку.ру ??? Ссылка на комментарий
Mac Опубликовано 12 февраля, 2008 Автор Жалоба Поделиться Опубликовано 12 февраля, 2008 для таких целей - это для каких конкретно?известно, для каких. Для трекера.сколько человек одновременно должен держать сервак?1000? 2000? 3000?Судя по стате трекера http://ulanovka.ru/forum/tracker-stat.php до 2000 пиров (лишь один GET-запрос в несколько минут, грузить сильно не должно) + до 150 юзеров онлайн на форуме.убить репу - 2 запроса к SQL;убирал запросы в топиках - не помогает. Хотя попробую анинсталлить.убить флаги - облегчение запроса к phpbb_usersдумаю, это очень несущественно.убрать бота - может поможет не, бот - эт как юзер. Ссылка на комментарий
Sk8erBoi Опубликовано 18 февраля, 2008 Жалоба Поделиться Опубликовано 18 февраля, 2008 phpinfo() перезалей Ссылка на комментарий
Mac Опубликовано 18 февраля, 2008 Автор Жалоба Поделиться Опубликовано 18 февраля, 2008 phpinfo() перезалейседня перезалью, как дома буду.З.Ы. Мое расследование пришло к выводу, что беда в базе или ее структуре. Копаю дальше. Ссылка на комментарий
Bear Опубликовано 18 февраля, 2008 Жалоба Поделиться Опубликовано 18 февраля, 2008 mysql всетаки клиент-сервер, есть ли возможность завести на соседнем компе? Ссылка на комментарий
Mac Опубликовано 20 февраля, 2008 Автор Жалоба Поделиться Опубликовано 20 февраля, 2008 phpinfo() перезалейhttp://ulanovka.ru/phpinfo.phpmysql всетаки клиент-сервер, есть ли возможность завести на соседнем компе?это вряд ли. Ссылка на комментарий
Sk8erBoi Опубликовано 20 февраля, 2008 Жалоба Поделиться Опубликовано 20 февраля, 2008 mysql всетаки клиент-сервер, есть ли возможность завести на соседнем компе?Да, вот это было бы неплохо... поставить базу на отдельный копм, и помониторить нагрузку... может кто нить предоставить платформу для тестов?p.s.: Есть утилитка mytop, она должна уметь показывать, какие именно запросы так тормозят систему. попроси админов ст показать ее вывод в часы пиковой нагрузки Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти