我正在尝试在VPS上设置一个Web服务器。 我的问题是,即使网站没有收到任何stream量,php-cgi进程的内存使用量也随着时间增加。 (暂时在防火墙后面) VPS有360MB RAM。 我使用的是Debian Lenny 32bit及其lighttpd和php5-cgi软件包。 除了一些configuration更改(下面列出),我正在使用Debian的股票设置。 该网站基于Drupal。 使用Drupal的开发模块,我可以看出PHP脚本的内存使用量平均小于20KB,并且从不超过8MB。 以下是ps aux输出的相关部分: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND www-data 29871 0.0 1.7 54552 6368 ? Ss Aug12 0:00 /usr/bin/php-cgi www-data 29873 0.0 7.4 65808 27468 ? S Aug12 0:00 /usr/bin/php-cgi www-data 29874 0.0 3.7 55808 13736 ? S Aug12 […]
我的CentOSnetworking节点(LAMP堆栈)正在经历高CPU使用率,但内存使用率低。 几乎所有的进程都是apache。 我知道我可以添加额外的networking节点,直到我的CPU使用变得合理,但我想有一些快速调整技巧,可以在这里很长的路要走。 CPU在90-100%之间反弹。 Mysql的反弹在5%到45%之间。 其余的由Apache完成。 最佳: top – 21:15:49 up 46 days, 20:39, 4 users, load average: 34.17, 44.62, 51.03 Tasks: 133 total, 32 running, 101 sleeping, 0 stopped, 0 zombie Cpu(s): 90.4%us, 9.6%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.1%st Mem: 8388608k total, 6116448k used, 2272160k free, 84160k buffers Swap: 16777208k total, 68k used, […]
可以使用特定位置的速率限制来限制速度。 但是,我们如何dynamic地做到这一点呢? 假设您已经付费与非付费用户,并且您希望为付费用户提供更高的带宽。 我们需要dynamic检查数据库,并为这个特定的用户群提供一定的速度。 你有任何nginx模块?
作为LAMP框的系统pipe理员,我被要求将PHP / html表单的上传容量提高到70 MB左右。 我相信服务器可以处理它,因为它有两个四核和4个内存。 我也没有任何昂贵的带宽限制。 所以,由于标准php.ini中的限制通常是2MB,我想知道在更改upload_max_filesize和post_max_size之前是否还有其他问题需要考虑,或者我可以安全地使用它吗? 感谢任何提示!
我正在寻找如何发展我们的服务器设置的资源。 我们目前在英国有一个Rackspace专用服务器,规格如下: HPDL385_G2_PrevGen 惠普单核双核皓龙2214(2.2Ghz) 4GB内存 RAID 1中有两个10,000个SCSI驱动器 我们的stream量每月高达550,000 UVs。 该网站运行一个PHP和MySQL的设置。 数据库得到一个绝对的锤击,我们有许多复杂的查询joinmultilpe表。 我们正在使用APC进行PHPcaching。 我已经到了我已经完成尽可能多的DB和查询优化的阶段,并且想知道下一步应该是什么…… 我已经看了memcache,但我有一个印象,他需要大量的内存,理想情况下专用的盒子…. 下一步有两个盒子。 一个用于数据库,一个用于Apache? 还是有一个我忽略了一步。 我们的负荷通常在2分左右,但现在是20点! 来自Munin的一些图表:
我一直在玩docker和docker写作,并有一个问题。 目前我的docker-compose.yml如下所示: app: image: myname/php-app volumes: – /var/www environment: <SYMFONY_ENVIRONMENT>: dev web: image: myname/nginx ports: – 80 links: – app volumes_from: – app 应用程序包含端口9000上的php-fpm和我的应用程序代码。 Web是带有几个configuration的nginx。 这个函数我期望它然而为了连接nginx到php-fpm我有这样的一行: fastcgi_pass app:9000; 我怎样才能有效地扩大这个? 例如,如果我想让一个nginx容器运行,但运行三个应用程序容器,那么我肯定会有三个php-fpm实例都试图在端口9000上进行监听。 我怎样才能有不同的端口上的每个php-fpm实例,但在任何给定的时间仍然知道他们在我的nginxconfiguration? 我采取了错误的做法? 谢谢!
我们在专用服务器上经常遇到与networking有关的奇怪问题。 它在具有16 GB RAM和Intel 82575EBnetworking适配器的Xeon E5620上运行Windows Server 2012 R2 x64。 请注意,我们已经将HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters键值TcpTimedWaitDelay和MaxUserPort分别调整为30和65530。 在随机的时间点,我们的网站停止响应,原因是他们无法连接到本地数据库。 当这个问题开始发生的时间大概是2个星期的正常运行时间。 系统日志开始获取TCPIP警告4227和4231.It声明“从全局TCP端口空间分配临时端口号的请求失败,因为所有这些端口正在使用中”。 如果我跑 Get-Counter -Counter \TCPv4\* 要么 Get-Counter -Counter \TCPv6\* 要么 netstat -abn | find /c ":" 我总是得到500-1500个连接的合理值,甚至没有接近65K的限制。 此外,“本地主机”停止parsing为:: 1本地,恢复到127.0.0.1 只有强制重启机器才能解决问题。 它可能是一个networking适配器的问题? 更新1 它再次发生,似乎已经解决了,当我重新启动邮件服务器。 奇怪的是,所有的计数器都显示~500个连接,当前正在激活~500个,并且在尝试连接到与邮件服务器无关的数据库时仍然出现10055套接字错误。 更新2这是奇怪的,但邮件服务每天重新启动修复问题完全。
我最初发布这个在https://stackoverflow.com/questions/9665189/php-on-command-line-displays-out-of-memory,但被build议在此发布。 当脚本中的内存不足时,这不是正常的致命错误,因为它不会提供文件名,行号或使用的内存量。 它只是说,当我尝试在命令行上运行php时,无论是传递一个脚本还是只运行一个php,都会出现“内存不足”。 即使试图运行一个不存在的脚本也会提供相同的信息。 换句话说,我得到这个: dan@server [~]# php Out of memory dan@server [~]# php test.php Out of memory dan@server [~]# php doesntexist.php Out of memory dan@server [~]# php -v Out of memory 但是,通过Apache的PHP工作绝对好。 只是在CLI上,我得到这个错误。 有问题的机器正在运行CentOS版本5.7(最终),它是64位和PHP 5.3.10。 这是一个专用的服务器。 我已经尝试运行ulimit -a丹作为build议,这是输出: core file size (blocks, -c) 200000 data seg size (kbytes, -d) 200000 scheduling priority (-e) 0 […]
我有一个负载均衡器后面的Web服务器。 我需要添加一个条件redirect到我的.htaccess为了显示一个维护页面,每当我们把网站离线维护。 这部分很简单: RewriteEngine on RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC] RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] RewriteRule .* /maintenance.php [R=302,L] 不过,我想补充一个条件,如果访问者的IP地址是我自己的,它不会将我redirect到维护页面,我将能够看到和testing站点,就好像它在线。 这部分通常也是直截了当的: RewriteEngine on RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111 RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC] RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] RewriteRule .* /maintenance.php [R=302,L] 但是,由于我的Web服务器位于负载平衡器的后面,因此REMOTE_ADDR将parsing为Load Balance服务器的内部IP地址。 我怎样才能改变这个查找转发的IP地址? 我知道在PHP中可以使用$_SERVER['HTTP_X_FORWARDED_FOR']来获得转发的IP地址。 我已经在.htaccess尝试了一些东西,但没有运气: %{X_FORWARDED_FOR} %{HTTP:X_FORWARDED_FOR} %{HTTP_X_FORWARDED_FOR} 解 我有以下工作: %{HTTP:X-FORWARDED-FOR}
我前端使用nginx作为“代理caching”和后端Apache,我已经把我的PHP设置如下: error_log = /var/www/site1/php_error.log error_reporting = 22527 file_uploads = On log_errors = On max_execution_time = 0 max_file_uploads = 20 max_input_time = -1 memory_limit = 512M post_max_size = 0 upload_max_filesize = 1000M 有什么问题? 上传less于1MB的文件是成功的,但是比Chrome浏览器输出的更多: Error 101 (net::ERR_CONNECTION_RESET): The connection was reset. 我已经检查了错误日志文件,但是它不存在于目录中。 我也检查/var/log/httpd/error_log但没有上传相关的问题。 我不知道有什么可能导致这个问题,所以我伸出援助之手。 谢谢!