小编Vic*_*nov的帖子

如何在Amazon EC2上使用自动扩展设置ElasticSearch集群?

关于在Amazon EC2上配置ES的ec2有一个很棒的教程弹性搜索.我研究了它并应用了所有建议.

现在我有了AMI,可以从这个AMI在集群中运行任意数量的节点.配置自动发现,节点按照实际应该加入群集.

问题是如何配置集群,我可以根据集群负载自动启动/终止节点?

例如,当我们没有任何负载且12个节点在峰值负载上运行时,我希望只有1个节点在运行.但是等等,如果我终止集群中的11个节点,那么分片和副本会发生什么?如果我终止12个节点中的11个节点,如何确保我不会丢失群集中的任何数据?

我可能想为此配置S3网关.但是除了本地之外的所有网关都被弃用了.

手册中有一篇关于分片分配的文章.可能是我遗漏了一些非常基本的东西但是我应该承认我没有弄清楚是否可以配置一个节点来始终保存所有分片副本.我的目标是确保如果这是集群中唯一运行的节点,我们仍然不会丢失任何数据.

我现在能想到的唯一解决方案是配置索引以包含12个分片和12个副本.然后,当最多启动12个节点时,每个节点都会有每个分片的副本.但是我不喜欢这个解决方案,因为如果我想在峰值负载上有超过12个节点,我将不得不重新配置集群.

elasticsearch

25
推荐指数
2
解决办法
2万
查看次数

用PHP理解Apache上的"408 Request Timeout"

问题描述 - Apache日志

我在Apache日志文件中找到了与此类似的项目:

166.147.68.243 [24/Feb/2013:06:06:25 -0500] 19 web-site.com "-" 408 - "-"
Run Code Online (Sandbox Code Playgroud)

我有自定义日志格式,408这里代表状态.日志格式为:

LogFormat "%h %t %D %V \"%r\" %>s %b \"%{User-agent}i\"" detailed
Run Code Online (Sandbox Code Playgroud)

通常日志文件中的行看起来像

184.73.232.108 [26/Feb/2013:08:38:16 -0500] 30677 www.site.com "GET /api/search... HTTP/1.1" 200 205 "Zend_Http_Client"
Run Code Online (Sandbox Code Playgroud)

这就是为什么408错误行对我来说很奇怪.没有记录请求,我不知道应该优化什么.

问题

如何解决这个问题?我应该收集哪些其他信息或日志?什么可能导致这个问题?这是服务器上的错误吗?或者这绝对是一个网络连接问题?

我正在解决这个问题,因为我们的客户抱怨他的手机上有408错误.我在日志文件中发现了很多记录,但我不得不承认我不知道如何处理这个问题.


我自己的研究

这里有几个关于这个问题的问题.但人们更加具体.就像他们讨论某些特定客户端软件和脚本的问题一样.这里我在iPhone上打开一些页面时遇到错误.

例如,在HTTP,408请求超时中,建议在POST之前执行GET请求.如果我有自定义客户端,我可以这样做.但我无法控制用户浏览器的行为.

猜猜#1

在搜索互联网并思考问题时,我发现了https://serverfault.com/questions/383290/too-many-408-error-codes-in-access-log

建议是将Timeoutconfig参数更新回其默认值.

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300
Run Code Online (Sandbox Code Playgroud)

我首先尝试了30的值,因为我认为30秒就足够了.但即使有300秒的默认值,我仍然会在日志中得到错误.tail -f当我写这篇文章时,我做了几分钟后得到了超过10行.

对我来说,这看起来并不完整.

php apache2 http-error http-status-code-408

14
推荐指数
2
解决办法
4万
查看次数

如何使用Amazon PHP SDK 2获取EC2实例列表?

如何使用AWS SDK for PHP 2获取与某些过滤器匹配的Amazon EC2实例列表?

php amazon-ec2

14
推荐指数
1
解决办法
1万
查看次数

如何在Ubuntu上安装PHP pthreads扩展?

我想在Ubuntu上安装'pthreads'PHP扩展.我正在使用Ubuntu 12.04.1 LTS.我可以根据需要升级.我真的不想从源代码编译任何东西.例如,从源代码重新编译PHP听起来像是一个可怕的想法.

在我看来,最好的选择是使用aptitude命令安装此扩展.例如喜欢aptitude install php5-mysql.另一个好主意是使用pecl pecl install pthreads.但由于以下错误,对我不起作用:

检查是否检查ZTS ... configure:错误:pthreads需要ZTS,请在启用ZTS的情况下重新编译PHP

让我解释为什么我不喜欢从源代码重新编译PHP的想法:

  • 我想我应该卸载原始PHP包然后和所有依赖项.因为如果我通过标准PHP编译它,那么任何包更新都会覆盖我的更改.是的,另一种选择是防止PHP更新.无论如何,这引入了一些额外的工作,使设置更复杂.我们在分布式团队中工作.我不希望其他人在生产服务器上处理这种复杂的设置.
  • 我想在服务器上安装更新.我不想因为安全修复等而重新编译PHP.
  • 我不想在生产服务器上编译任何东西并多次这样做.然后我应该建立自己的包并用新版本等更新它们.抱歉,但我不够聪明,不能这样做.可能在2 - 3年但现在不是.因为这里要记住很多事情.例如,如何在满足所有依赖项的同时用自定义包替换标准PHP包.

一些参考:

这篇文章似乎很旧而不实际.我会保留它仅供参考.我想它应该被解读为"3年前PHP不是线程安全的".

php ubuntu pthreads ubuntu-12.04

9
推荐指数
2
解决办法
2万
查看次数

rsyslog性能优化

如何设置rsyslog以获得最佳性能?

  • 我们可以允许一些项目在服务器崩溃时丢失或者丢失.
  • 我们要将日志保存到MySQL DB.
  • 我们希望能够每秒处理至少100次日志写入,延迟时间为0.001 - 0.005秒.
  • 我们正在从PHP应用程序中编写日志.

谢谢你的帮助.

php mysql performance logging rsyslog

2
推荐指数
1
解决办法
3557
查看次数