Я запускал небольшую базу данных (MySQL) с самодельной «CMS» на окнах, и меня попросили перенести ее на законный сервер (MS SQL Server) и лучшую CMS. Я занимался разработкой CMS в Drupal 8 против базы данных MySQL.
Теперь я начинаю устанавливать все на SQL Server, и это ОЧЕНЬ медленно. Я использовал Apache2.4 и PHP7.1, но использовал поточно-ориентированную версию PHP7. Должен ли я использовать версию, не ориентированную на многопоточность? В руководстве «Drupal для Windows» предлагались определенные настройки для realpath и opcache:
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
realpath_cache_size=5M
realpath_cache_ttl=1800
Одна часть инструкций, которым я следовал, заключалась в установке wincache. Однако wincache доступен только для небезопасного PHP. Мне удалось обойти это, закомментировав две строки кода, которые вызывали функции wincache, и Drupal установился, но довольно медленно. Будет ли отсутствие wincache источником моей проблемы с производительностью?
Я загрузил небезопасный для потоков PHP7, mod_fcgid для Apache и wincache. У меня все работает, но все равно медленно. Есть ли идеальный способ взаимодействия Apache с SQL Server? Когда я говорю «медленно», я имею в виду, что установка модуля drupal вставляет одну запись в секунду. Моя установка MySQL выполняла 4000 записей за пару секунд. в конечном итоге он умрет с ошибкой:
[fcgid: warn] [pid 2668: tid 940] (OS 109) Канал был завершен. : [client :: 1: 56937] mod_fcgid: получить ошибку результата перекрытия,
Сервер Mysql находился на том же портативном компьютере, что и сервер Apache, в то время как этот сервер SQL Server находится на расстоянии половины штата.