通常,我们现场安装的基于 debian 稳定版的应用程序在虚拟机中运行 - 通常在 VMware ESXi 中。在一般情况下,我们无法了解或影响他们的虚拟化环境,也无法访问例如 VMware vCenter 客户端或等效物。我在这里重点介绍 VMware,因为这是迄今为止我们看到的最常见的。
我们想:
现在什么是 X、Y 和 Z?
我们一次又一次地看到,当出现性能问题时,问题不在于我们的应用程序,而在于虚拟化环境。例如,另一台虚拟机使用大量 CPU、内存或实际存储磁盘的 SAN 被我们的应用程序以外的其他东西大量使用。我们目前无法证明或反驳这一点。
从理论上讲,有时我们的应用程序也可能很慢...... ;-)
如何确定我们性能问题的根本原因:虚拟环境还是我们的应用程序?
性能问题通常有 3 个方面:CPU、内存和磁盘 I/O。
例如,在 VMware 中,管理员可以指定预留和限制,以 MHz 表示,但是例如,一台 ESX 主机上的 512MHz 与另一台 ESX 主机上的 512MHz 完全相同,可能在完全不同的 ESX 集群中?
我们如何衡量我们是否真的得到了它?当我们的应用程序运行时,我们可能会看到我们在 4 个 CPU 上的 CPU 利用率为 212%。这是因为我们的应用程序做了很多事情,还是因为同一主机上的另一个 VM 正在运行 CPU 密集型任务并使用所有 CPU?
如果我们要求例如 16GB …
我从我的 (xterm|gnome-terminal) telnet 到 HP 交换机。退出远程登录。这打破了终端的行为。(如果您没有连接到 telnet 的 HP 开关,则可以在终端中使用cat
此文件)。
现在输入一个很长的命令(不止一行,并且看到第二行没有换行到下一行,而是“留在当前行”。这使得无法编辑先前的命令或使用终端任何超过一行的内容。
看到cat filewithlonglines.txt
或git log -p
只显示超过 80 个字符的行的前 80 个字符。
reset
不起作用。stty -g > stty.works
, 运行 telnet,stty $(stty.works)
恢复更改的stty
设置,但行为仍然被破坏。
我必须关闭终端并开始一个新的终端。:-(
在 telnet 后,除了保存/恢复以修复损坏的终端之外reset
,我还能做什么stty
?
编辑:我发现如果我screen
在以下命令之一中使用like:
screen bash -c "cat hptelnet.escape ; bash"
Run Code Online (Sandbox Code Playgroud)
或者
screen telnet hpswitch
Run Code Online (Sandbox Code Playgroud)
然后我的终端在屏幕退出时仍然正常工作。因此,解决方法是将 screen 放在弄乱我的终端的命令前面,但我仍然想知道如何恢复已经弄乱的终端...