繁体   English   中英

Google Cloud Run 最多只能同时处理 100 个请求

[英]Google Cloud Run can only handle 100 request maximum concurrently

因此,我的开发团队试图从 GCE 迁移到 GCR,并且我们已经成功地使用 github 操作部署了 Cloud Run 服务和 CI/CD。 但是我们遇到了一个问题,就是 Cloud Run 服务可以同时处理的请求量不超过 100 个请求。 所以我们应用程序的基本框架是 php/codeigniter,我们使用的 web 服务器是 apache2 网络服务器,连同 sql 服务器作为我们已经包含在 dockerfile 中的数据库

FROM php:7.4.22-apache
USER root
RUN apt-get update && apt-get upgrade -y
RUN apt-get update && apt-get install -y gnupg2
RUN apt-get install libcurl4-openssl-dev
RUN apt-get install zlib1g-dev
RUN apt-get install libpng-dev -y
RUN docker-php-ext-install curl
RUN docker-php-ext-install gd
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update
RUN apt-get install wget
RUN wget http://ftp.de.debian.org/debian/pool/main/g/glibc/multiarch-support_2.28-10+deb10u1_amd64.deb

RUN dpkg -i multiarch-support_2.28-10+deb10u1_amd64.deb
RUN apt-get install -y libodbc1
RUN apt-get install -y unixodbc-dev
RUN pecl install sqlsrv
RUN pecl install pdo_sqlsrv 
RUN echo "extension=pdo_sqlsrv.so" >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.:\s||"`/30-pdo_sqlsrv.ini
RUN echo "extension=sqlsrv.so" >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.:\s||"`/30-sqlsrv.ini

RUN rm multiarch-support_2.28-10+deb10u1_amd64.deb
# RUN ACCEPT_EULA=Y apt-get -y install mssql-tools
RUN ACCEPT_EULA=Y apt-get install msodbcsql17
COPY 000-default.conf /etc/apache2/sites-available/000-default.conf
COPY apache2.conf /etc/apache2/apache2.conf
COPY openssl.cnf /etc/ssl/openssl.cnf
COPY php.ini /etc/php/7.4/apache2/php.ini
RUN a2enmod rewrite
RUN  /etc/init.d/apache2 restart

这是我们使用的 dockerfile

FROM jamesjones/test-base:latest
USER root
COPY . /var/www/html
RUN cd /var/www/html
RUN chown -R www-data:www-data /var/www/html

COPY v1/application/config/config.prod.php /var/www/html/v1/application/config/config.php
COPY v1/application/config/database.prod.php /var/www/html/v1/application/config/database.php
COPY v1/application/config/routes.prod.php /var/www/html/v1/application/config/routes.php
COPY v2/application/config/config.prod.php /var/www/html/v2/application/config/config.php
COPY v2/application/config/database.prod.php /var/www/html/v2/application/config/database.php
COPY v2/application/config/routes.prod.php /var/www/html/v2/application/config/routes.php
COPY .htaccess.prod /var/www/html/.htaccess

VOLUME /var/www/html

我已经尝试了这些步骤,看来问题仍然存在https://cloud.google.com/blog/topics/developers-practitioners/3-ways-optimize-cloud-run-response-times

这是我们的云运行规范gcr规格

我还尝试将自动缩放中的最小实例数增加到 10,但似乎没有区别。

这个问题还有其他选择吗?

事实证明问题出在 vpc 连接器上,因为我们的数据库是使用 tcp/ip 连接的,我们必须将公共 ip 列入白名单才能安全访问它,这就是我们使用 vpc 的原因,所以我们使用 mikrotik 进行绑定我们的 ip 而不是使用 vpc 连接器。 gcr 服务最终可以处理 10000 个请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM