我目前正在使用LAMP堆栈(超过Centos 6.5)为我们的网站,我想尝试从“networking服务器”分离mySQL。
到目前为止,我正在使用DigitalOcean的四核CPU和8GB内存的VPS。
昨天我创build了一个新的DigitalOcean VPS用于单一临时环境(目前),具有以下规格和使用情况:
min/avg/max/mdev = 0.352/0.481/0.662/0.073 ms bind-address=XXXX (私有networking的内部IP地址) Web服务器正在运行一个Drupal站点,并安装了APCu,opCACHE和memcached。
当用Chrome浏览器查看加载时间时,网站似乎在0.5-1.5秒内加载速度较慢。 不幸的是NewReliccertificate我是正确的(见附件截图)
由于这是我第一次configuration远程mySQL服务器,我想知道这是我错过了什么? 任何可能提高性能的configuration或调整?
我不确定为什么你会感到惊讶,因为你的MySQL服务器分配的RAM较less,而把它放在另一台机器上会增加networking接口的负载。
你应该监视你的networking活动,看看是否会造成任何瓶颈。
根据您的SQL查询和PHP脚本,可能会有更好的方式来优化这些任务的查询性能,并改进将结果发送回PHP以减lessnetworking负载。
我会推荐几件事情:
validation网站是否正在使用Memcached / APC /操作码caching。
我会build议Memcached DB查询caching。 使用mysqltuner.pl对Mysqlconfiguration进行一些调整
优化memcached apcconfiguration
基于Debian / Ubuntu的操作系统中的Memcachedconfiguration文件位置:
/etc/memcached.conf
基于CentOS / RHEL的操作系统中的Memcachedconfiguration文件:
的/ etc / SYSCONFIG /分布式caching
可以在php.ini中插入Apcconfiguration。
遵循这些步骤肯定会提高性能。
并使用NewRelic APM来揭示有关在哪里花费时间的数据。
如果networking是一个问题,我想没有什么可以做的。
让我知道。
谢谢,
的Shahriar
我设法解决了这个问题,而且我认为我经历的方式可能对别人有帮助。
ping , mtr和traceroute检查服务器之间的延迟,以确定问题是否与延迟有关 top (或htop )和free -m检查服务器的负载和空闲RAM SHOW PROFILE iptraf和我们的第三方监测服务),但也有一些其他的select,如@ Julie Pelletierbuild议 使用远程mySQL服务器时可提高性能
使用memcached,APCu和Opcodecaching(虽然所有这些已经安装在我们的案例 – 这些都是游戏转换器..)
最后但并非最不重要的 – 使用SSH隧道,而不是直接连接到mySQL服务器(似乎它在整个页面加载时间节省大约200毫秒)
希望阅读这个答案会节省你超过0.5到1.5秒:)