我的网站最大的问题是全天有 4 个备份时段,其中负载不可避免地会超过 50。
我正在使用 nice 和 ionice 来尝试减少影响,但效果有限。
因为我在备份完成后立即将备份复制到 S3 存储桶,然后删除文件,所以我想知道是否可以创建基于内存的磁盘?
我通常有 25GB 的可用内存(我超出了规格),我未压缩的 db 是 17GB,我的压缩是 6GB。我使用 xtrabackup 流并压缩。
如果流是内存而不是磁盘,我认为这会减轻整个系统的大量负载。
这看起来可行吗?
编辑 1类似 tmpfs 的东西。https://en.wikipedia.org/wiki/Tmpfs
尝试在 Amazon EKS 上设置 HorizontalPodAutoscaler 时,TARGETS 列始终显示<unknown>/50%,在描述 HPA 时,我看到
警告 FailedGetResourceMetric 17s(x50 over 1h)horizontal-pod-autoscaler 无法获取资源 cpu 的指标:无法从资源指标 API 获取指标:服务器找不到请求的资源(获取 pods.metrics.k8s.io)
我在其他网站上发现了多篇关于提到--horizontal-pod-autoscaler-use-rest-clients在 kube-controller-manager 上使用的类似问题的帖子,但我找不到更改 EKS 集群的 kube-controller-manager 设置的方法,因为看起来你不能SSH 到主节点进行管理和 kube-controller-manager 不会被列为系统中任何地方的资源。
我尝试按照https://github.com/kubernetes-incubator/metrics-server 上的说明手动设置指标服务器,但在这种情况下,我发现 EKS 没有提供验证 API 所需的配置映射扩展Could not create the API server: configmaps "extension-apiserver-authentication" not found
Windows 10 现在包含内置的 sshd 服务器。这意味着我应该能够访问位于 Windows 计算机上的 git 存储库
git clone ssh://myid@mywinmachine/myrepos/repo1.git
Run Code Online (Sandbox Code Playgroud)
但是,上面的方法不起作用。我正进入(状态
fatal: ''/myrepos/repo1.git'' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
我认为问题是,mywinmachine 上的 git 存储库的目录位置存在混乱。
我不知道如何解决这个问题。我的 git 存储库位于 mywinmachine 上的 c:\myrepos\repo1.git (它实际上在另一个位置,但我创建了一个连接)。(我还尝试在 c:\users\myid\myrepos 处建立符号链接(连接点)——也没有帮助。)
当我执行 ssh myid@mywinmachine 时,一切正常。我登录正常,并且被放入 c:\users\myid 机器(进入 cmd 提示符)。
我在 mywinmachine 上设置了 Git Windows,这样就可以从任何命令提示符访问任何 git 命令。因此,在 mywinmachine 上,如果我输入: git --version,我会得到正确的响应
myid@mywinmachine C:\Users\myid>git --version
git version …Run Code Online (Sandbox Code Playgroud) 我在没有关闭实例的情况下启动了AWS EC21TB中承载750GB数据的卷的快照。当我在 10 小时后注意到时,它给出了完成状态,进度 100%。我可以看到开始时间。但是如何知道快照的确切完成时间呢?
我成功使用了xfs项目(或目录)配额。但是我刚刚发现一旦不再需要配额信息就无法删除它。例如,我有3个项目,项目id为1、2、3。我删除了id为2的项目的目录,现在xfs_quota继续告诉我有一个id为2的项目,并且它有配额。报告的已用空间为 0,这是正确的,因为目录已被删除。这不是一个真正的问题。每当我重用项目 id 2 时,我都会设置新的配额,但我仍然想从文件系统中删除这些无用的信息。
/etc/项目
1:/web/perso/usera
3:/web/perso/userc
Run Code Online (Sandbox Code Playgroud)
/etc/projid
usera:1
userc:3
Run Code Online (Sandbox Code Playgroud)
这是 xfs_quota 报告的内容。
root@server # xfs_quota -xc "report -a -p -h"
Project quota on /web (/dev/vdb1)
Blocks
Project ID Used Soft Hard Warn/Grace
---------- ---------------------------------
#0 588.3M 0 0 00 [------]
usera 5.5M 14G 14G 00 [------]
#2 0 980M 1G 00 [------]
userc 574.6M 14G 14G 00 [------]
Run Code Online (Sandbox Code Playgroud)
我如何告诉 xfs 它不再需要跟踪项目 id 2 ?
大约每周一次,OOM-killer 会在我的服务器中关闭一个 postgres 进程,尽管“免费”状态它有足够的可用内存。
我在这里和那里阅读了几个线程,但看不到任何真正的解释。难道真的是因为服务器现在已经掉呢?它是(Ubuntu)内核错误吗?
并且先发制人,是的,也许我会添加交换。但是就没有其他的解决办法了吗?或者至少解释一下?:)
服务器:物理戴尔 内存:64GB RAM 和 0 Swap uname:Linux 服务器名称 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux Postgres 版本:9.5.10(8GB 共享内存) vm.overcommit_memory = 0
free -m在最后一次杀戮之前的输出
可用的免费共享 buff/缓存总数 电话:64312 2666 450 8699 61196 52126 交换:0 0 0
上次杀死的内核日志
6 月 19 日 21:29:49 服务器名称内核:[17009377.877956] bash 调用 oom-killer:gfp_mask=0x26000c0,order=2,oom_score_adj=0 6 月 19 日 21:29:49 服务器名称内核:[17009377.877959] bash cpuset=/ mems_allowed=0-1 6 月 19 日 21:29:49 服务器名称内核:[17009377.877964] CPU:23 PID:61771 通讯:bash 未受污染 4.4.0-62-generic #83-Ubuntu …
我通常使用 S3 上的前端单页应用程序和服务器上的后端 API 来开发我的应用程序,通常是弹性 beantalk(所以 ELB + EC2)。我对将什么放在我的 ELB 和 S3 前面的好选择感到困惑 - 主要是 CloudFront 或 API 网关。我现在的主要需求是缓存和性能(减少服务器负载)。当然成本也会是奖金。就我而言,流量通常仅限于一个地区/国家(新加坡)。
所以假设我想保留一个域,我想我肯定会需要 CloudFront?因此 CloudFront 将有 2 个来源 S3 和 ELB。S3 源可以配置长缓存 TTL 和 ELB 较短的缓存,只是为了处理峰值。这是一个好主意吗?
但是如果某些 API,尤其是列表 API 不应该被缓存呢?如果我将 TTL 设置为 0,它不会缓存,但我的理解是它更慢?如何最好地处理这些?
也就是说,我什么时候使用 API 网关?假设我不需要所有 SDK 的东西并且我当前的系统仍在 ELB/EC2 上。在我的情况下,它似乎只是一个代理和缓存系统,就像 cloudfront 一样?
我组织中的其他人使用 AWS 上的 Kops 完成了 Kubernetes 的初始设置,因此我们已经有了 S3 存储桶配置和正在运行的集群。
我的本地环境KOPS_STATE_STORE指向之前设置的 S3 存储桶。该CLUSTER_NAMEENV设置为:[name].k8s.local因为它是一个基于八卦集群。
我正在尝试在本地设置 kops 和 kubectl 以使用这个预制集群。我设置了 AWS 凭证,当我运行时,kops get cluster我看到sitenamecom.k8s.local aws us-west-1a.
当我这样做时kubectl config get-clusters,kubectl config get-contexts它除了空白列外不打印任何内容。
当我这样做kops validate cluster时说:root.go:227] no context set in kubecfg --name is required
我已经在 Ubuntu 18.04 和 Apache 2.4.29 上安装了 Fail2Ban v0.10.2,并在 IP 被阻止时启用了标准的 ssh 和 apache jails 以提供电子邮件通知警告的基本保护。
查看文档,我找不到可以帮助解决以下情况的相关过滤器:
我想禁止命中服务器并由于虚假 URL 请求而产生大量 404 错误的 IP,这可能是典型的垃圾邮件机器人行为。所以理想情况下,一个 IP 被阻止,连续产生三个以上的 404 错误,官方搜索引擎爬虫有一些例外。
这种情况有默认的正则表达式吗?
我将不胜感激您对如何实现这一点的帮助。
如果我有一个 GAE Flex 应用程序,它仅供内部使用而不打算用于任何面向公众的用途,那么保护它的最佳方法是什么?默认情况下,*.appspot.com 域公开一个公共 HTTP/S 端点。
如果我将默认 App Engine 防火墙规则设置为明确拒绝所有 HTTP 流量,那么我如何从其他 GCE 实例或其他项目中的其他 GAE Flex 应用程序访问应用程序?
我最初认为编辑app.yaml文件以将实例启动到具有自己的 GCE 防火墙规则(使用默认入口拒绝)的私有 VPC 就足够了,但由于请求通过云负载均衡器 IP 的事实,它仍然允许外部流量.
我查看的下一个选项是 Cloud IAP,它只允许经过身份验证的用户和服务帐户访问我的应用程序。这可能会起作用,但是,如果我需要从没有互联网访问权限的私有 VPC 访问我的应用程序,如果我正确理解该服务将无法工作,因为请求仍然必须通过 HTTP 来。
那么我能做些什么来确保绝对没有对应用引擎的公开访问,同时仍然允许内部资源访问它?
kubernetes ×2
memory ×2
amazon-ec2 ×1
apache-2.4 ×1
fail2ban ×1
firewall ×1
git ×1
iptables ×1
linux ×1
oom ×1
postgresql ×1
quota ×1
snapshot ×1
ssh ×1
tmpfs ×1
ubuntu ×1
windows ×1
xfs ×1