首页 > 其他 > 详细

阿里云新服务器遇到的问题之一肚子火之求救

时间:2019-09-20 13:31:22      阅读:164      评论:0      收藏:0      [点我收藏+]

前言

公司一直用的阿里云服务器,系统是windows server 2008。因为做技术,了解做一个云服务有多难。阿里起家早,当时的种种壮举也早已耳熟能详。本着技术人的同情与倾佩,一直很相信阿里云。结果这两天碰到了一个bug,阿里云对这个事情的处理态度让人心寒。回想去年嘲笑腾讯云因为人为失误导致用户数据丢失,结果仅仅赔付购买服务器的钱,现在觉着好打脸。是天下乌鸦一般黑呢?还是尾大不掉呢?

起因

客户反应,他游戏的阶段不对了,每个阶段非常长。我上服务器查看,错误日志没有,数据库异常语句没有,cpu正常,内存正常,磁盘正常,唯一发现内存有硬错误,并且有点多。上网查了一下,没有什么介绍为什么内存硬错误,有一点介绍是硬件读写超时导致的。找不出什么原因,就是感觉系统有点卡,看了一下配置,与我们正常的服务器没什么区别,唯一的区别是系统cpu不一样。

调查

那只能调试了。重新编译了版本,上传上去,开启远程调试,发现GetTickCount64调用异常。

这个函数参看 https://docs.microsoft.com/zh-cn/windows/win32/api/sysinfoapi/nf-sysinfoapi-gettickcount64

Retrieves the number of milliseconds that have elapsed since the system was started.

按照微软的说法,就是返回系统启动到现在经历的毫秒数。并且我们使用了这么久,没出过问题,也非常精确。

但是调试发现,GetTickCount64两次获取差值是10000,表示正好是10秒钟,结果服务器上经过了40多秒才返回。也就是10000个系统时钟的差值是40多秒,不是10秒。

好奇怪,第一次遇到这个问题。详细查了一下新系统的cpu,发现这个信息。

https://pc6a.com/1920.html

技术分享图片

 

 

 

原来我们以前的服务器都是T5也就是Intel Xeon CPU 8163 如图

技术分享图片

 

新的服务器是T6 Intel 8269cy,如图

技术分享图片

并且T6是9月份刚上的,好吧,新产品上线,难免有问题。只好给阿里云提工单。

不爽的经历

我们不是第一次给阿里云提供工单了,公司大,需要流程,OK可以理解,但是这次没了互联网公司敏捷的感觉,多了臃肿的政治化寡头的味道。

第一天提,把问题描述清楚,说我们什么语言,调用了什么api,现在是什么现象,理论上是什么现象。

下午有人问了一遍大体问题。然后就是请等待,正在找技术调查。

第二天第二个人上线问,结果还是个客服。说是技术,随便说两句话就露馅了。让我们提供测试结果和代码。这……好我忍,写了测试代码。

int main()
{
    long long stick = GetTickCount64();
    long long etick = GetTickCount64();
    cout << "start tick " << stick << endl;
    time_t stime = time(NULL);
    cout << "start time " << stime << endl;
    while (etick - stick < 10000)
    {
        etick = GetTickCount64();
    }
    cout << "end tick " << etick << endl;
    time_t etime = time(NULL);
    cout << "end time " << stime << endl;
    cout << "end tick - start tick = " << etick - stick << endl;
    cout << "end time - start time = " << etime - stime << endl;
    char inchar;
    cin >> inchar;
}

然后在正常的服务器上跑一遍,OK,结果都是对的,时间也是10秒。

在异常的服务器上跑一遍,嗯???奇异的现象发生了,结果也是对的。

下面是结果

技术分享图片

 

 

 这这这,完全出乎我的意料了。本来以为,GetTickCount64调用有问题,也就是每次加1,并不是1毫秒了。而是几毫秒,或是几十毫秒。但是time是正常的,那么结果就是GetTickCount64返回值10000的差值应该是time返回值差值的40多。现在都是一样。我慢慢的点开系统右下角的时间,灵异时间发生了。如下视频

技术分享图片

 

系统时间都变慢了!!!

这足够可以说明问题了吧,我们把视频发给阿里云。结果他们说他们测试下来正常的。给我们了他们的视频,如下

技术分享图片

但是从阿里云自己提供的视频上面可以看出。不管是桌面还是系统时间(因为他们是在线,要求我们调查,过了几分钟立马回的),都不是我们有问题的系统。也就是他们随便找了一台正常的服务器,录了一个视频给我,然后告诉我们没问题。

退款

我们要求退款,然后买一个新的,阿里云不同意。

没办法我打杭州12315消费者协会电话,被告知,阿里云属于商业产品,他们不受理,就算是个人买来使用也不行,只能走法律途径。回到工位给同事说,感觉就是,十几公里上班的路程,觉着太远,问一下有没有公交,被告知,只有飞机,爱坐不坐,不然就走着过来。

强行扯皮

没办法,只能死磕了,因为服务器是客户账户买的,不能说上一个不能使用就让客户直接买新的。扯皮了好久,终于同意退款。但是要500多天,钱才可以到账。可以的,这很霸道。

新服务器上线

晚上买了新服务器,查看系统时间,正常。配置好,启动。打开游戏,惊呆了!!!游戏阶段变快了。也就是原来10秒钟的时钟,现在也就2、3秒。这……

正在准备调试的时候,好了?!战战兢兢等了几十分钟,没有异常。OK,回家。

问题重现

早上来到,就被告知,阶段变慢的问题又出现了。黑线~~

猜测

昨天我就猜测是不是因为我们T6的系统,用的是T5的镜像导致的。但是当时因为客户着急,先应付一下,不用镜像,配置太麻烦了。所以第二个新系统还是用的镜像。现在我们重装系统,不用镜像,再次测试,因为问题复现需要第二天……

无解

刚刚把通过镜像创建的服务器重装系统,启动,我还没配置好,又出现时间走的慢的问题了。求救哪位老哥知道解决方法

阿里云新服务器遇到的问题之一肚子火之求救

原文:https://www.cnblogs.com/studywithallofyou/p/11556152.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!