Когда я отправляю данные из приложения c # (Windows server) на страницу PHP, которая работает на другом сервере (Ubuntu), используя метод POST,
я публикую минимум 1000 запросов в секунду на страницу PHP,
Приложение c # является многопоточным приложением, которое после получения данных отправляет данные на страницу php.
когда я постоянно публикую данные, я получаю ошибка при превышении времени ожидания в приложении c # после перезапуска приложения оно работает в течение нескольких часов.
[Примечание: из-за того, что php требуется время для завершения задачи, поэтому новый запрос ожидает, он создает очередь, и его время ожидания превышает 2 минуты, и я получаю ошибку тайм-аута].
Оба наших сервера используют максимум 50% использования процессора и оперативной памяти
я проверяю как код C #, так и код PHP, оба работают нормально, нет проблем или ошибок
и я проверяю на конфигурации MySQL также хорошо, но я не знаю о конфигурации Apache.
Конфигурация Apache установлена по умолчанию
то, что я думаю, может быть, я должен настроить Apache или PHP для обработки 1000 запросов в секунду, я не знаю точно, потому что тот же код работает нормально, пока клиент не запросит
выросла.
заранее спасибо дружище 🙂
Я думаю, что вы можете столкнуться с проблемой исчерпания порта TCP. Если вы выполняете много последовательных вызовов на другой сервер и не управляете соединениями TCP должным образом, ваша ОС не будет немедленно освобождать соединение TCP-порта, созданное для исходящего вызова, и назначит дополнительные ресурсы ОС для следующего вызова. Я думаю, что время выпуска TCP-порта по умолчанию может достигать 2 минут.
Увидеть Как предотвратить истощение сокетов / портов? для дальнейших деталей. Чтобы быть уверенным, нам нужно увидеть ваш код C #, чтобы увидеть, как вы освобождаете ресурс, который вы используете при создании вызова WebClient.
Если это проблема исчерпания порта, то вам придется управлять своими исходящими вызовами на сервер PHP, используя вручную созданный пул экземпляров WebClient — даже освобождение WebClient может не сразу освободить ресурсы ОС, которые использовались WebClient.
спасибо за добрый ответ, братан,
это был вопрос конфигурации на сервере Ubuntu я не включил быстрый CGI теперь все работает нормально