1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

1.1.0 Загрузка сервера

Тема в разделе "Оптимизация XenForo", создана пользователем KolobOKs, 05.12.2011.

Загрузка
  1. KolobOKs

    KolobOKs Активный пользователь

    Регистрация:
    12.12.10
    Сообщения:
    25
    Симпатии:
    2
    Версия XF:
    1.1.0 Final
    Всем доброго времени суток.
    XenForo стоит на Debian. Intel(R) Xeon(R) CPU E5420 @ 798.389 Mhz, 512 ОЗУ.

    При изменении какого-либо шаблона, его сохранение идет секунд 30. Посмотрел командой top в ssh загрузку сервера - во время смены шаблона 98% .
    Да и просто при переходе по любой ссылке на форуме - загрузка подскакивает до 10-16%. (соответственно, если 2 пользователя это делают одновременно, то 20-36%).

    В чем может быть проблема, что посоветуете?
     
  2. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Может в этом?
     
  3. KolobOKs

    KolobOKs Активный пользователь

    Регистрация:
    12.12.10
    Сообщения:
    25
    Симпатии:
    2
    Версия XF:
    1.1.0 Final
    Пробовали увеличить в 2 раза. тот же эффект
     
  4. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    Вряд ли. Есть несколько форумов на Intel Xeon 600 Mhz + RAM 512. Проблемы такой нет.
     
  5. KolobOKs

    KolobOKs Активный пользователь

    Регистрация:
    12.12.10
    Сообщения:
    25
    Симпатии:
    2
    Версия XF:
    1.1.0 Final
    Возможно каким-либо образом проверить правильно ли работает бд?
     
  6. Narwen

    Narwen Активный пользователь

    Регистрация:
    23.12.10
    Сообщения:
    55
    Симпатии:
    11
    Версия XF:
    1.1.2
  7. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Даже при настройках базы по умолчанию таких тормозов не должно быть.

    Очень похоже что вдс хостер очень сильно оверселлит или память (если опенвз) или жесткий диск (на любом вдс хостинге). В момент тормозов в шелле командой top проверьте загрузку процессора wa% (ожидание ввода/вывода), если основную нагрузку дает именно это - то 100% оверселлят.
     
    infis нравится это.
  8. KolobOKs

    KolobOKs Активный пользователь

    Регистрация:
    12.12.10
    Сообщения:
    25
    Симпатии:
    2
    Версия XF:
    1.1.0 Final
    В момент нагрузки, wa подскакивает до 80, чередуясь с us.

    т.е. вот это вы имели ввиду?:
    Код:
    [client]
    port            = 3306
    socket          = /var/run/mysqld/mysqld.sock
     
    [safe_mysqld]
    err-log          = /var/log/mysql/mysql.err
     
    [mysqld]
    user            = mysql
    pid-file        = /var/run/mysqld/mysqld.pid
    socket          = /var/run/mysqld/mysqld.sock
    port            = 3306
    max_connections  = 300
    basedir          = /usr
    datadir          = /var/lib/mysql
    tmpdir          = /tmp
    language        = /usr/share/mysql/english
    log-slow-queries = /var/log/mysql-slow.log
     
    skip-locking
     
    key_buffer              = 512M
    myisam_sort_buffer_size = 16M
    max_allowed_packet      = 16M
    table_cache            = 3000
    join_buffer_size        = 2M
    sort_buffer_size        = 2M
    read_buffer_size        = 2M
    read_rnd_buffer_size    = 2M
    thread_cache_size      = 64
    query_cache_limit      = 16M
    query_cache_size        = 64M
    query_cache_type        = 1
    tmp_table_size          = 128M
    max_heap_table_size    = 128M
    long_query_time        = 2
     
    wait_timeout = 360
    interactive_timeout = 360
    connect_timeout = 10
    net_read_timeout = 30
    net_write_timeout = 60
    concurrent_insert = 2
     
    innodb_log_buffer_size = 8M
    innodb_log_file_size = 32M
    innodb_flush_log_at_trx_commit = 2
    innodb_flush_method = O_DIRECT
    innodb_thread_concurrency = 8
    innodb_additional_mem_pool_size = 8M
    innodb_buffer_pool_size = 2200M
    innodb_fast_shutdown = 0
     
     
    ft_min_word_len = 3
     
     
    [mysqldump]
    quick
    max_allowed_packet = 16M
     
    [mysql]
     
    [isamchk]
    key_buffer = 64M
    sort_buffer = 64M
    read_buffer = 16M
    write_buffer = 16M
    ft_min_word_len = 3
     
    [myisamchk]
    key_buffer = 64M
    sort_buffer = 64M
    read_buffer = 16M
    write_buffer = 16M
    ft_min_word_len = 3
     
  9. KolobOKs

    KolobOKs Активный пользователь

    Регистрация:
    12.12.10
    Сообщения:
    25
    Симпатии:
    2
    Версия XF:
    1.1.0 Final
    Среднее время генерирования страница ~1.5с.
    Перенес этот форум на локал хост - тоже самое.
     
  10. 1981

    1981 Местный

    Регистрация:
    15.10.11
    Сообщения:
    273
    Симпатии:
    19
    Версия XF:
    1.1.4
    Может как то БД оптимизировать, кто знает как?
     
  11. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Ищите в плагинах, скорее всего. А вообще хотя бы в дебаге посмотреть, на что время тратится.
     
  12. KolobOKs

    KolobOKs Активный пользователь

    Регистрация:
    12.12.10
    Сообщения:
    25
    Симпатии:
    2
    Версия XF:
    1.1.0 Final
    После смены типа таблиц в бд с innodb на MyISAM - генерация страницы уменьшилась до 0.2-0.6сек.
    Однако, на загрузку сервера это никак не повлияло.

    Вот что выдает дебаг:
    Код:
    Page Time: 0.5388s
    Memory: 11.1407 MB (Peak: 12.4986 MB)
    Queries (11, time: 0.0070s, 1.3%)
     
        SELECT data_key, data_value
        FROM xf_data_registry
        WHERE data_key IN ('options', 'languages', 'contentTypes', 'codeEventListeners', 'cron', 'simpleCache', 'routesPublic', 'nodeTypes', 'bannedIps', 'discouragedIps', 'styles', 'displayStyles', 'smilies', 'bbCode', 'threadPrefixes', 'trophyUserTitles', 'reportCounts', 'moderationCounts', 'notices', 'userFieldsInfo')
     
        Run Time: 0.001580
        Select Type    Table    Type    Possible Keys    Key    Key Len    Ref    Rows    Extra
        SIMPLE    xf_data_registry    range    PRIMARY    PRIMARY    77        20    Using where
     
        SELECT session_data
        FROM xf_session
        WHERE session_id = ?
            AND expiry_date >= ?
     
        Params: f90400f7022380ddbf33449b260afb33, 1323718363
        Run Time: 0.000220
        Select Type    Table    Type    Possible Keys    Key    Key Len    Ref    Rows    Extra
        SIMPLE    xf_session    system    PRIMARY,expiry_date                  1 
     
        SELECT cache_value
        FROM xf_permission_combination
        WHERE permission_combination_id = ?
     
        Params: 1
        Run Time: 0.000156
        Select Type    Table    Type    Possible Keys    Key    Key Len    Ref    Rows    Extra
        SIMPLE    xf_permission_combination    const    PRIMARY    PRIMARY    4    const    1 
     
        SELECT *
        FROM xf_node
        WHERE display_in_list = 1
        ORDER BY lft ASC
     
        Run Time: 0.000548
        Select Type    Table    Type    Possible Keys    Key    Key Len    Ref    Rows    Extra
        SIMPLE    xf_node    ALL    display_in_list                  59    Using where; Using filesort
     
        SELECT cache_value
        FROM xf_permission_cache_content_type
        WHERE permission_combination_id = ?
            AND content_type = 'node'
     
        Params: 1
        Run Time: 0.000333
        Select Type    Table    Type    Possible Keys    Key    Key Len    Ref    Rows    Extra
        SIMPLE    xf_permission_cache_content_type    const    PRIMARY    PRIMARY    81    const,const    1 
     
        SELECT forum.*
            ,
                NULL AS forum_read_date
        FROM xf_forum AS forum
        INNER JOIN xf_node AS node ON (node.node_id = forum.node_id)
     
        WHERE forum.node_id IN (5, 6, 7, 68, 9, 65, 76, 77, 25, 11, 10, 13, 16, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 28, 66, 29, 27, 31, 32, 30, 52, 53, 54, 55, 57, 56, 82, 83, 84, 85, 86, 87, 88, 69, 34, 36, 37, 38, 39, 40, 41, 43, 48, 49, 44, 45, 46, 50, 59, 74, 64)
     
        Run Time: 0.000603
        Select Type    Table    Type    Possible Keys    Key    Key Len    Ref    Rows    Extra
        SIMPLE    forum    ALL    PRIMARY                  66    Using where
        SIMPLE    node    eq_ref    PRIMARY    PRIMARY    4    public_beta.forum.node_id    1    Using index
     
        SELECT session_activity.*
            ,
            user.*,
            user_profile.*,
            user_option.*
        FROM xf_session_activity AS session_activity
     
            LEFT JOIN xf_user AS user ON
                (user.user_id = session_activity.user_id)
            LEFT JOIN xf_user_profile AS user_profile ON
                (user_profile.user_id = user.user_id)
            LEFT JOIN xf_user_option AS user_option ON
                (user_option.user_id = user.user_id)
        WHERE (session_activity.view_date > 1323717463)
        ORDER BY session_activity.view_date DESC
     
        Run Time: 0.000786
        Select Type    Table    Type    Possible Keys    Key    Key Len    Ref    Rows    Extra
        SIMPLE    session_activity    system    view_date                  1 
        SIMPLE    user    const    PRIMARY    PRIMARY    4    const    0    unique row not found
        SIMPLE    user_profile    const    PRIMARY                  1 
        SIMPLE    user_option    const    PRIMARY                  1 
     
        SELECT data_value
        FROM xf_data_registry
        WHERE data_key = ?
     
        Params: boardTotals
        Run Time: 0.000119
        Select Type    Table    Type    Possible Keys    Key    Key Len    Ref    Rows    Extra
        SIMPLE    xf_data_registry    const    PRIMARY    PRIMARY    77    const    1 
     
        UPDATE `xf_session` SET `expiry_date` = ? WHERE (session_id = 'f90400f7022380ddbf33449b260afb33')
     
        Params: 1323721963
        Run Time: 0.000143
     
        INSERT INTO xf_session_activity
            (user_id, unique_key, ip, controller_name, controller_action, view_state, params, view_date)
        VALUES
            (?, ?, ?, ?, ?, ?, ?, ?)
        ON DUPLICATE KEY UPDATE
            ip = VALUES(ip),
            controller_name = VALUES(controller_name),
            controller_action = VALUES(controller_action),
            view_state = VALUES(view_state),
            params = VALUES(params),
            view_date = VALUES(view_date)
     
        Params: 0, 1834879527, 1834879527, XenForo_ControllerPublic_Index, Index, valid, , 1323718363
        Run Time: 0.000113
     
        SELECT title, template_compiled
        FROM xf_template_compiled
        WHERE title IN ('page_nav', 'node_forum_level_2', 'node_category_level_1', 'node_forum_level_n', 'node_category_level_2', 'node_forum_level_1', 'forum_list', 'PAGE_CONTAINER')
            AND style_id = ?
            AND language_id = ?
     
        Params: 7, 2
        Run Time: 0.002371
        Select Type    Table    Type    Possible Keys    Key    Key Len    Ref    Rows    Extra
        SIMPLE    xf_template_compiled    range    PRIMARY    PRIMARY    160        6    Using where
     
    Included Files (77, XenForo Classes: 52)
     
        index.php
        library/XenForo/Autoloader.php
        library/XenForo/Application.php
        library/Zend/Registry.php
        library/Lgpl/utf8.php
        library/Zend/Config.php
        library/config.php
        library/XenForo/FrontController.php
        library/XenForo/Dependencies/Public.php
        library/XenForo/Dependencies/Abstract.php
        library/Zend/Controller/Request/Http.php
        library/Zend/Controller/Request/Abstract.php
        library/Zend/Uri.php
        library/Zend/Controller/Response/Http.php
        library/Zend/Controller/Response/Abstract.php
        library/XenForo/Model.php
        library/XenForo/Model/DataRegistry.php
        library/XenForo/CodeEvent.php
        library/Zend/Cache.php
        library/Zend/Cache/Backend/Xcache.php
        library/Zend/Cache/Backend/Interface.php
        library/Zend/Cache/Backend.php
        library/Zend/Cache/Core.php
        library/Zend/Db.php
        library/Zend/Db/Adapter/Mysqli.php
        library/Zend/Db/Adapter/Abstract.php
        library/Zend/Db/Select.php
        library/Zend/Db/Expr.php
        library/Zend/Db/Profiler.php
        library/Zend/Db/Statement/Mysqli.php
        library/Zend/Db/Statement.php
        library/Zend/Db/Statement/Interface.php
        library/Zend/Db/Profiler/Query.php
        library/XenForo/Options.php
        library/XenForo/Link.php
        library/XenForo/Template/Helper/Core.php
        library/XenForo/Router.php
        library/XenForo/Route/ResponseSuffix.php
        library/XenForo/Route/Interface.php
        library/XenForo/Route/Prefix.php
        library/XenForo/Route/Prefix/Index.php
        library/XenForo/RouteMatch.php
        library/XenForo/ControllerPublic/Index.php
        library/XenForo/ControllerPublic/Abstract.php
        library/XenForo/Controller.php
        library/XenForo/Input.php
        library/XenForo/Session.php
        library/XenForo/Visitor.php
        library/XenForo/Model/User.php
        library/XenForo/Permission.php
        library/XenForo/Phrase.php
        library/XenForo/Locale.php
        library/XenForo/Model/Node.php
        library/XenForo/NodeHandler/Forum.php
        library/XenForo/NodeHandler/Abstract.php
        library/XenForo/NodeHandler/Category.php
        library/XenForo/Model/Forum.php
        library/XenForo/Model/Category.php
        library/XenForo/Helper/String.php
        library/XenForo/Model/Session.php
        library/XenForo/ControllerResponse/View.php
        library/XenForo/ControllerResponse/Abstract.php
        library/XenForo/ViewRenderer/HtmlPublic.php
        library/XenForo/ViewRenderer/Abstract.php
        library/XenForo/Template/Public.php
        library/XenForo/Template/Abstract.php
        library/XenForo/ViewPublic/Forum/List.php
        library/XenForo/ViewPublic/Base.php
        library/XenForo/View.php
        library/XenForo/ViewPublic/Helper/Node.php
        library/XenForo/Route/Prefix/Members.php
        library/XenForo/Route/Prefix/Categories.php
        library/XenForo/Route/Prefix/Forums.php
        library/XenForo/Route/Prefix/Posts.php
        library/XenForo/Helper/Criteria.php
        library/XenForo/Debug.php
        library/XenForo/ViewRenderer/Json.php
    
     
  13. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Вот с моего тестового сервера:
    Код:
    Page Time: 0.0600s
    Memory: 4.5542 MB (Peak: 5.4586 MB)
    Queries (18, time: 0.0049s, 8.1%)
    
    Из чего я могу сделать вывод, что Ваш сервер какой-то слабенький, видимо. Например, у меня 18 запросов в сравнении с 11-ю в 1.5 раза меньше времени занимают.
    Ну и это не самое страшное. Моя страница генерируется в 10 раз быстрее. Значит, Ваш php долго работает. Сложно сказать, из-за чего. Но вообще это не нормально. Я даже и не знаю, что посоветовать. Проблема явно в связке веб-сервер+php. MySQL скорее всего не причем.
     
  14. KolobOKs

    KolobOKs Активный пользователь

    Регистрация:
    12.12.10
    Сообщения:
    25
    Симпатии:
    2
    Версия XF:
    1.1.0 Final
    Может, показать какие-нибудь настройки? php.ini?
     
  15. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Честно говоря, даже и не знаю, что предположить, если и на локалхосте такое творится.
     
  16. SeM13

    SeM13 Создатель системы

    Регистрация:
    05.01.11
    Сообщения:
    747
    Симпатии:
    258
    Версия XF:
    1.1.3
    Нормал?:)
     
  17. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Пол секунды для сервера почти убийство. На обычной нагрузке он быстро начнет подтормаживать, что скажется на быстро растущей очереди запросов, так как все запросы будут не в состоянии отработать. Естественно, это приведет к быстрому расходу памяти. Ну и как результат, при очень большом количестве запросов (ну, к примеру, кучка поисковых ботов будет шариться по форуму) сервер может получить аналог DOS (отказ в обслуживании). Но для локального сервера это может быть вполне нормальным, ведь он не должен обслуживать сотни запросов в секунду.
     
    SeM13 нравится это.
  18. exarh

    exarh Местный

    Регистрация:
    05.11.10
    Сообщения:
    361
    Симпатии:
    76
    Версия XF:
    1.1.3
    Раз уж все кажут....
    у меня связка Хенпортала с Форумам . Стоит все на ВПС от ФастВПС
     
  19. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    я догадываюсь что это проблема ксенпорты, но все равно много.
    На впс на главной форума (не портала) при среднем количестве узлов должно быть не больше 0.2сек, при небольшом количестве узлов не больше 0.1сек
    Обязательно должен быть включенный опкод кеш + варкеш, шаблоны в файлах + кеширование сессий
     
    exarh нравится это.
  20. SeM13

    SeM13 Создатель системы

    Регистрация:
    05.01.11
    Сообщения:
    747
    Симпатии:
    258
    Версия XF:
    1.1.3
    Мм, добавлю что разделов у меня 334 штуки.
    Модули: чат, блог, альбом, состояние души, день рождения ну и еще по мелочи.
     

Поделиться этой страницей