Недостаток использования постоянных соединений? - PullRequest
0 голосов
/ 21 июля 2009

В прошлом я слышал, что постоянные соединения не подходят для использования на веб-сервере с высоким трафиком. Это правда или это относится только к режиму prefork в apache? Будет ли в CGI-режиме такая проблема?

Это касается PHP, Apache и Postgresql.

Ответы [ 2 ]

2 голосов
/ 21 июля 2009

Являются ли постоянные соединения PHP плохими? - в контексте PHP и MySQL .

Причиной использования постоянных соединений, конечно же, является сокращение количества соединений, которые довольно дороги, хотя они намного быстрее с MySQL, чем с большинством других баз данных.

Первая проблема с постоянными соединениями ...

Если вы устанавливаете тысячи соединений в секунду, вы обычно не открываете их долгое время, а операционная система это делает. В соответствии с протоколом TCP / IP, порты нельзя перерабатывать мгновенно, и им приходится тратить некоторое время на этапе «FIN», ожидая, пока они не будут переработаны.

Вторая проблема ... использование слишком большого количества подключений к серверу MySQL.

Некоторые люди просто не понимают, что вы можете увеличить переменную max_connections и получить более 100 одновременных соединений с MySQL, другие были побиты старыми проблемами Linux из-за невозможности иметь более 1024 соединений с MySQL. *

Теперь поговорим о том, почему постоянные соединения были отключены в расширении mysqli. Даже если вы могли неправильно использовать постоянные соединения и получить низкую производительность, это не было причиной. Настоящая причина в том, что с этим может быть гораздо больше проблем.

Постоянные соединения были добавлены в PHP во времена MySQL 3.22 / 3.23, когда MySQL был достаточно прост, чтобы вы могли легко перезапускать соединения без каких-либо проблем. В более поздних версиях возникли проблемы: если вы перезапускаете соединение с незафиксированными транзакциями, вы сталкиваетесь с проблемами. Если вам случится перезапустить соединения с пользовательскими настройками набора символов, у вас снова возникнут проблемы, не говоря уже о возможном изменении переменных в сеансе.

0 голосов
/ 21 июля 2009

Одной из проблем использования постоянных соединений является то, что они не очень хорошо масштабируются. Если у вас подключено 5000 человек, вам нужно 5000 постоянных подключений. Если вы устраните необходимость в постоянстве, вы сможете обслуживать 10000 человек с одинаковым количеством соединений, потому что они могут совместно использовать эти соединения, когда они их не используют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...