AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-151221

Philipp Claßen's questions

Martin Hope
Philipp Claßen
Asked: 2020-05-26 06:14:03 +0800 CST

为 Ubuntu 20.04 EC2 实例打开所需的传出端口(除了 TCP 80/443)

  • 0

我正在强化在默认 Ubuntu 20.04 AMI 上运行的 EC2 实例的安全组。关闭除 TCP 80 和 TCP 443 之外的所有传出端口后,哪些系统服务会中断?(我假设应用程序所需的所有端口也都是打开的。我担心的是破坏操作系统提供的隐式服务。)

我的理解是,允许 TCP 80/443 对于基本的操作系统服务就足够了。例如,apt-get更新应该有效。还是我错过了 Ubuntu 或 AWS 一直希望开放的端口?


旁注:我想知道时间同步是如何工作的。默认情况下,我看不到默认 Ubuntu AMI 上预安装的任何 NTP 或 chrony 服务。否则,UDP 端口 123 也应该打开。我的假设是 VM 提供的(来宾)硬件时钟已经由主机(由 AWS 操作)同步。除此之外,我想不出从操作系统的角度来看需要允许的任何端口。

根据应用程序将使用的 AWS 服务,需要更多端口,例如 ElastiCache (Redis) 需要 6379。然而,我担心并非源自已部署应用程序的 API 调用。您可以假设应用程序的要求是已知的。环境(操作系统和 EC2 基础设施)的要求更加棘手。

ubuntu amazon-web-services security-groups
  • 2 个回答
  • 827 Views
Martin Hope
Philipp Claßen
Asked: 2019-06-18 14:47:17 +0800 CST

是否存在应该在 Redis 5(使用 Jemalloc 分配器)中禁用 activedefrag 的情况?

  • 0

Redis 4 添加了主动内存碎片整理(来源:发行说明):

主动内存碎片整理。如果使用 Jemalloc 分配器(Linux 上的默认设置),Redis 能够在联机时对内存进行碎片整理。对于分配器无法将碎片保持足够低的工作负载很有用,因此唯一的可能性是 Redis 和分配器协作以对内存进行碎片整理。

在 Redis 5 中,该功能(现在称为版本 2)得到了改进:

来源 1:来自 Redis 主要开发者 Salvatore Sanfilippo 的推文

主动碎片整理版本 2。对正在运行的服务器的内存进行碎片整理是黑魔法,但 Oran Agra 改进了他过去的努力,现在它比以前效果更好。对于倾向于分散 Jemalloc 的长时间运行的工作负载非常有用。

资料来源 2:AWS 发布 Redis 5

上一版本的亮点之一是 Redis 获得了在线时对内存进行碎片整理的能力。它的工作方式非常巧妙:Redis 扫描键空间,并且对于每个指针,询问分配器是否将其移动到新地址有助于减少碎片。此版本附带所谓的主动碎片整理 2:它更快、更智能且延迟更低。此功能对于分配器无法将碎片保持足够低的工作负载特别有用,因此该策略是 Redis 和分配器共同协作。为此,必须使用 Jemalloc 分配器。幸运的是,它是 Linux 上的默认分配器。

问题:假设您已经在使用 Jemalloc,是否有任何理由不总是设置activedefrag yes?

鉴于替代方法是重新启动实例以处理碎片(这是非常有问题的),并且鉴于我目前看到的 activedefrag 的开销似乎相当低,该选项似乎太有用了,默认情况下禁用。

或者在任何情况下它会损害性能?

redis
  • 1 个回答
  • 1561 Views
Martin Hope
Philipp Claßen
Asked: 2017-09-23 04:06:08 +0800 CST

是否建议在 systemd 中设置 OOMScoreAdjust=1000 以获得可替换服务?

  • 7

systemd 有一个OOMScoreAdjust选项,允许调整启动进程的 oom-killer 分数。

引用systemd 文档:

OOMScoreAdjust=

为执行的进程设置内存不足杀手的调整级别。取一个介于 -1000(禁用此进程的 OOM 终止)和 1000(使此进程在内存压力下很可能终止)之间的整数。有关详细信息,请参见proc.txt。

在我的设置中,我在 AWS 上部署了一个 NodeJs 服务器。除了节点服务器之外,EC2 实例上没有运行其他任何东西(除了监控和基本的操作系统进程)。有 ELB 健康检查,最终应该会替换损坏的 EC2 实例。

不过,我想知道如果存在内存问题,增加内核是否更喜欢杀死 Node 服务器进程是否被认为是一种好习惯OOMScoreAdjust,因为它可以自动重新启动。在 systemd 中,它可能如下所示:

OOMScoreAdjust=1000
Restart=always

我不得不承认我的理解是有限的。我目前的理解是,它很可能不会产生真正的影响,最好保留默认值:

  • 如果内存耗尽的进程是节点服务器,它很可能无论如何都会被杀死。
  • 如果罪魁祸首是另一个进程,重新启动节点服务器将无济于事,ELB 健康检查最终应该负责替换实例。

不过,我很好奇是否有更好理解的人已经考虑过了。启用它只是 systemd 脚本中的一行。如果有疑问,我宁愿让内核杀死 Node 进程而不是任何随机系统服务。

amazon-web-services
  • 1 个回答
  • 9415 Views
Martin Hope
Philipp Claßen
Asked: 2017-08-13 13:50:15 +0800 CST

EC2 Auto-Scaling:配置目标跟踪策略以首选 Spot 实例

  • 4

亚马逊最近为 EC2 Auto Scaling 引入了目标跟踪策略。

在我的生产服务中,我使用两个单独的自动扩展组来支持混合自动扩展,同时混合使用 Spot 和 On-Demand 实例。我想要的是我的 CPU 使用率不应该超过 70%,它应该尽可能使用 Spot 实例,但如果有必要则回退到按需实例。

首先,我将两个 Auto-Scaling 组(Spot 和 On-Demand)设置为使用 Target Tracking 来实现 70% 的 CPU 负载,并将两个组的最小大小设置为一个。我的服务的流量是可以预测的(没有突然增加,白天流量更多,晚上流量很少)。

有一次,有两个 On-Demand 和两个 Spot 实例正在运行。由于五台服务器的 CPU 负载变得非常低(大约 35%),系统刚刚缩减了规模。使用四台服务器时,CPU 负载上升,几分钟后短暂超过 70%(可能当时的流量增长非常小)。

系统保守地决定再次扩展,但由于两个自动扩展组同时独立做出决定,因此启动了两个实例(一个 Spot 实例和一个 On-Demand 实例)。此时,现在有六台服务器在运行。过了一会儿,它再次缩小,最终达到了运行四个实例的设置。

为了避免这种影响,我现在将设置更改如下:

  • 按需:目标 70% 的 CPU 使用率,最少一台服务器
  • 现货:目标 65% CPU 使用率,最少一台服务器

我的假设是它应该有助于防止我描述的那种情况。我希望按需组比 Spot 组更早地缩减规模(无论如何,这是可取的,因为它们的成本更高)。而且我希望 Spot 实例能够更快地扩展,这应该可以防止按需组进行不必要的扩展。

这是我的期望,但我没有在文档中找到太多细节来确认它。有人可以详细说明新的目​​标跟踪扩展如何工作,以及如何将其应用于具有 Spot 和 On-Demand 实例的混合设置吗?

问题:

  • 如果我将目标设置为 70% CPU 利用率,它什么时候决定扩大规模,什么时候缩小规模?
  • 如果我有两个 Auto-Scaling 组,一个的 CPU 利用率目标为 70%,另一个为 65%,它什么时候决定扩大或缩小?它会一直倾向于缩小 70% 的群体吗?它总是更喜欢扩大 65% 的群体吗?
  • 如果现货市场的价格突然上涨超过我的出价限制,会发生什么情况。按需自动扩展组会接管吗?
  • 我的理解是否正确,手动定义所需实例的数量只会产生短期影响,并且会由 Auto Scaling 策略自动调整?
  • 例如,如果它在夜间缩小到最小值并在第二天再次放大,是否意味着前一天的初始“所需实例数”设置现在已过时?换句话说,我是否只需要担心为最小值和最大值设置合理的值,而 AWS 会解决剩下的问题吗?
amazon-ec2
  • 1 个回答
  • 482 Views
Martin Hope
Philipp Claßen
Asked: 2017-05-10 06:27:54 +0800 CST

获取 Auto Scaling 组中 EC2 实例的公有 IP 有哪些要求?

  • 0

我的目标是启动一些应该由自动扩展组管理的 EC2 实例。所有实例都应具有公共 IP。

在我的测试中,我注意到根据 AWS 账户的配置,这并不总是可行的。在我可以使用的测试帐户中,某些区域具有默认 VPC。在那些地区,我能够获得公共 IP。

在其他地区,我们没有配置默认 VPC。在这种情况下,我的理解是无法获得公共 IP。那是对的吗?

此外,AWS 文档提到了术语ClassicLink。据我了解,该概念仅适用于旧帐户。它还允许拥有公共 IP,但前提是配置了设置了“ClassicLink”标志的 VPC。(在我的帐户中并非如此,因此我无法对其进行测试。)

在夏天,我想问一下我的理解是否正确。如果至少满足以下条件之一,您是否只能在自动扩展组中拥有 EC2 实例的公共 IP:

  1. 在区域内,存在一个默认 VPC
  2. 您有一个旧账户(支持 EC2-Classic),并且在该区域中至少存在一个启用 ClassicLink 的 VPC

(请注意,我不能使用 ELB,因为实例并不相同。如果 ELB 对请求进行洗牌,它会混淆系统,因为发送者需要控制哪个实例将处理请求。)

amazon-ec2
  • 1 个回答
  • 1171 Views
Martin Hope
Philipp Claßen
Asked: 2013-08-17 01:05:59 +0800 CST

在 Windows 上保持 ssh 连接打开?

  • 5

我知道在 Unix 系统上,您可以保持 ssh 连接打开。

第 1 步:创建 ssh 配置,例如:

 Host <some.host.name>
 ControlPath ~/.ssh/master-%r@%h:%p
 ControlPersist yes

第 2 步:使用参数启动 ssh -M。

在 Windows 下是否有类似的东西可以重用 ssh 连接?也许我看错了地方,但我没有找到关于这个主题的任何好的链接。

(我在 MingGW 环境中尝试了我的方法(使用 MingGW 的 ssh 客户端)。在真正的 Unix 系统中,它应该在 中创建了一个特殊的套接字文件~/.ssh,但 MingGW 似乎不支持该功能。)

windows
  • 3 个回答
  • 4243 Views
Martin Hope
Philipp Claßen
Asked: 2013-05-31 08:14:42 +0800 CST

对 CentOS 6.4 的依赖破坏:可以安装 nodejs 但不能安装 npm

  • 2

我正在使用带有 EPEL 存储库的全新安装的 CentOS 6.4 (x86-64)。

$ yum install nodejs
...
$ node -v
v0.10.5

到目前为止一切顺利,但是当我尝试安装时npm,我会收到以下错误消息:

$ yum install npm
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: ftp.halifax.rwth-aachen.de
 * epel: mirror.fraunhofer.de
 * extras: centos.psw.net
 * updates: centos.psw.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package npm.noarch 0:1.2.17-5.el6 will be installed
--> Processing Dependency: npm(which) < 2 for package: npm-1.2.17-5.el6.noarch
--> Processing Dependency: npm(uid-number) < 1 for package: npm-1.2.17-5.el6.noarch
--> Processing Dependency: npm(tar) < 0.2 for package: npm-1.2.17-5.el6.noarch
--> Processing Dependency: npm(slide) < 2 for package: npm-1.2.17-5.el6.noarch
--> Processing Dependency: npm(semver) < 1.2 for package: npm-1.2.17-5.el6.noarch
...
(skipped)
...
--> Finished Dependency Resolution
Error: Package: nodejs-npmlog-0.0.2-4.el6.noarch (epel)
           Requires: npm(ansi) < 0.2
Error: Package: npm-1.2.17-5.el6.noarch (epel)
           Requires: npm(ansi) < 0.2
Error: Package: nodejs-npmlog-0.0.2-4.el6.noarch (epel)
           Requires: npm(ansi) >= 0.1.2
Error: Package: npm-1.2.17-5.el6.noarch (epel)
           Requires: npm(ansi) >= 0.1.2
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

完整的输出相当大: http ://pastebin.com/raw.php?i=Ce3ZJsEB

我应该怎么办?--skip-broken解决方法似乎不是正确的解决方案。

这是输出yum repolist:

Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
 * base: centos.copahost.com
 * epel: mirror.fraunhofer.de
 * extras: ftp-stud.fht-esslingen.de
 * updates: centos.copahost.com
 repo id       repo name                                            status
 base          CentOS-6 - Base                                      6,381
 epel          Extra Packages for Enterprise Linux 6 - x86_64       8,909
 extras        CentOS-6 - Extras                                       12
 updates       CentOS-6 - Updates                                     727
 repolist: 16,029
centos
  • 1 个回答
  • 3978 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve