Ответы пользователя по тегу PHP
  • Как избавиться от SIGBUS при работе php-fpm?

    multifinger
    @multifinger Автор вопроса
    Нашел решение, по крайней мере производительность выросла и SIGBUS больше вообще не встречается.

    Во первых:
    #/etc/php5/fpm/pool.d/www.conf
    pm.max_children = 80 << 2000Mb (total_fpm_memory) / 25Mb (one fpm process memory usage)
    pm.max_spare_servers = 20
    pm.max_requests = 200
    

    Это в целом улучшает стабильность, параметры расчитываются индивидуально
    в этом же файле временно можно включить и посмотреть медленные запросы:

    #slowlog = /var/log/php-fpm-slow.log
    #request_slowlog_timeout = 5s
    #listen.backlog = -1
    


    Далее:
    #/etc/php5/conf.d/apc.ini
    [APC]
    extension = apc.so
    apc.enabled = 1
    apc.shm_segments = 1
    apc.shm_size = 256
    apc.optimization = 0
    apc.num_files_hint = 10000
    apc.user_entries_hint = 10000
    apc.ttl = 0
    apc.user_ttl = 0
    apc.gc_ttl = 600
    apc.cache_by_default = 1
    apc.filters = "apc\.php$"
    apc.slam_defense = 0
    apc.use_request_time = 1
    apc.mmap_file_mask = /tmp/apc.XXXXXX
    apc.file_update_protection = 2
    apc.enable_cli = 0
    apc.max_file_size = 5M
    <b>apc.stat = 0</b>
    apc.write_lock = 1
    apc.report_autofilter = 0
    apc.include_once_override = 0
    apc.rfc1867 = 0
    apc.rfc1867_prefix = "upload_"
    apc.rfc1867_name = "APC_UPLOAD_PROGRESS"
    apc.rfc1867_freq = 0
    apc.localcache = 1
    apc.localcache.size = 512
    apc.coredump_unmap = 0
    apc.stat_ctime = 0
    


    Тут на самом деле ключевой была только настройка apc.stat = 0, остальное можно выкинуть

    Собственно именно добавление apc.stat = 0 позволило устранить SIGBUS ошибку, теперь в логах только уведомления о том что дочерние процессы перезапускаются (из-за pm.max_request)
    Ответ написан
    Комментировать
  • Подскажите PHP-фреймворк с наибольшим количеством готовых сторонних модулей

    multifinger
    @multifinger
    меня уже год радует symfony1.4
    а в netbeans есть даже встроенная поддержка этого фреймворка, также на ней написана CMF Diem (diem-project.org) у нее приятный админский интерфейс, разработка нового модуля сводиться к прописыванию yml-schema базы данных и верстке, управление, связи, админ-интерфейс — все генериться… вот такая штука, еще знаю многие yii практикуют успешно
    Ответ написан
    Комментировать