• 关于 linux 测试数据库端口 的搜索结果

问题

云数据库 Redis 版公网连接的前提

云栖大讲堂 2019-12-01 21:19:45 1861 浏览量 回答数 0

问题

如何在云数据库 MongoDB 版中连接ECS Linux

云栖大讲堂 2019-12-01 21:22:32 1008 浏览量 回答数 0

问题

如何在云数据库 MongoDB集群版中连接ECS Linux

云栖大讲堂 2019-12-01 21:22:48 822 浏览量 回答数 0

海外云虚拟主机包年25元/月起

海外独享虚拟主机全面上线,助力构建海外网站,提升公司国际形象;全球有效覆盖,超高性价比;建站入门首选,助力出口,适合跨境贸易企业。

问题

navicate无法连接linux服务器中的数据库

1328327578254747 2019-12-01 19:02:08 215 浏览量 回答数 1

回答

四层负载均衡采用开源软件LVS(Linux Virtual Server)+ Keepalived的方式实现负载均衡,七层负载均衡由Tengine实现。 压力测试性能概述 四层监听经过LVS后直接到达后端服务器,而七层监听经过LVS后,还需要再经过Tengine,最后到达后端服务器。七层比四层多了一个处理环节,因此,七层性能没有四层性能好。 如果您使用七层监听进行压力测试,发现压测性能比较低。挂了两台ECS的七层负载均衡监听性能还不如挂了一台ECS的四层负载均衡监听性能,除了七层本身的性能比四层低外,以下情况也可能会造成七层压测性能低: 客户端端口不足 。 在进行压力测试时,客户端端口不足会导致建立连接失败。负载均衡会默认抹除TCP连接的timestamp属性,Linux协议栈的tw_reuse(time_wait 状态连接复用)无法生效,time_wait状态连接堆积导致客户端端口不足。 解决方法:客户端使用长连接代替短连接。使用RST报文断开连接,即socket设置SO_LINGER属性。 后端服务器accept队列满 。 后端服务器accept队列满,导致后端服务器不回复syn_ack报文,客户端超时。 解决方法:默认net.core.somaxconn的值为128,执行sysctl -w net.core.somaxconn=1024命令更改net.core.somaxconn的值,并重启后端服务器上的应用。 后端服务器连接过多。 由于架构设计的原因,使用七层负载均衡时,用户长连接经过Tengine后变成短连接,可能导致后端服务器连接过多,从而表现为压测性能低。 后端服务器依赖的应用成为瓶颈。 请求经过负载均衡到达后端服务器后,后端服务器本身负载正常,但由于所有的后端服务器上的应用又依赖其它应用,例如数据库,当数据库成为瓶颈时,也会引起性能降低。 后端服务器的健康检查状态异常。 在压测时,容易忽略后端服务器的健康检查状态,如果有后端服务器健康检查失败或者健康检查状态经常跳跃(好到坏,又从坏到好,反复变化),也会导致压测性能低。 压力测试建议 在进行压力测试时,请注意如下配置: 压测负载均衡转发能力建议使用短连接 。 一般来说压测除了验证会话保持和均衡性等功能外,主要想验证负载均衡的转发能力,因此使用短连接比较合适,用于测试负载均衡和后端服务器的处理能力。使用短连接测试时,需要注意客户端端口不足的问题。 压测负载均衡吞吐量建议使用长连接,用于测试带宽上限或特殊业务。 压测工具的超时时间建议设置为一个较小值,如5秒。超时时间太大的话,测试结果会体现在平均响应时间加长,不利于判断压测水位是否已到达。超时时间调小,测试结果会体现在成功率上,便于快速判断压测水位。 后端服务器提供一个静态网页用于压测,以避免应用逻辑带来的损耗。 压测时,监听配置建议如下: 不开启会话保持功能,否则压力会集中在个别后端服务器。 关闭健康检查功能,减少健康检查对后端服务器的访问请求。 性能测试服务的5000并发规格能够提供5个及5个以上的公网IP。 压力测试工具建议 不建议您使用Apache ab作为压力测试工具。 Apache ab在大量并发场景下存在3s、6s、9s阶梯式停顿的现象。Apache ab会通过判断content length来确定请求是否成功,而负载均衡挂载多台后端服务器时,返回的content length会不一致,导致测试结果有误。 建议使用阿里云PTS。 可以设置足够高的并发,PTS会分配来自全国各地的公网IP,压力来源足够分散,并且可以在PTS中集成云监控,实时查看端到端的全部性能数据。 使用PTS简单压测示例 创建一个负载均实例,添加两台ECS实例作为后端服务器,分别创建一个TCP监听和HTTP监听,后端端口设置为80。ECS服务器的配置为CPU 1核,内存512M使用CentOS 6.3 64位的操作系统。 安装Apache Web Server提供Web服务。 yum install -y httpd 初始化默认首页index.html。 echo "testvm" > /var/www/html/index.html 启动HTTP服务。 service httpd start 访问本地的80端口,确认Web服务可用。 curl localhost 在PTS中创建测试场景,开始压力测试。

保持可爱mmm 2020-03-29 11:52:22 0 浏览量 回答数 0

问题

MrDoc一个基于 Python 开发的在线文档系统

问问小秘 2020-05-29 14:42:57 5 浏览量 回答数 1

问题

安全组详解,新手必看教程

我的中国 2019-12-01 21:51:56 92179 浏览量 回答数 37

问题

性能测试:软件测试的重中之重

云效平台 2019-12-01 21:45:09 5839 浏览量 回答数 1

问题

如何进行压力测试

行者武松 2019-12-01 21:43:49 4402 浏览量 回答数 0

问题

阿里云ECS服务器(64位)快速安装WDCP面板及WDCP安全设置技巧

老蒋 2019-12-01 21:17:02 15952 浏览量 回答数 6

问题

数据库百问,教你快速上手数据库

yq传送门 2019-12-01 20:16:46 29208 浏览量 回答数 21

回答

本文主要介绍了Linux和Windows环境下常用的抓包工具以及抓包后提交工单的流程。 详细信息 阿里云提醒您: 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。 如果源服务器访问目标服务器时出现异常,您可以抓包获取最原始的交互数据,然后反馈至阿里云进行排查分析。在介绍常用的抓包工具以及如何抓包的详细信息前,请参考如下文档进行排查问题和分析问题。 能ping通但端口不通时端口可用性探测说明 丢包或不通时链路测试说明 Linux系统的ECS中没有禁PING却PING不通的解决方法 Linux环境中常用的抓包工具详细信息如下。 Linux环境中的抓包工具 Linux环境中通常使用TCPDump工具进行抓包和分析,TCPDump工具是所有Linux发行版本预装的数据包抓取和分析工具。有关TCPDump工具的获取和安装方法,请参考如下文档。 TCPDump 官方文档 关于TCPDump的用法,请参考如下。 tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ] [ -c count ] [ -C file_size ] [ -G rotate_seconds ] [ -F file ] [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ] [ --number ] [ -Q in|out|inout ] [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -E spi@ipaddr algo:secret,... ] [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ] [ --time-stamp-precision=tstamp_precision ] [ --immediate-mode ] [ --version ] [ expression ] 关于tcpdump命令的参数说明如下所示(区分大小写)。 -s:用于设置数据包抓取长度。如果-s为0,则表示自动选择合适的长度来抓取数据包。 -w:用于将抓包结果导出到文件,而不是在控制台进行分析和打印输出。 -i:用于指定需要监听的接口(网卡)。 -vvv:用于输出详细的交互数据。 expression:是一个正则表达式,用于过滤报文。主要包含如下几类。 指定类型的关键字:包括host(主机)、net(网络)和port(端口)。 指定传输方向的关键字:包括src(源)、dst(目标)、dst or src(源或目标)和dst and src(源和目标)。 指定协议的关键字:包括ICMP、IP、ARP、RARP、TCP和UDP等协议类型。 关于其他参数说明及用法请参考如下文档。 tcpdump 的 Manpage 关于tcpdump常见用法和示例输出的详细信息,请参考如下。 执行如下命令,抓取指定网卡指定端口的交互数据。 tcpdump -s 0 -i eth0 port 22 系统显示类似如下。 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 20:24:59.414951 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442372:442536, ack 53, win 141, length 164 20:24:59.415002 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442536:442700, ack 53, win 141, length 164 20:24:59.415052 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442700:442864, ack 53, win 141, length 164 20:24:59.415103 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442864:443028, ack 53, win 141, length 164 执行如下命令,抓取指定网卡发送给指定IP上指定端口的交互数据,并在控制台输出详细交互信息。 tcpdump -s 0 -i eth1 -vvv port 22 系统显示类似如下。 tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 20:24:20.991006 IP (tos 0x10, ttl 64, id 22747, offset 0, flags [DF], proto TCP (6), length 316) 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], cksum 0x2504 (incorrect -> 0x270d), seq 133624:133900, ack 1, win 141, length 276 20:24:20.991033 IP (tos 0x0, ttl 53, id 2348, offset 0, flags [DF], proto TCP (6), length 92) 42.xx.xx.107.43414 > 172.xx.xx.226.ssh: Flags [P.], cksum 0x4759 (correct), seq 1:53, ack 129036, win 15472, length 52 执行如下命令,抓取发送至指定IP的PING交互数据,并在控制台输出详细交互数据。 tcpdump -s 0 -i eth1 -vvv dst 223.xx.xx.5 and icmp 系统显示类似如下。 tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 20:26:00.368958 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 172.xx.xx.226 > public1.alidns.com: ICMP echo request, id 55097, seq 341, length 64 20:26:01.369996 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 172.xx.xx.226 > public1.alidns.com: ICMP echo request, id 55097, seq 342, length 64 20:26:02.371058 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 172.xx.xx.226 > public1.alidns.com: ICMP echo request, id 55097, seq 343, length 64 20:26:03.372181 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 172.xx.xx.226 > public1.alidns.com: ICMP echo request, id 55097, seq 344, length 64 执行如下命令,抓取系统内所有接口数据并保存到指定文件。 tcpdump -i any -s 0 -w test.cap 系统显示类似如下。 tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes Windows环境中常用的抓包工具详细信息如下。 Windows环境中的抓包工具 Windows环境中一般使用免费的较为流行的Wireshark开源工具进行抓包和分析。请参考Wireshark官方网站,获取并安装Wireshark工具,安装方法请参考Windows系统中Wireshark抓包工具的安装使用方法。 以下是Wireshark抓包的操作步骤。 安装并打开Wireshark工具。 单击 捕获 > 选项。 在 WireShark 捕获接口 界面中,根据接口名称或对应的IP地址选择需要进行抓包的网卡,然后单击 开始。 抓取足量数据包后,单击 捕获 > 停止。 单击 文件 > 保存,将抓包结果保存到指定文件。 更多有关Wireshark工具使用和数据分析方法,请参考其官方文档。 以下是抓包和提交工单流程的详细信息。 抓包并提交工单流程 出现异常时,您可以抓取数据包并发送给阿里云售后技术支持。抓包时请确保从源服务器和目标服务器同时并发操作,以便阿里云技术支持进行对比分析。具体操作步骤如下。 确认源服务器和目标服务器进行数据交互通过的网卡。 如果源服务器通过NAT共享方式访问公网,则访问淘宝IP地址库,获取本地网络对应的公网IP地址。 利用前文所述工具,从源服务器对目标服务器地址的目标端口进行抓包,或者进行完整抓包,然后保存抓包数据。 利用前文所述工具,从目标服务器对源服务器地址进行抓包,或者进行完整抓包,然后保存抓包数据。 创建工单并附上抓包数据文件,提交工单后,阿里云技术支持会排查问题并通过工单向您反馈结果。 适用于

1934890530796658 2020-03-25 23:47:27 0 浏览量 回答数 0

问题

阿里云在cenos下安装MongoDb

群主大王 2019-12-01 21:54:38 8153 浏览量 回答数 1

回答

我的两个程序都遇到了相同的问题。我的错误是这样的: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 我花了几天时间解决这个问题。我已经测试了不同网站中提到的许多方法,但是没有一种有效。最后,我更改了代码,找出了问题所在。我将尝试向您介绍不同的方法,并在此处进行总结。 当我在互联网上寻找该错误的解决方案时,我发现有许多解决方案至少对一个人有用,但其他人则说这不适用于他们! 为什么有很多方法可以解决此错误? 似乎通常在连接到服务器时出现此错误。可能是因为错误的查询字符串或与数据库的连接过多。 因此,我建议您一个接一个地尝试所有解决方案,不要放弃! 这是我在互联网上找到的解决方案,对于每个解决方案,至少都有人用该解决方案解决了他的问题。 提示:对于需要更改MySQL设置的解决方案,可以参考以下文件: Linux:/etc/mysql/my.cnf或/etc/my.cnf(取决于Linux发行版和使用的MySQL软件包) Windows:C:** ProgramData ** \ MySQL \ MySQL Server 5.6 \ my.ini(请注意,它是ProgramData,而不是Program Files) 以下是解决方案: 更改“绑定地址”属性 取消注释“绑定地址”属性或将其更改为以下IP之一: bind-address =“ 127.0.0.1” 要么 绑定地址=“ 0.0.0.0” 注释掉“跳过网络” 如果您的MySQL配置文件中有“跳过网络”行,请在该行的开头添加“#”符号使其成为注释。 更改“ wait_timeout”和“ interactive_timeout” 将这些行添加到MySQL配置文件中: wait_timeout = 数字 Interactive_timeout = 数字 connect_timeout = 数字 确保Java没有将'localhost'转换为[::: 1]而不是[127.0.0.1] 由于MySQL可以识别127.0.0.1(IPv4)但不能识别::: 1(IPv6) 可以通过使用以下两种方法之一来避免这种情况: 选项#1:在连接字符串中使用127.0.0.1代替localhost,以避免将localhost转换为::: 1 选项#2:使用选项-Djava.net.preferIPv4Stack = true运行Java,以强制Java使用IPv4而不是IPv6。在Linux上,也可以通过运行(或将其放在/ etc / profile中: export _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true" 检查操作系统代理设置,防火墙和防病毒程序 确保防火墙或防病毒软件没有阻止MySQL服务。 在Linux上暂时停止iptables。如果iptables配置错误,它们可能允许将tcp数据包发送到mysql端口,但阻止tcp数据包通过同一连接返回。 Redhat enterprise and CentOS systemctl stop iptables.service Other linux distros service iptables stop 在Windows上停止防病毒软件。 更改连接字符串 检查您的查询字符串。您的连接字符串应如下所示: dbName = "my_database"; dbUserName = "root"; dbPassword = ""; String connectionString = "jdbc:mysql://localhost/" + dbName + "?user=" + dbUserName + "&password=" + dbPassword + "&useUnicode=true&characterEncoding=UTF-8"; 确保您的字符串中没有空格。所有连接字符串应继续,且不包含任何空格字符。 尝试用回送地址127.0.0.1替换“ localhost”。也尝试将端口号添加到您的连接字符串中,例如: String connectionString = "jdbc:mysql://localhost:3306/my_database?user=root&password=Pass&useUnicode=true&characterEncoding=UTF-8"; 通常,MySQL的默认端口是3306。 不要忘记将用户名和密码更改为MySQL服务器的用户名和密码。 更新您的JDK驱动程序库文件 测试不同的JDK和JRE(例如JDK 6和7) 不要更改max_allowed_pa​​cket “ max_allowed_pa​​cket ”是MySQL配置文件中的一个变量,指示最大包大小,而不是最大包数。因此,这无助于解决此错误。 更改tomcat的安全性 将TOMCAT6_SECURITY =是更改为TOMCAT6_SECURITY =否 使用validationQuery属性 使用validationQuery =“ select now()”确保每个查询都有响应 自动重新连接 将此代码添加到您的连接字符串中: &autoReconnect=true&failOverReadOnly=false&maxReconnects=10 尽管这些解决方案都不适合我,但我建议您尝试一下。因为有些人按照以下步骤解决了他们的问题。 但是什么解决了我的问题? 我的问题是我在数据库上有很多SELECT。每次创建连接然后关闭它时。尽管我每次都关闭连接,但是系统面临许多连接,并给了我这个错误。我所做的是将连接变量定义为整个类的公共(或私有)变量,并在构造函数中对其进行了初始化。然后,每次我使用该连接时。它解决了我的问题,也大大提高了我的速度。 结论 没有简单独特的方法可以解决此问题。我建议您考虑自己的情况并选择上述解决方案。如果在程序开始时出现此错误,并且根本无法连接到数据库,则连接字符串可能有问题。但是,如果在与数据库进行多次成功交互之后出现此错误,则问题可能出在连接数上,您可能会考虑更改“ wait_timeout”和其他MySQL设置,或者重写您的代码以减少连接数。来源:stack overflow

保持可爱mmm 2020-05-08 10:55:29 0 浏览量 回答数 0

问题

wdcp使用说明/教程/问题集/FAQ汇总 『官网搬过来滴』

kideny 2019-12-01 21:26:36 18397 浏览量 回答数 6

问题

区块链私链搭建资料

leitgo 2019-12-01 21:29:05 2903 浏览量 回答数 0

问题

健康检查常见问题

行者武松 2019-12-01 21:43:15 3573 浏览量 回答数 0

回答

楼主您好, 您可以查看一下站点列表和 FTP用户列表, 看站点对应的文件目录,FTP用户的绑定目录,两者是不是相符的。 如果要简单些,如楼上所提到的,就是在wdCP里使用“创建整站”的功能,在创建站点时,同时设置FTP、数据库信息。请参考: http://www.wdlinux.cn/bbs/thread-2841-1-1.html ------------------------- 回 6楼(魔君) 的帖子 您好, 是不是域名还没有解析生效? 能否提供具体的站点访问网址? ------------------------- 回 14楼(魔君) 的帖子 您好, 从图中的域名解析知道,您的ECS公网IP地址是 120.24.19.191。 但从我这里测试,这个IP地址的80及wdCP面板的8080端口都不能访问。您确认您的ECS公网IP地址是 120.24.19.191 吗? 或您的wdCP面板登录地址是什么呢? ------------------------- 回 16楼(魔君) 的帖子 您好, 9988是可以看到wdCP的登录界面。 您是否也曾将Web的80端口修改为其它的端口?或在wdCP中相应的web服务没有启动,导致80端口不能访问? ------------------------- 回 18楼(魔君) 的帖子 您好, 您可以登录的Linux系统的终端,运行以下命令,看看有没有进程使用80端口喔: netstat -nlp |grep 80 示例结果: root@hk:~# netstat -nlp |grep 80 tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      232/nginx -g daemon ------------------------- 回 20楼(魔君) 的帖子 您好, 您指的还有一行,是什么内容呢? 如果仅有上边提到的一行,那么,很可能您的ECS里,Web服务没有启动,所以从外网访问Web服务(80端口)时,是不能成功的。 ------------------------- 回 26楼(魔君) 的帖子 您好, 当您安装wdCP时,您是选择了apache,还是nginx作为Web服务? 如果您是在CentOS里安装了apache作为web服务,可以尝试用以下命令来重启Web: service httpd restart

dongshan8 2019-12-02 02:48:12 0 浏览量 回答数 0

问题

轻松管理无公网的服务器

leehon 2019-12-01 21:30:12 22883 浏览量 回答数 15

问题

Java开发工程师必备技能

小柒2012 2019-12-01 20:55:20 11780 浏览量 回答数 3

回答

问题描述 使用SSH登录Linux实例时,提示如下错误信息,导致无法正常连接Linux实例。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is ae:6e:68:4c:97:a6:91:81:11:38:8d:64:ff:92:13:50. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending key in /root/.ssh/known_hosts:70 RSA host key for x.x.x.x has changed and you have requested strict checking. Host key verification failed. 若客户端为Windows环境,以常见的SSH客户端为例,连接时提示如下错误。 X.X.X.X (端口:XX)的主机密钥与本地主机密钥数据库中保存的不一致。主机密钥已更改或有人试图监听此连接。若无法确定,建议取消此连接。 问题原因 Linux实例进行过重装系统,账户信息变更等使其SSH公钥变更,造成客户端保存的公钥指纹与服务器端不一致,导致SSH认证失败拒绝登录。 解决方案 阿里云提醒您: 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。 本文相关Linux配置及说明已在CentOS 6.5 64 位操作系统中进行过测试。其它操作系统版本配置可能有所差异,具体情况请参阅相应操作系统官方文档。 客户端为Windows环境 如果客户端是Windows环境,而且使用SSH客户端Putty连接Windows实例,您可以参考以下步骤进行操作。 启动Putty。 在登录页面,单击 Delete,删除登录会话。 Image2.png 重新使用用户名及密码登录实例,确认保存新的公钥指纹后,即可成功登录。 注:您也可以在弹出相关告警信息时,单击 接收并保存,让程序自动更新密钥指纹信息,即可成功登录实例。 客户端为Linux环境 如果客户端是Linux环境,您可以参考以下步骤进行操作。 执行如下命令,进入对应账号的known_hosts文件。 vi ~/.ssh/known_hosts 按 i 键进入编辑模式。 删除Linux实例IP对应的条目,如下图所示。 TB1yJ8YJVXXXXXqXFXXXXXXXXXX.png 输入:wq保存并退出。 重新连接Linux实例,确认保存新的公钥指纹后,即可成功登录。 更多信息 由于公钥一般较长,采用RSA算法时长达1024位,为了简便起见,通过对其MD5计算,生成一个128位的字符串用于信息对比,称为公钥指纹。 相关文档 若还有问题没解决,请参考如下文档,做进一步的排查分析。 云服务器 ECS Linux SSH 无法登录问题排查指引 适用于 云服务器 ECS 如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。

1934890530796658 2020-03-25 23:07:37 0 浏览量 回答数 0

回答

redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。问题是这个项目还很新,可能还不足够稳定, redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。问题是这个项目还很新,可能还不足够稳定,而且没有在实际的一些大型系统应用的实例。此外,缺乏mc中批量get也是比较大的问题,始终批量获取跟多次获取的网络开销是不一样的。 性能测试结果: SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下: Linux 2.6, Xeon X3320 2.5Ghz. stackoverflow 网站使用 Redis 做为缓存服务器。 安装过程: Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。 Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。 一、下载最新版 wget http://redis.googlecode.com/files/redis-2.0.0-rc4.tar.gz 二、解压缩 tar redis-2.0.0-rc4.tar.gz 三、安装C/C++的编译组件(非必须) apt-get install build-essential 四、编译 cd redis-2.0.0-rc4 make make命令执行完成后,会在当前目录下生成本个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-stat,它们的作用如下: redis-server:Redis服务器的daemon启动程序 redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作 redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能 redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况 在后面会有这几个命令的说明,当然是从网上抄的。。。 五、修改配置文件 /etc/sysctl.conf 添加 vm.overcommit_memory=1 刷新配置使之生效 sysctl vm.overcommit_memory=1 补充介绍: **如果内存情况比较紧张的话,需要设定内核参数: echo 1 > /proc/sys/vm/overcommit_memory 内核参数说明如下: overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。 0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2, 表示内核允许分配超过所有物理内存和交换空间总和的内存 **编辑redis.conf配置文件(/etc/redis.conf),按需求做出适当调整,比如: daemonize yes #转为守护进程,否则启动时会每隔5秒输出一行监控信息 save 60 1000 #减小改变次数,其实这个可以根据情况进行指定 maxmemory 256000000 #分配256M内存 在我们成功安装Redis后,我们直接执行redis-server即可运行Redis,此时它是按照默认配置来运行的(默认配置甚至不是后台运 行)。我们希望Redis按我们的要求运行,则我们需要修改配置文件,Redis的配置文件就是我们上面第二个cp操作的redis.conf文件,目前 它被我们拷贝到了/usr/local/redis/etc/目录下。修改它就可以配置我们的server了。如何修改?下面是redis.conf的主 要配置参数的意义: daemonize:是否以后台daemon方式运行 pidfile:pid文件位置 port:监听的端口号 timeout:请求超时时间 loglevel:log信息级别 logfile:log文件位置 databases:开启数据库的数量 save * :保存快照的频率,第一个表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。 rdbcompression:是否使用压缩 dbfilename:数据快照文件名(只是文件名,不包括目录) dir:数据快照的保存目录(这个是目录) appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。 appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步) 下面是一个略做修改后的配置文件内容: daemonize yes pidfile /usr/local/redis/var/redis.pid port 6379 timeout 300 loglevel debug logfile /usr/local/redis/var/redis.log databases 16 save 900 1 save 300 10 save 60 10000 rdbcompression yes dbfilename dump.rdb dir /usr/local/redis/var/ appendonly no appendfsync always glueoutputbuf yes shareobjects no shareobjectspoolsize 1024 将上面内容写为redis.conf并保存到/usr/local/redis/etc/目录下 然后在命令行执行: 1 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 即可在后台启动redis服务,这时你通过 1 telnet 127.0.0.1 6379 即可连接到你的redis服务。 六、启动服务并验证 启动服务器 ./redis-server 或 $redis-server /etc/redis.conf 查看是否成功启动 $ ps -ef | grep redis 或 ./redis-cli ping PONG 七、启动命令行客户端赋值取值 redis-cli set mykey somevalue ./redis-cli get mykey 八、关闭服务 $ redis-cli shutdown #关闭指定端口的redis-server $redis-cli -p 6380 shutdown 九、客户端也可以使用telnet形式连接。 [root@dbcache conf]# telnet 127.0.0.1 6379 Trying 127.0.0.1... Connected to dbcache (127.0.0.1). Escape character is '^]'. set foo 3 bar +OK get foo $3 bar ^] telnet> quit Connection closed. 答案来源于网络

养狐狸的猫 2019-12-02 02:17:01 0 浏览量 回答数 0

回答

redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。问题是这个项目还很新,可能还不足够稳定, redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。问题是这个项目还很新,可能还不足够稳定,而且没有在实际的一些大型系统应用的实例。此外,缺乏mc中批量get也是比较大的问题,始终批量获取跟多次获取的网络开销是不一样的。 性能测试结果: SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下: Linux 2.6, Xeon X3320 2.5Ghz. stackoverflow 网站使用 Redis 做为缓存服务器。 安装过程: Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。 Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。 一、下载最新版 wget http://redis.googlecode.com/files/redis-2.0.0-rc4.tar.gz 二、解压缩 tar redis-2.0.0-rc4.tar.gz 三、安装C/C++的编译组件(非必须) apt-get install build-essential 四、编译 cd redis-2.0.0-rc4 make make命令执行完成后,会在当前目录下生成本个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-stat,它们的作用如下: redis-server:Redis服务器的daemon启动程序 redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作 redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能 redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况 在后面会有这几个命令的说明,当然是从网上抄的。。。 五、修改配置文件 /etc/sysctl.conf 添加 vm.overcommit_memory=1 刷新配置使之生效 sysctl vm.overcommit_memory=1 补充介绍: **如果内存情况比较紧张的话,需要设定内核参数: echo 1 > /proc/sys/vm/overcommit_memory 内核参数说明如下: overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。 0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2, 表示内核允许分配超过所有物理内存和交换空间总和的内存 **编辑redis.conf配置文件(/etc/redis.conf),按需求做出适当调整,比如: daemonize yes #转为守护进程,否则启动时会每隔5秒输出一行监控信息 save 60 1000 #减小改变次数,其实这个可以根据情况进行指定 maxmemory 256000000 #分配256M内存 在我们成功安装Redis后,我们直接执行redis-server即可运行Redis,此时它是按照默认配置来运行的(默认配置甚至不是后台运 行)。我们希望Redis按我们的要求运行,则我们需要修改配置文件,Redis的配置文件就是我们上面第二个cp操作的redis.conf文件,目前 它被我们拷贝到了/usr/local/redis/etc/目录下。修改它就可以配置我们的server了。如何修改?下面是redis.conf的主 要配置参数的意义: daemonize:是否以后台daemon方式运行 pidfile:pid文件位置 port:监听的端口号 timeout:请求超时时间 loglevel:log信息级别 logfile:log文件位置 databases:开启数据库的数量 save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。 rdbcompression:是否使用压缩 dbfilename:数据快照文件名(只是文件名,不包括目录) dir:数据快照的保存目录(这个是目录) appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。 appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步) 下面是一个略做修改后的配置文件内容: daemonize yes pidfile /usr/local/redis/var/redis.pid port 6379 timeout 300 loglevel debug logfile /usr/local/redis/var/redis.log databases 16 save 900 1 save 300 10 save 60 10000 rdbcompression yes dbfilename dump.rdb dir /usr/local/redis/var/ appendonly no appendfsync always glueoutputbuf yes shareobjects no shareobjectspoolsize 1024 将上面内容写为redis.conf并保存到/usr/local/redis/etc/目录下 然后在命令行执行: 1 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 即可在后台启动redis服务,这时你通过 1 telnet 127.0.0.1 6379 即可连接到你的redis服务。 六、启动服务并验证 启动服务器 ./redis-server 或 $redis-server /etc/redis.conf 查看是否成功启动 $ ps -ef | grep redis 或 ./redis-cli ping PONG 七、启动命令行客户端赋值取值 redis-cli set mykey somevalue ./redis-cli get mykey 八、关闭服务 $ redis-cli shutdown #关闭指定端口的redis-server $redis-cli -p 6380 shutdown 九、客户端也可以使用telnet形式连接。 [root@dbcache conf]# telnet 127.0.0.1 6379 Trying 127.0.0.1... Connected to dbcache (127.0.0.1). Escape character is '^]'. set foo 3 bar +OK get foo $3 bar ^] telnet> quit Connection closed. “答案来源于网络,供您参考” 希望以上信息可以帮到您!

牧明 2019-12-02 02:15:43 0 浏览量 回答数 0

回答

概述 当客户端访问目标服务器出现ping丢包或ping不通时,可以通过tracert或mtr等工具进行链路测试来判断问题根源。本文介绍如何通过工具进行链路测试和分析。 详细信息 阿里云提醒您: 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。 本文分别介绍如下链路测试方法。 链路测试工具 测试结果的简要分析 常见的链路异常场景 链路测试步骤 测试完成后的解决方法 链路测试工具 操作系统类型不同,链路测试所使用的工具也有所不同。简要介绍如下。 Linux系统 此处简单介绍两个链路测试工具。 工具一:mtr命令 mtr(My traceroute)几乎是所有Linux发行版本预装的网络测试工具。其将ping和traceroute的功能合并,所以功能更强大。mtr默认发送ICMP数据包进行链路探测。您也可以通过“-u”参数来指定使用UDP数据包进行探测。相对于traceroute只会做一次链路跟踪测试,mtr会对链路上的相关节点做持续探测并给出相应的统计信息。所以,mtr能避免节点波动对测试结果的影响,所以其测试结果更正确,建议优先使用。 用法说明 mtr [-BfhvrwctglxspQomniuT46] [--help] [--version] [--report] [--report-wide] [--report-cycles=COUNT] [--curses] [--gtk] [--csv|-C] [--raw] [--xml] [--split] [--mpls] [--no-dns] [--show-ips] [--address interface] [--filename=FILE|-F] [--ipinfo=item_no|-y item_no] [--aslookup|-z] [--psize=bytes/-s bytes] [--order fields] [--report-wide|-w] [--inet] [--inet6] [--max-ttl=NUM] [--first-ttl=NUM] [--bitpattern=NUM] [--tos=NUM] [--udp] [--tcp] [--port=PORT] [--timeout=SECONDS] [--interval=SECONDS] HOSTNAME 常见可选参数说明 --report:以报告模式显示输出。 --split:将每次追踪的结果分别列出来,而非统计整个结果。 --psize:指定ping数据包的大小。 --no-dns:不对IP地址做域名反解析。 --address:主机有多个IP地址时,设置发送数据包的IP地址。 -4:只使用IPv4协议。 -6:只使用IPv6协议。 另外,也可以在mtr运行过程中,输入类似如下的字母来快速切换模式。 ?或h:显示帮助菜单。 d:切换显示模式。 n:启用或禁用DNS域名解析。 u:切换使用ICMP或UDP数据包进行探测。 命令输出示例 返回结果说明 默认配置下,返回结果中各数据列的说明如下。 第一列(Host):节点IP地址和域名。按 n 键可切换显示。 第二列(Loss%):节点丢包率。 第三列(Snt):每秒发送数据包数。默认值是10,可以通过“-c”参数指定。 第四列(Last):最近一次的探测延迟。 第五、六、七列(Avg、Best、Worst):分别是探测延迟的平均值、最小值和最大值。 第八列(StDev):标准偏差。越大说明相应节点越不稳定。 工具二:traceroute命令 traceroute也是几乎所有Linux发行版本预装的网络测试工具,用于跟踪Internet协议(IP)数据包传送到目标地址时经过的路径。traceroute先发送小的具有最大存活时间值(Max_TTL)的UDP探测数据包,然后侦听从网关开始的整个链路上的ICMP TIME_EXCEEDED响应。探测从TTL=1开始,TTL值逐步增加,直至接收到ICMP PORT_UNREACHABLE消息。ICMP PORT_UNREACHABLE消息用于标识目标主机已经被定位,或命令已经达到允许跟踪的最大TTL值。traceroute默认发送UDP数据包进行链路探测。可以通过“-I”参数来指定使用ICMP数据包进行探测。 用法说明 traceroute [-I] [ -m Max_ttl ] [ -n ] [ -p Port ] [ -q Nqueries ] [ -r ] [ -s SRC_Addr ] [ -t TypeOfService ] [ -f flow ] [ -v ] [ -w WaitTime ] Host [ PacketSize ] 常见可选参数说明 -d:使用Socket层级的排错功能。 -f:设置第一个检测数据包的存活数值TTL的大小。 -F:设置不要分段标识。 -g:设置来源路由网关,最多可设置8个。 -i:主机有多个网卡时,使用指定的网卡发送数据包。 -I:使用ICMP数据包替代UDP数据包进行探测。 -m:设置检测数据包的最大存活数值TTL的大小。 -n:直接使用IP地址而非主机名称(禁用DNS反查)。 -p:设置UDP传输协议的通信端口。 -r:忽略普通的Routing Table,直接将数据包发送到目标主机上。 -s:设置本地主机发送数据包的IP地址。 -t:设置检测数据包的TOS数值。 -v:详细显示指令的执行过程。 -w:设置等待远端主机回包时间。 -x:开启或关闭数据包的正确性检验。 命令输出示例 Windows系统 此处简单介绍两个链路测试工具。 工具一:WinMTR(建议优先使用) WinMTR是mtr工具在Windows环境下的图形化实现,但进行了功能简化,只支持部分mtr的参数。WinMTR默认发送ICMP数据包进行探测,无法切换。和mtr一样,相比tracert,WinMTR能避免节点波动对测试结果的影响,所以测试结果更正确。所以在WinMTR可用的情况下,建议优先使用WinMTR进行链路测试。 用法说明 WinMTR无需安装,直接解压运行即可。操作方法非常简单,说明如下。 如下图所示,运行程序后,在 Host 字段输入目标服务器域名或IP,注意不要包含空格。 单击 Start 开始测试。开始测试后,相应按钮变成了 Stop。 运行一段时间后,单击 Stop 停止测试。 其它选项说明如下。 Copy Text to clipboard:将测试结果以文本格式复制到粘贴板。 Copy HTML to clipboard:将测试结果以HTML格式复制到粘贴板。 Export TEXT:将测试结果以文本格式导出到指定文件。 Export HTML:将测试结果以HTML格式导出到指定文件。 Options:可选参数,包括的可选参数如下。 Interval(sec):每次探测的间隔(过期)时间。默认为1秒。 ping size(bytes):ping探测所使用的数据包大小,默认为64字节。 Max hosts in LRU list:LRU列表支持的最大主机数,默认值为128。 Resolve names:通过反查IP地址,以域名显示相关节点。 返回结果说明 默认配置下,返回结果中各数据列的说明如下。 第一列(Hostname):节点的IP或域名。 第二列(Nr):节点编号。 第三列(Loss%):节点丢包率。 第四列(Sent):已发送的数据包数量。 第五列(Recv):已成功接收的数据包数量。 第六、七、八、九列(Best 、Avg、Worst、Last):分别是到相应节点延迟的最小值、平均值、最大值和最后一次值。 工具二:tracert命令行工具 tracert(Trace Route)是Windows自带的网络诊断命令行程序,用于跟踪Internet协议(IP)数据包传送到目标地址时经过的路径。 tracert通过向目标地址发送 ICMP 数据包来确定到目标地址的路由。在这些数据包中,tracert使用了不同的IP“生存期”,即TTL值。由于要求沿途的路由器在转发数据包前必须至少将TTL减少1,因此TTL实际上相当于一个跃点计数器(hop counter)。当某个数据包的TTL达到0时,相应节点就会向源计算机发送一个ICMP超时的消息。 tracert第一次发送TTL为1的数据包,并在每次后续传输时将TTL增加1,直到目标地址响应或达到TTL的最大值。中间路由器发送回来的ICMP超时消息中包含了相应节点的信息。 用法说明 tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name 常见可选参数说明 -d:不要将地址解析为主机名(禁用DNS反解)。 -h:maximum_hops,指定搜索目标地址时的最大跃点数。 -j: host-list,指定沿主机列表的松散源路由。 -w:timeout,等待每个回复的超时时间(以毫秒为单位)。 -R:跟踪往返行程路径(仅适用于IPv6)。 -S:srcaddr,要使用的源地址(仅适用于IPv6)。 -4:强制使用IPv4。 -6:强制使用IPv6。 target_host:目标主机域名或IP地址。 命令输出示例 C:> tracert -d 223.5.5.5 通过最多 30 个跃点跟踪到 223.5.5.5 的路由 1 请求超时。 2 9 ms 3 ms 12 ms 192.168.X.X 3 4 ms 9 ms 2 ms X.X.X.X 4 9 ms 2 ms 1 ms XX.XX.XX.XX 5 11 ms 211.XX.X.XX 6 3 ms 2 ms 2 ms 2XX.XX.1XX.XX 7 2 ms 2 ms 1 ms 42.XX.2XX.1XX 8 32 ms 4 ms 3 ms 42.XX.2XX.2XX 9 请求超时。 10 3 ms 2 ms 2 ms 223.5.5.5 跟踪完成。 测试结果的简要分析 由于mtr(WinMTR)有更高的准确性,本文以其测试结果为例,参考如下要点进行分析。此处分析时以如下示例图为基础。 要点一:网络区域 正常情况下,从客户端到目标服务器的整个链路中会包含如下区域。 客户端本地网络,即本地局域网和本地网络提供商网络。如上图中的区域A。如果该区域出现异常,并且是客户端本地网络中的节点出现异常,则需要对本地网络进行相应的排查分析。如果是本地网络提供商网络出现异常,则需要向当地运营商反馈问题。 运营商骨干网络。如上图中的区域B。如果该区域出现异常,可以根据异常节点的IP查询其所属的运营商,直接向对应运营商进行反馈,或者通过阿里云技术支持,向运营商进行反馈。 目标服务器本地网络,即目标服务器所属提供商的网络。如上图中的区域C。如果该区域出现异常,需要向目标服务器所属的网络运营商反馈问题。 要点二:链路负载均衡 如上图中的区域D。如果中间链路某些部分启用了链路负载均衡,则mtr只会对首尾节点进行编号和探测统计。中间节点只会显示相应的IP或域名信息。 要点三:结合Avg(平均值)和StDev(标准偏差)综合判断 由于链路抖动或其它因素的影响,节点的Best和Worst值可能相差很大。Avg统计了自链路测试以来所有探测的平均值,所以能更好的反应出相应节点的网络质量。而StDev越高,则说明数据包在相应节点的延时值越不相同,即越离散。所以标准偏差值可用于协助判断Avg是否真实反应了相应节点的网络质量。例如,如果标准偏差很大,说明数据包的延迟是不确定的。可能某些数据包延迟很小,例如25ms,而另一些延迟却很大,例如350ms,但最终得到的平均延迟反而可能是正常的。所以,此时Avg并不能很好的反应出实际的网络质量情况。 综上,建议的分析标准如下。 如果StDev很高,则同步观察相应节点的Best和Worst,来判断相应节点是否存在异常。 如果StDev不高,则通过Avg来判断相应节点是否存在异常。 注:上述StDev高或者不高,并没有具体的时间范围标准。而需要根据同一节点其它列的延迟值大小来进行相对评估。比如,如果Avg为30ms,那么,当StDev为25ms,则认为是很高的偏差。而如果Avg为325ms,则StDev同样为25ms,反而认为是不高的偏差。 要点四:Loss%(丢包率)的判断 任一节点的Loss%(丢包率)如果不为零,则说明这一跳网络可能存在问题。导致相应节点丢包的原因通常有如下两种。 运营商基于安全或性能需求,限制了节点的ICMP发送速率,导致丢包。 节点确实存在异常,导致丢包。 结合异常节点及其后续节点的丢包情况,并参考如下内容,判定丢包原因。 如果随后节点均没有丢包,则通常表示异常节点丢包是由于运营商策略限制所致。可以忽略相关丢包。如上图中的第2跳所示。 如果随后节点也出现丢包,则通常说明异常节点确实存在网络异常,导致丢包。如上图中的第5跳所示。 另外,上述两种情况可能同时发生,即相应节点既存在策略限速,又存在网络异常。对于这种情况,如果异常节点及其后续节点连续出现丢包,而且各节点的丢包率不同,则通常以最后几跳的丢包率为准。如上图所示,在第 5、6、7跳均出现了丢包。所以,最终丢包情况,以第7跳的40%作为参考。 要点五:关于延迟 关于延迟,有如下两种场景。 场景一:延迟跳变 如果在某一跳之后延迟明显陡增,则通常判断该节点存在网络异常。如上图所示,从第5跳之后的后续节点延迟明显陡增,则推断是第5跳节点出现了网络异常。不过,高延迟并不一定完全意味着相应节点存在异常。如上图所示,第5跳之后,虽然后续节点延迟明显陡增,但测试数据最终仍然正常到达了目的主机。所以,延迟大也有可能是在数据回包链路中引发的。所以,需要结合反向链路测试一并分析。 场景二:ICMP限速导致延迟增加 ICMP策略限速也可能会导致相应节点的延迟陡增,但后续节点通常会恢复正常。如上图所示,第3跳有100%的丢包率,同时延迟也明显陡增。但随后节点的延迟马上恢复了正常。所以判断该节点的延迟陡增及丢包是由于策略限速所致。 常见的链路异常场景 常见的链路异常场景及测试报告如下。 场景一:目标主机网络配置不当 示例数据如下。 [root@mycentos6 ~]# mtr —no-dns www.google.com My traceroute [v0.75] mycentos6.6 (0.0.0.0) Wed Jun 15 19:06:29 2016 Keys: Help Display mode Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. ??? 2. ??? 3. 1XX.X.X.X 0.0% 10 521.3 90.1 2.7 521.3 211.3 4. 11X.X.X.X 0.0% 10 2.9 4.7 1.6 10.6 3.9 5. 2X.X.X.X 80.0% 10 3.0 3.0 3.0 3.0 0.0 6. 2X.XX.XX.XX 0.0% 10 1.7 7.2 1.6 34.9 13.6 7. 1XX.1XX.XX.X 0.0% 10 5.2 5.2 5.1 5.2 0.0 8. 2XX.XX.XX.XX 0.0% 10 5.3 5.2 5.1 5.3 0.1 9. 173.194.200.105 100.0% 10 0.0 0.0 0.0 0.0 0.0 在该示例中,数据包在目标地址出现了100%的丢包。从数据上看是数据包没有到达,其实很有可能是目标服务器相关安全策略(比如防火墙、iptables 等)禁用了ICMP所致,导致目的主机无法发送任何应答。所以,该场景需要排查目标服务器的安全策略配置。 场景二:ICMP限速 示例数据如下。 [root@mycentos6 ~]# mtr --no-dns www.google.com My traceroute [v0.75] mycentos6.6 (0.0.0.0) Wed Jun 15 19:06:29 2016 Keys: Help Display mode Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 63.247.X.X 0.0% 10 0.3 0.6 0.3 1.2 0.3 2. 63.247.X.XX 0.0% 10 0.4 1.0 0.4 6.1 1.8 3. 209.51.130.213 0.0% 10 0.8 2.7 0.8 19.0 5.7 4. aix.pr1.atl.google.com 0.0% 10 6.7 6.8 6.7 6.9 0.1 5. 72.14.233.56 60.0% 10 27.2 25.3 23.1 26.4 2.9 6. 209.85.254.247 0.0% 10 39.1 39.4 39.1 39.7 0.2 7. 64.233.174.46 0.0% 10 39.6 40.4 39.4 46.9 2.3 8. gw-in-f147.1e100.net 0.0% 10 39.6 40.5 39.5 46.7 2.2 在该示例中,在第5跳出现了明显的丢包,但后续节点均未见异常。所以推断是该节点ICMP限速所致。该场景对最终客户端到目标服务器的数据传输不会有影响,所以,分析的时候可以忽略。 场景三:环路 示例数据如下。 [root@mycentos6 ~]# mtr —no-dns www.google.com My traceroute [v0.75] mycentos6.6 (0.0.0.0) Wed Jun 15 19:06:29 2016 Keys: Help Display mode Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 63.247.7X.X 0.0% 10 0.3 0.6 0.3 1.2 0.3 2. 63.247.6X.X 0.0% 10 0.4 1.0 0.4 6.1 1.8 3. 209.51.130.213 0.0% 10 0.8 2.7 0.8 19.0 5.7 4. aix.pr1.atl.google.com 0.0% 10 6.7 6.8 6.7 6.9 0.1 5. 72.14.233.56 0.0% 10 0.0 0.0 0.0 0.0 0.0 6. 72.14.233.57 0.0% 10 0.0 0.0 0.0 0.0 0.0 7. 72.14.233.56 0.0% 10 0.0 0.0 0.0 0.0 0.0 8. 72.14.233.57 0.0% 10 0.0 0.0 0.0 0.0 0.0 9 ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 在该示例中,数据包在第5跳之后出现了循环跳转,导致最终无法到达目标服务器。这通常是由于运营商相关节点路由配置异常所致。所以,该场景需要联系相应节点归属运营商处理。 场景四:链路中断 示例数据如下。 [root@mycentos6 ~]# mtr —no-dns www.google.com My traceroute [v0.75] mycentos6.6 (0.0.0.0) Wed Jun 15 19:06:29 2016 Keys: Help Display mode Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 63.247.7X.X 0.0% 10 0.3 0.6 0.3 1.2 0.3 2. 63.247.6X.X 0.0% 10 0.4 1.0 0.4 6.1 1.8 3. 209.51.130.213 0.0% 10 0.8 2.7 0.8 19.0 5.7 4. aix.pr1.atl.google.com 0.0% 10 6.7 6.8 6.7 6.9 0.1 5. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 6. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 7. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 8. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 9 ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 在该示例中,数据包在第4跳之后就无法收到任何反馈。这通常是由于相应节点中断所致。建议结合反向链路测试做进一步确认。该场景需要联系相应节点归属运营商处理。 链路测试步骤 通常情况下,链路测试步骤如下图所示。 相关步骤的详情说明如下。 步骤一:获取本地网络对应的公网IP 在客户端本地网络内访问淘宝IP地址库,获取本地网络对应的公网IP地址。 步骤二:正向链路测试(ping和mtr) 从客户端向目标服务器做如下测试。 从客户端向目标服务器域名或IP做持续的ping测试,建议至少ping 100个数据包,记录测试结果。 根据客户端操作系统的不同,使用WinMTR或mtr,设置测试目的地址为目标服务器域名或IP,然后进行链路测试,记录测试结果。 步骤三:反向链路测试(ping和mtr) 进入目标服务器系统内部做如下测试。 从目标服务器向步骤一获取的客户端IP做持续的ping测试,建议至少ping 100个数据包,记录测试结果。 根据目标服务器操作系统的不同,使用WinMTR或mtr,设置测试目的地址为客户端的IP地址,然后进行链路测试,记录测试结果。 步骤四:测试结果分析 参阅测试结果的简要分析,对测试结果进行分析。确认异常节点后,访问如下链接或其他可以查询IP归属地的网站,获取该异常节点的归属运营商信息。如果是客户端本地网络相关节点出现异常,则需要对本地网络进行相应排查分析。如果是运营商相关节点出现异常,则需要向运营商反馈问题。查询结果类似如下。 测试完成后的解决方法 当出现ping丢包或ping不通时,首先请参考云服务器ECS网络故障诊断,排查是否为网络故障。 如果确认是因系统中病毒导致使用ping命令测试ECS实例的IP地址间歇性丢包,则可参考使用ping命令测试ECS实例的IP地址间歇性丢包进行处理。 如果是因删除ECS实例的默认安全组规则导致无法ping通ECS实例,可参考删除ECS实例的默认安全组规则导致无法ping通ECS实例进行处理。 如果在Linux系统内核没有禁PING的情况下,是因系统内部防火墙策略设置导致ECS服务器PING不通。可参考Linux系统的ECS中没有禁PING却PING不通的解决方法。

1934890530796658 2020-03-25 23:17:54 0 浏览量 回答数 0

问题

云服务器 ECS Linux MySQL 无法远程连接问题有哪些常见错误及解决办法

boxti 2019-12-01 21:55:16 2249 浏览量 回答数 0

问题

PostgreSQL 数据库集群和PL/Proxy配置安装出错

huc_逆天 2020-05-28 09:17:46 1 浏览量 回答数 0

问题

PostgreSQL 数据库集群和PL/Proxy配置安装指南:报错

kun坤 2020-06-05 23:49:06 0 浏览量 回答数 1

回答

本入门教程采用ecs.g6.large实例规格,在CentOS 8.0系统上配置了Apache服务,结合ECS管理控制台展示如何快速使用云服务器ECS。 准备工作 创建账号,以及完善账号信息。 注册阿里云账号,并完成实名认证。具体操作,请参见阿里云账号注册流程。 本入门教程创建的是按量付费实例,您的账号的可用余额(含现金、代金券、优惠券等)不得少于100元人民币。充值方式请参见如何充值。 可选: 阿里云提供一个默认的专有网络VPC,如果您不想使用默认的,可以在目标地域创建一个专有网络和交换机。 具体操作,请参见搭建IPv4专有网络。 可选: 阿里云提供一个默认的安全组,如果您不想使用默认的,可以在目标地域创建一个安全组。 具体操作,请参见创建安全组。 步骤一:创建ECS实例 前往实例创建页。 在购买页面的前四个配置页面,完成实例启动配置。 本入门教程采用以下配置,未提及的配置保持默认选项。 配置页面 配置项 示例 说明 基础配置 付费模式 按量付费 按量付费模式操作相对灵活。详情请参见计费概述。 说明 如果您需要为网站域名备案,必须选择包年包月。 地域与可用区 地域:华东1(杭州) 可用区:随机分配 实例创建后,无法直接更改地域和可用区,请谨慎选择。 实例 规格族:通用型g6 规格:ecs.g6.large 可供选择的实例规格由您所选择的地域以及库存供应决定。 您可以前往ECS实例可购买地域,查看实例的可购情况。 镜像 类型:公共镜像 版本:CentOS 8.0 64位 实例启动后,系统盘将完整复制镜像的操作系统和应用数据。 网络和安全组 专有网络 [默认]vpc-bp1opxu1zkhn00g****** 带[默认]前缀的资源由ECS控制台自动创建。 分配公网IPv4地址 勾选 勾选后,自动分配一个公网IP(v4)地址。 带宽计费模式 按使用流量 按使用流量模式只需为所消耗的公网流量付费。详情请参见公网带宽计费方式。 峰值带宽 2 Mbps 无。 安全组 安全组:[默认]sg-bp1bhjjsoiyx44****** 安全组规则:勾选ICMP协议、SSH 22、RDP 3389、HTTP 80和HTTPS 443端口 带[默认]前缀的资源由ECS控制台自动创建。 系统配置 登录凭证 自定义密码 请记录该配置,连接ECS实例时,您需要输入root密码。 实例名称 EcsQuickStart 本文中的实例一律使用EcsQuickStart指代。 分组设置 标签 ECS:Documentation 有多台实例时,建议添加标签,方便管理。 单击下一步:确认订单,在该页面确认所选配置,或者单击编辑图标编辑-图标返回修改配置。 快速入门-Linux版 可选: 单击保存为启动模板,然后设置模板名称和描述。 快速入门-启动模板 说明 将当前实例所选配置保存为启动模板,方便您下次通过模板一键下单。 勾选《云服务器ECS服务条款》,然后单击创建实例。 单击创建成功提示框里的管理控制台,前往实例列表页面查看创建进度。 实例状态进入运行中后表示已成功创建。复制实例的公网IP地址,便于下文连接ECS实例时使用。快速入门-Linux版-创建成功 步骤二:添加安全组规则 如果创建ECS实例时,您没有在默认安全组中勾选添加安全组规则,或者ECS实例加入的是一个全新的安全组,请按以下步骤继续操作。 单击实例ID,进入实例详情页。 在左侧导航栏,单击本实例安全组,然后单击安全组ID,进入安全组详情页。 在安全组规则页面的右上角,单击快速创建规则。 按以下设置添加安全组规则,未提及的配置保持页面默认选项。 规则方向 授权策略 常用端口 授权类型 授权对象 入方向 允许 SSH 22 RDP 3389 HTTP 80 HTTPS 443 IPv4地址段访问 0.0.0.0/0 说明 常用端口处勾选的是ECS实例上运行的应用需开放的端口。例如步骤四:配置Apache服务时使用的SSH服务和Apache服务,未开启SSH 22端口和HTTP 80端口会导致实例无响应。 0.0.0.0/0表示允许全网段设备访问指定的端口。如果您知晓请求端的IP地址,建议设置为具体的IP范围。 快速入门-Linux版-添加安全组规则 单击确定。 步骤三:连接ECS实例 单击下一步骤中的cloud-shell-try-it按钮,等待初始化CloudShell客户端。 使用ssh命令连接实例。 试用 ssh root@<实例公网IP地址> 提示ECS实例此次授信登录需要存储密钥指纹时,输入yes。 输入ECS实例的root用户名密码,并回车。 输入密码阶段,password:处保持黑屏,无提示信息。提示以下信息则表示您已连接ECS实例。 Welcome to Alibaba Cloud Elastic Compute Service ! 步骤四:配置Apache服务 安装Apache服务。 试用 yum install -y httpd 启动Apache服务。 试用 systemctl start httpd 设置Apache服务开机自启动。 试用 systemctl enable httpd 查询Apache服务是否处于运行中状态。 试用 systemctl status httpd 返回active (running)则表示已开始运行Apache服务。 在当前浏览器页面,新开启一个网页,在地址栏输入实例的公网IP地址,并回车。 试用 http://<实例公网IP地址> 快速入门-Linux版-测试网站 步骤五:(可选)解析网站域名 直接通过实例公网IP地址访问Apache服务会降低服务端安全性。如果您已有域名或者想为Apache网站注册一个域名,请参见以下步骤。 注册域名。 详情请参见注册通用域名。 如果域名指向的网站托管在阿里云中国大陆境内节点服务器,您需要备案域名。 首次备案,请参见首次备案,其他情况请参见ICP备案流程概述。 解析域名,将域名指向实例公网IP。 域名解析是使用域名访问您的网站的必备环节。具体操作流程,请参见设置域名解析。 使用解析后的域名访问Apache服务,例如,https://ecs-quickstarts.info。 步骤六:(可选)释放ECS实例 如果您不再需要这台实例,可以将其释放。释放后,实例停止计费,数据不可恢复。 说明 本小节操作仅适用于按量付费实例,不支持手动释放包年包月实例。如果您需要提前释放包年包月实例,请参见退款规则及退款流程。 返回实例列表页面,找到实例EcsQuickStart。 在操作列中,单击更多 > 实例状态 > 释放设置。 选择立即释放,并单击下一步。 确认要释放的实例,并单击确定。 输入您收到的手机验证码,单击确认。 步骤七:查看费用账单 账单明细数据延迟一天更新,且不含万网和云通信数据。 在ECS管理控制台顶部工具栏处,选择费用 > 用户中心。 ECS快速入门-查看费用账单 在左侧导航栏,单击费用账单,然后单击页面中的账单明细页签。 在实例名称处,输入实例名称EcsQuickStart,并回车开始搜索。 后续步骤 了解云服务器ECS在售的实例规格族:实例规格族 了解更多创建ECS实例的方式:创建方式导航 了解镜像的相关概念:镜像概述 了解安全组的相关概念:安全组概述 了解专有网络VPC的相关概念:什么是专有网络 了解云服务器ECS的常见操作:常用操作导航 了解云服务器ECS提供的API:API概览

1934890530796658 2020-03-24 14:02:43 0 浏览量 回答数 0

问题

使用 dd 命令实现 SAN 存储的快照数据迁移:报错

kun坤 2020-06-06 12:01:16 1 浏览量 回答数 1

回答

回 3楼dongshan8的帖子 显示的是移动IP,应该是VPN没有生效!但是移动网络拨号连接的时候账号认证是通过了,要不连接不上的,这是哪方面的问题呢?另外家里路由器上我已经开了NAT规则了啊?我在现连DMZ都开启了,请指教一下,谢谢 ------------------------- 回 6楼dongshan8的帖子      折腾了二天,FTP,SSH,这些都弄好了,唯独这个VPN还是不行,目前还是只能移动网络连接上VPN,但打不开网页,数据包看应该是已经通过阿里云VPN的外网IP连上了,打不开网页的原因应该是没有接收数据包的问题,发送数据包是有了,清版主看一下该怎么样处理?另外我路由是没开防火墙的,所以不存在穿透的问题,再说版主你给的这个连接路由的设置NAT规则和DMZ主机我之前已经做过,连不上的! 请看图……移动网络连接上后,数据包有发送,没接收 ------------------------- 回 8楼dongshan8的帖子 好的,麻烦版主看一下,我把帐号短信给你,谢谢 ------------------------- 回 10楼dongshan8的帖子      版主你好,我这现在试了一下,宽带上网还是拨号提示“错误619:不能建立到远程计算机的连接,因此用于此连接的端口已关闭”,连不上,移动4G网络倒是连上也可以打开国内网页了,国外不行。而且我跳转到淘宝IP地址库IP显示是移动网络 IP 117.136.84.44,和你那测试的结果不一样啊!麻烦你再帮忙看看,谢谢 ------------------------- 回 11楼fengcloud的帖子 ------------------------- 回 13楼dongshan8的帖子 MERCURY 水星系列 MW150R ------------------------- 回 13楼dongshan8的帖子 路由器应该没啥问题,NAT规则,DMZ主机是开通的,而且我防火墙也是关闭的 ------------------------- 回 16楼dongshan8的帖子 试了,直连ADSL猫拨号上网,还是不行,一样的提示,连接不上,只有移动网络可以连上!可是移动网络连上跳转到淘宝IP库,看起来IP地址还是移动啊! ------------------------- 回 18楼dongshan8的帖子 我这没有TeamViewer这类软件,再说我本机是centos,好像没有TeamViewer linux版吧

fengcloud 2019-12-02 00:29:34 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播