背景:基础环境:centos8+kubeadm1.20.5+cilium+hubble环境搭建,traefik对外提供服务:Kubernetes1.20.5腾讯云下安装traefik的实践。运行了几个基本的php服务。基础镜像构建参考https://github.com/richarvey/nginx-php-fpm。然后php报错:Allowedmemorysizeof134217728bytesexhausted(triedtoallocate6291488bytes)暂时需要调整一个参数。我不想重新镜像。怎么了?一、问题回顾与解决:1、找出导致错误的配置项。首先分析错误:Allowedmemorysizeof134217728bytesexhausted(triedtoallocate6291488bytes)仔细看看上面的数字。限制应为128M。php运行的脚本需要使用134M资源吗?首先进入容器,看看这个可能是哪个参数:php-i最初,参数memory_limit限制128M2。深入理解配置项参数设置及含义仔细解读参数memory_limit:一个PHP工作进程是php-fpm可以使用的最大内存?那么:两人的感情不是一蹴而就的吗?参考:https://docs.rackspace.com/support/how-to/php-memory-limit/暂时不用担心。不管怎样,让我们??先了解一下:防止写得不好的脚本耗尽服务器上的所有可用内存?查看dockerfile后,start.sh启动脚本中参数设置为128M:那么现在要修改start.sh脚本吗?或者我可以设置一些环境变量吗?尝试修改yaml文件,重新部署服务,验证如下:ok生效。环境变量的优先级是否大于启动脚本中的变量?我能理解吗?复习:如何为参数memory_limit设置合适的范围?我觉得我设置的参数256M稍微大一点。将此参数设置为较大值后如何控制并发线程....我的资源不足吗?导致各种崩溃?首先扩展我容器的内存。其实我还是觉得php脚本写得太烂了,吃内存。。。算是比较简单的服务了。能吃到这么多内存也是神了。只能让他们自己找问题,优化脚本。主要是我觉得好学好用。如果可以使用变量,尽量使用变量进行各种配置。避免复制基础镜像。
