我是linux容器的总菜鸟,并花了一些时间了解Docker,并原谅我的困惑想到了这个问题.目前,我通过capistrano部署生产的Rails应用程序.我的云服务器使用Debian Wheezy发行版上的Opscode Chef进行维护.对于开发,我有一个预先安装了应用程序和服务的Vagrant VM.
如果我使用Docker,我的应用程序会在哪里?容器还是主机?我将如何部署(生产)和共享目录(开发)?我可以使用docker在同一台服务器上运行所有其他服务,即memcache,redis,postgresql等吗?我可以想象Docker的潜力,但却难以看到它的实际用途.
似乎容器是未来的一部分.对于从虚拟化转换的人的任何指导?
我正在使用一个全新的厨师服务器(不是企业),并且运行chef-client大约每5次运行中就会抛出403禁止错误.有人知道为什么会这样吗?
chef-server 11.0.12 通过getchef.com/chef/installchef-client 11.12.4 通过rubygemruby 2.1.2Debian Wheezy 7.5错误:
198.xx.xxx.xxx ================================================================================
198.xx.xxx.xxx Error executing action `create` on resource 'template[/var/www/mysite.com/shared/config/database.yml]'
198.xx.xxx.xxx ================================================================================
198.xx.xxx.xxx
198.xx.xxx.xxx Net::HTTPServerException
198.xx.xxx.xxx ------------------------
198.xx.xxx.xxx
198.xx.xxx.xxx 403 "Forbidden"
198.xx.xxx.xxx
198.xx.xxx.xxx
198.xx.xxx.xxx Resource Declaration:
198.xx.xxx.xxx
198.xx.xxx.xxx ---------------------
198.xx.xxx.xxx # In /var/chef/cache/cookbooks/rails/recipes/production.rb
198.xx.xxx.xxx
198.xx.xxx.xxx 40: template node[:rails][:app_root]+"/shared/config/database.yml" do
198.xx.xxx.xxx 41: owner "root"
198.xx.xxx.xxx 42: group "xx-dev"
198.xx.xxx.xxx 43: mode 0775
198.xx.xxx.xxx 44: end
198.xx.xxx.xxx 45:
198.xx.xxx.xxx
198.xx.xxx.xxx Compiled Resource:
198.xx.xxx.xxx
198.xx.xxx.xxx ------------------
198.xx.xxx.xxx
198.xx.xxx.xxx # Declared …Run Code Online (Sandbox Code Playgroud) 我在设置PostgreSQL hot_standby时遇到了麻烦.在运行pg_basebackup后尝试启动数据库时,我FATAL: could not receive data from WAL stream: ERROR: requested WAL segment 00000001000006440000008D has already been removed在postgresql.log中收到了.在IRC进行了简短的讨论后,我开始明白错误可能源于wal_keep_segments我的写密集型数据库的设置太低.
如果可能的话,我如何计算适当的设置wal_keep_segments?此设置的可接受值是多少?
我在做什么:
我找了一会儿找到这个答案,但没有运气.
情况:
我目前在我的生产环境中运行Postgresql.我准备扩展我的数据库并将其移动到一个大型服务器实例.我错误地设置了具有所有权限的postgres用户的初始数据库,我希望新数据库由我创建的自定义用户控制.即当前数据库的所有者是postgres,我想要新的数据库所有者pooper.
要转储,我正在运行:
pg_dump -d database_name > database_name.sql
要在单独的机器上恢复,我正在运行:
psql database_name < database_name.sql
如果用户是相同的,即两者都相同,postgres那么它将正常工作,但是当切换用户时,我的应用程序无法正确加载.疯狂是否有秘密?我没什么好看的.
我的系统:
只是在我自己的Openstreetmaps服务器上闲逛,遇到了几个问题.
1)我按照这些指令:http://wiki.openstreetmap.org/wiki/The_Rails_Port安装开放街道地图,我跟着一些其他指令:http://wiki.openstreetmap.org/wiki/Nominatim/Installation#Configure_for_use_with_Apache,以安装Nominatim.我是否真的需要安装或者Nominatim会为我安装openstreet地图吗?
2)我对绘图很新,有人可以解释openstreetmaps和Noimatim之间的区别吗?我将使用该服务进行地理定位,而不确定使用哪种服务.
干杯.
我的数据库非常受cpu限制,我找不到问题的根本原因.我目前有两个应用程序服务器,每个服务器都有一个通过ruby-pg gem连接到PostgreSQL的Rails api.两个应用程序服务器都有sidekiq运行后台作业,我有一些支持服务器通过sidekiq处理来自国家feed的新帖子.如果我的内存耗尽,解决方案似乎很简单.为什么我受CPU约束的任何一般想法?
数据库规格:
可能的问题:
该数据库有近10GB的索引.我要将我的数据库升级到PostgreSQL版本> = 9.2.在9.2版中,引入了仅索引扫描.
在postgresql.conf中,我将max connection设置为'500'.通常在一天中,只使用175个连接,但在高峰时段,sidekiq任务会将当前连接增加到350.建议与8GB服务器实例建立多少个连接?
当我在psql控制台中查看pg_stat_activity时,我看到sidekiq留下了很多IDLE连接.这些连接会导致CPU通胀吗?修复是否存在于api或sidekiq中?
也许没有错误.我可能只需要增加服务器实例.如果我受到记忆限制,这将更有意义.但是,app服务器和3个支持sidekiq服务器都是4gb性能层实例.实质上,与数据库交互的服务器组合了数据库资源的两倍以上.这甚至不重要吗?
其他问题:
我在Digital Ocean的8gb Ram/4 CPU/80gb SSD云服务器上测试PostgreSQL.我最初使用postgresql.conf中的默认设置运行PgBench,然后更改了一些常用设置 - shared_buffers,work_mem,maintenance_work_mem,effective_cache_size - 以反映8gb的RAM.在运行第二组测试后,我注意到我的一些结果实际上更糟.有关为什么会这样的任何建议?我对PgBench很新,并且总体上调整了PostgreSQL.
设置:
测试:
postgresql ×4
capistrano ×1
chef-infra ×1
debian ×1
docker ×1
geolocation ×1
nominatim ×1
pg ×1
postgis ×1
sidekiq ×1