有关使用 Compute Engine 的一般提示

本页面介绍了在您遇到 Compute Engine 使用问题时可能有帮助的提示。

如需有关排查特定问题的帮助,请参阅以下某个部分:

查看不同的响应格式

gcloud 命令行工具通过发出 REST API 调用来执行其大部分操作。格式整齐的结果仅显示任何特定命令返回的最重要的信息。如需查看不同的响应格式,请使用 --format 标志,从而以不同的输出格式(包括 jsonyamltext)显示响应。例如,如需查看 JSON 格式的实例列表,请使用 --format json

gcloud compute instances list --format json

查看 gcloud compute 日志

gcloud 工具在一个位于 $HOME/.config/gcloud/logs 的日志文件中创建并存储日志,您可以查询该日志文件。如需查看基于 Linux 的操作系统上的最新日志文件,请运行以下命令:

$ less $(find ~/.config/gcloud/logs | sort | tail -n 1)

日志文件包含有关使用 gcloud compute 工具发出的所有请求和响应的信息。

选择资源名称

为资源选择名称时,请注意这些易记名称可能会显示在 Compute Engine 中的支持和操作信息中心。 因此,建议使用不会透露任何敏感信息的资源名称。

在实例和互联网之间通信

只有具有外部 IP 地址的实例才可以直接访问互联网。具有外部 IP 的实例可以随时启动与互联网的连接。它还可以接收连接,但前提是防火墙规则已配置为允许访问。您可以向 default VPC 网络添加自定义防火墙,也可以添加具有自定义防火墙的新网络。此外,您可以在 VPC 网络环境中设置网络代理,以便从没有外部 IP 地址的实例提供代理访问权限。

请注意,空闲连接最多跟踪 10 分钟,之后,其流量受到防火墙规则的约束,包括隐式拒绝入站规则。如果实例启动或接受与外部主机的长期有效连接,您应将 Compute Engine 实例上的TCP keep-alive 设置调整为小于 600 秒,以确保在发生超时之前刷新连接。以下示例将 keep-alive 设置为一分钟(60 秒)。 请注意,在 Linux 系统上运行的应用需要在 TCP 连接上明确设置 SO_KEEPALIVE 套接字选项,以便启用 TCP keep-alive(另请参阅 Linux TCP Keepalive HOWTO)。

Compute Engine 实例或 Linux 客户端


运行以下命令:

$ sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5
要确保设置在重新启动后继续有效,请将设置添加到 /etc/sysctl.conf 文件中。

Mac OSX 客户端


运行以下命令:

$ sudo sysctl -w net.inet.tcp.always_keepalive=1 net.inet.tcp.keepidle=60000 net.inet.tcp.keepinit=60000 net.inet.tcp.keepintvl=60000

Windows 客户端


在注册表路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ 下,使用 DWORD 数据类型添加以下设置;如果这些设置已存在,请修改相应的值:

KeepAliveInterval: 1000
KeepAliveTime: 60000
TcpMaxDataRetransmissions: 10

以其他 SSH 用户身份访问 Compute Engine

默认情况下,gcloud compute 命令行工具使用 $USER 变量将用户添加到 /etc/passwd 文件,以便使用 SSH 连接到虚拟机实例。运行 gcloud compute ssh 命令时,您可以使用 --ssh-key-file PRIVATE_KEY_FILE 标志指定其他用户。例如:

gcloud compute ssh example-instance --ssh-key-file my-private-key-file

如需了解详情,请参阅 gcloud 参考文档

与串行控制台进行交互

您可以启用对实例串行控制台的交互式访问权限,以便通过串行控制台连接实例并排查实例问题。

如需了解详情,请参阅与串行控制台进行交互

避免从自定义映像构建的实例的数据包碎片化

对于 Linux 映像和 Windows Server 映像,VPC 网络的最大传输单元 (MTU) 为 1460 字节。Compute Engine 提供的操作系统映像配置有适当的 MTU,因此,如果您使用其中一个映像,则无需采取任何措施。对于自定义映像,请将自定义 Linux 映像和 Windows Server 映像的 MTU 设置为 1460,避免由碎片化引起的延迟时间和数据包开销增加。

创建通过 UDP 套接字与 Compute Engine 实例通信的客户端应用时,请确保发送的载荷不超过 1432 个字节的上限,以避免碎片化。

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档