当前位置:主页 > 物联网IoT > 正文

香港主机_国内_云存储价格

时间:2021-04-08 16:53 来源:埃里克云 编辑:埃里克云

核心提示

在Delphix,作为一名工程师,一些最令人兴奋但要求苛刻(几乎是艰苦的)的经历都来自于解决客户支持案例。在这些挑战中,我了解到最重要但定义不清的技能之一是调试。每一个事...

香港主机_国内_云存储价格

在Delphix,作为一名工程师,一些最令人兴奋但要求苛刻(几乎是艰苦的)的经历都来自于解决客户支持案例。在这些挑战中,我了解到最重要但定义不清的技能之一是调试。每一个事件都给了我成长的机会,也加强了我对团队合作、系统思考的需求,以及以全新方式学习新事物的开放性。最近,一个支持案例引起了我们的注意,当时一台Delphix发动机发生故障。我们的支持工程师之一tonyslack收集并分析了有关系统的信息,发现运行Delphix管理堆栈的Java进程已经用完了本机内存。当这种情况发生时,堆栈会自动获取一个核心转储并关闭应用程序,因为我们知道我们无法取得更多的进展。我的工作是找出为什么我们一开始就没了记忆收集线索当我们收集了大量关于客户系统的有用调试信息时,我有很多东西要看。我使用了许多Java调试工具来确定崩溃的确切时间。使用jstack时,我注意到的第一件事是Java线程比我们预期的在标准Delphix系统上运行的多10倍。由于每个线程都为自己保留了一些空间,这就解释了为什么它会耗尽内存这就引出了我的下一个大问题:这些线程是从哪里来的,它们想要什么?从聚集的jstack输出中,我能够识别出三个重复了近900次的堆栈,这给了我另一条线索,说明哪些线程失控了第一个堆栈正在为SSH连接执行KeepAlive例程第二个是尝试从一个套接字(通过SSH连接连接)读取数据第三个是执行LogSync的一个子例程,我们使用这个功能来保持客户Oracle数据库的虚拟化副本与源代码保持最新每次同步之后,LogSync进程都会清理从中同步数据库的外部主机上的文件,但这是线程挂起的地方,在一个名为removeFile的函数中,通过SSH执行命令删除远程计算机上的文件。这个细节说明了这些线程试图做什么:打开一个SSH连接,在该连接上运行一个删除命令,然后等待该命令的输出。因为删除还没有完成,所以没有得到回应。我的下一个策略是进一步了解SSH连接本身,看看是否有共同的主题。我深入研究了我们在客户系统上收集的信息——pfiles命令的输出,它记录了某个特定进程打开的所有文件。因为套接字只是另一种文件,所以我查找了IFSOCK类型的所有文件,这些文件都是到主机的传出连接。在按IP地址聚合之后,我看到数百个端口22(即SSH)连接连接到同一个IP。我能够将bug的范围缩小到一台机器上,因为客户有许多远程主机连接到他们的Delphix引擎上验证理论在这一点上,我决定寻找一个内部人士对这部分产品的看法。我们甲骨文团队的工程师迈克·斯图尔特(mikestewart)前来营救,并讲述了LogSync特性的高级实现。他同意这个问题可能与SSH连接执行日志删除有关,并假定删除命令本身-rm-f挂起。根据这个理论,支持人员与客户一起检查主机。有大量这样的文件留在周围,证实删除不成功。但是,文件的权限没有什么意外,这可能是导致删除失败的最明显原因。我们尝试手动删除,发现rm请求确认:是否确实要删除此项? 这给了迈克一个主意。如果执行文件删除的SSH连接不知道如何处理rm确认消息呢?他在一个测试虚拟机上尝试了这个理论,发现SSH线程确实在返回提示时挂起了。但是只有一个问题——这就是rm-f中的-f(LogSync使用的命令)应该处理的问题从rm的手册页:-f忽略不存在的文件和参数,从不提示这似乎是一个死胡同,除非有其他方法生成了一个忽略-f的提示。在与更广泛的组共享此信息后,另一个工程师建议客户可能将rm命令别名(重新分配)到rm-i,这是一种可能已到位以防止意外删除的配置-每次移除前我都会提示再次,我们与客户一起检查他们的系统,使用alias命令发现我们的理论是正确的!这意味着每次SnapSync试图强制删除一个文件,它实际上运行rm-i-f并得到提示。有趣的是,rm-i-f会根据您使用的操作系统来执行不同的操作。在Linux上,rm-f-i给出提示,但rm-i-f没有。但是,在Solaris(客户主机的操作系统)上,-我总是否定-f解决方案该客户的短期解决方案是删除其系统上的别名。支持人员清理了多余的文件,SSH命令能够开始完成。然而,这个bug也突出了我们产品中需要改进的地方SSH命令执行挂在命令提示符上而不是继续或放弃的方式。连接的建立方式,直到进程内存耗尽,而不是超时或以其他方式清理。在高层次上,这个问题突出了我们的软件容易受到看似无关的用户系统配置的影响,而打破这种依赖性将使它更加健壮。虽然我们更希望客户拥有完美的产品体验,但升级总是教会我们很多东西。我们发现了一个意外的故障情况和导致它的设计问题,我们期待着把这些教训带到前面,为每个人创造一个更好的产品。关于调试艺术的思考虽然这个特定升级的解决方案并不特别复杂,但它隐藏得很好。这条线索是从操作系统内存管理开始的,我遵循的线索引导我完成了Java进程管理、oraclesnapsync功能、SSH连接,最后是简单的shell脚本编写。这个过程促使我学习新的工具,沉浸在产品的不熟悉的领域,并利用整个组织的工程师之间的协作。最重要的是,它提醒我,我喜欢调试这样的问题,因为它把我推出了我的舒适区。调试总是向我展示我已经成长了多少,以及下一步可以做什么。另外,最终找到答案还真是令人满意——不是每天都会看到命令别名导致本机内存耗尽。

  • cdn服务商_关于_云计算平台试用 cdn服务商_关于_云计算平台试用

    本周,我们将推出基于活动的分析,这是通过与我们的客户密切合作创建的。你可以很容易地每天浏览一份任务清单——通过外联,你知道该给谁发邮件和打电话给谁。但是你怎么知...

  • 好用的云存储_如何选_云计算平台 好用的云存储_如何选_云计算平台

    我们很高兴与大家分享外展的新面貌!新外展部采用了漂亮、现代的设计,重点在于为销售代表提供所需的洞察力和能力,使他们能够在工作地点工作。在过去的3年里,与客户的合作...

  • 宽带速度_购买_云服务器网 宽带速度_购买_云服务器网

    从投资者到潜在客户,我经常被问到的一个问题是,"自动化不是在使销售过程失去人性吗?你不是在用没人情味的机器人来代替销售人员吗?"尽管外展是一个销售参与平台,毋庸置疑...

  • 关系数据库_便宜的_云计算云计算 关系数据库_便宜的_云计算云计算

    顶尖的销售代表知道,在最初的几秒钟内吸引潜在客户的注意力可以决定会议的成败。私人和有意义的谈话会带来更多的交易,赢得更多的生意,并与客户建立更牢固的关系。然而,...

  • 服务器采购_怎么购买_租云服务器 服务器采购_怎么购买_租云服务器

    关于如何最好地接近潜在客户有很多种观点:你应该登陆并扩张吗?你是不是应该冲出大门直接去高级套房?当针对销售周期较长的全国性公司时,我们的销售团队倾向于同时使用这...

  • 阿里云香港服务器_如何使用_如何在云服 阿里云香港服务器_如何使用_如何在云服

    两年后,143个功能发布,2000个客户,16000个活跃用户,我们终于做到了:我们举行了我们的首次客户会议,释放!有太多的想法要分享,产品特性要宣布,葡萄酒也要喝。我们很幸运...

  • 海量数据存储_虚拟_如何使用云计算 海量数据存储_虚拟_如何使用云计算

    我们与各种各样的客户合作,有些客户在他们的市场上比较成熟,有些客户刚刚起步。较新的公司可能没有集中的CRM,而是可能使用电子表格或更小的CRM数据库。虽然我们有强大的S...

  • sql server数据库_虚拟_网站服务器主机 sql server数据库_虚拟_网站服务器主机

    昨天结束了释放。索诺玛,你对我们很好。#STL今天出发了。pic.twitter.com/QiKOoYq5Od-emily muhoberac(@muhobs)2017年6月7日外展部的首次客户会议"释放"已经过去一周了,我们的整个办公室仍然...

  • 云存储_表较好的_国内低价云服务器 云存储_表较好的_国内低价云服务器

    虽然让你的销售代表能够始终如一地达到他们的配额并不是什么大秘密,但是快速的谷歌搜索会返回成百上千的销售配额实现理论。我有一个策略,多年来我一直在推动配额的实现,...