Yog*_*shR 2 linux ubuntu loopback ipv4 amazon-web-services
我有一个 AWS EC2 虚拟机。我想在同一台机器上托管的 PostgreSQL 服务器上运行一堆脚本。当我在脚本中使用服务器的 IP 地址时,每个脚本花费了将近 5 秒。但是当我使用环回地址而不是服务器 IP 时,每个脚本几乎不需要 1 秒。
可能是什么问题?
我在不同的服务器上执行了相同的活动,脚本在 IP 和环回地址上花费的时间几乎相同。
默认情况下,当在服务器本身上配置该 IP 地址时,从系统本身到服务器的(公共)IP 地址的 Linux 流量将不会进入实际的 NIC 或通过线路传输。
默认情况下,Linux 使用单个网络堆栈,并且与所有配置的 ip 地址之间的通信将在 Linux 内核的网络堆栈中的内存中,即使源和目标 ip 地址与不同的 NIC 相关联。
因此,与该 IP 地址通信时的网络速度应与环回接口相同,并且仅受系统速度的限制,而不是网络上行链路的线速(并且通常会超过该上行链路的带宽)。
当这些速度存在显着差异时,会想到该默认行为的一些显着例外:
服务器的公共 ip 地址(或您使用的任何 DNS 名称解析为)不是该系统的配置 ip 地址。
与ip addr.
ip rule list.ip netns list 我对 Postgres 并不太熟悉,但通常你可以通过使用套接字连接而不是使用本地主机或外部 IP 地址来获得除了 TCP/IP 连接之外还支持unix 域套接字的服务的最佳性能。消除在 IP 数据包中成帧数据的开销。
因此,与其使用外部 IP 地址或 localhost 127.0.0.1 地址,不如启用并连接到 Postgresql 套接字。
| 归档时间: |
|
| 查看次数: |
1186 次 |
| 最近记录: |