Высокий дисковый ввод-вывод, когда кэш используется?

Если сгенерированный SQL работает, когда Вы скопировать/вставить он, я очень испытал бы желание сказать, что это - проблема с Вашим кодом.

У меня есть подобный класс DB, который вставляет запись в таблицу журнала, если ошибка SQL происходит. Я когда-то изменил стандартную программу, и она сделала что-то подобное, к которому Вы описываете, потому что она генерировала ошибку SQL, которая вызвала функцию, которая генерировала ошибку SQL, которая вызвала функцию.... Вы получаете идею :)

Что делает Ваш $this->db->query($sql); функция делает? На могло бы стоить надеяться видеть, делает ли это что-то подобное, или просто делает прямое mysql_query

9
задан 13 April 2017 в 15:14
2 ответа

Если вы используете отображение памяти с файловой поддержкой (например, apc.mmap_file_mask = / tmp / apc.XXXXXX ), вы можете увидеть повышенный уровень ввода-вывода.

Попробуйте установить apc.mmap_file_mask , чтобы использовать совместно используемую память (например, /apc.shm.XXXXXX ) или / dev / zero (анонимная MMAP-память) . Если оставить этот параметр undefined, по умолчанию используется анонимная память mmapped.

Обычно файлы с расширением mmapped - отличная вещь:

  • По сравнению с хранением чего-либо полностью в памяти, файлы с расширением mmapped обычно требуют меньше памяти
  • По сравнению с сохранением чего-либо в файл, файлы с расширением mmapped требуют меньше операций ввода-вывода на диск (поскольку записи могут быть агрегированы вместе).

Однако, по сравнению с хранением чего-либо исключительно в памяти, они влекут за собой дополнительные операции ввода-вывода - в значительной степени, когда файл постоянно изменяется. Обратной стороной отказа от использования файлов mmapped является отсутствие постоянства - ваш кеш не выдержит перезапуска, поскольку он хранится только в памяти.

Таким образом, можно предположить, что пока кеш заполнялся и стабилизировался, он подвергался самое большое изменение, которое приходилось постоянно записывать на диск; как только кэш был заполнен, ttl для каждого объекта замедлял скорость передачи данных в кэше, уменьшая изменения и уменьшая количество операций записи на диск.

10
ответ дан 2 December 2019 в 22:28

Через несколько дней я хочу вернуться с некоторыми графиками. Изменение значительно улучшает эту ситуацию. Это сокращает все, кроме времени обслуживания ввода-вывода (я думаю, это потому, что больше нет простого чтения небольшого файла PHP, что является дешевым).

enter image description here enter image description here enter image description here enter image description here

Нагрузка на сервер (она уже была довольно низкой, поэтому я не обнаружил изменения).

enter image description here

4
ответ дан 2 December 2019 в 22:28

Теги

Похожие вопросы