sandyMan
Guest
как подсчитать количество connections к Постгресу?
Здравсвуйте!
Я занимаюсь созданием одного биологического проекта в вебе. Есть база данных по протеинам более 100G.
запросы дикие - приходится перелопачивать всю базу.
трафик не очень большой и всё нормально. но как за дело берутся краулеры Гугл или другого поисковика кричи караул! Они заходят по линкам на динамические страницы, открывают тысячи соединений к постгресу, и через некоторое время от просто затыкается. приходится убивать все процессы и порой делать рестарт системе.
хочу сделать некий счётчик открытых соединений.
Например, есть текстовый файл с цифрой 0 для начала. И если при каждом открытии коннекшена открывать этот файл и делать инкрементацию к этой цифре, а при каждом закрытии соединения, после pg_close(), снова открывать файл и уменьшать на еденицу значение.
При этом всякий раз перед открытием нового соединения проверяется это значение. Например, если открыто 500 соединений выдавать страницу, мол народ приходите позже.
Всё вроде просто, но может есть какая-то встроеная функция делающая это? Или что другое поумнее?
Здравсвуйте!
Я занимаюсь созданием одного биологического проекта в вебе. Есть база данных по протеинам более 100G.
запросы дикие - приходится перелопачивать всю базу.
трафик не очень большой и всё нормально. но как за дело берутся краулеры Гугл или другого поисковика кричи караул! Они заходят по линкам на динамические страницы, открывают тысячи соединений к постгресу, и через некоторое время от просто затыкается. приходится убивать все процессы и порой делать рестарт системе.
хочу сделать некий счётчик открытых соединений.
Например, есть текстовый файл с цифрой 0 для начала. И если при каждом открытии коннекшена открывать этот файл и делать инкрементацию к этой цифре, а при каждом закрытии соединения, после pg_close(), снова открывать файл и уменьшать на еденицу значение.
При этом всякий раз перед открытием нового соединения проверяется это значение. Например, если открыто 500 соединений выдавать страницу, мол народ приходите позже.
Всё вроде просто, но может есть какая-то встроеная функция делающая это? Или что другое поумнее?