加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

计算机专业有哪些关系

发布时间:2021-02-11 14:47:22 所属栏目:动态 来源:互联网
导读:什么是虚拟机? 从根本上讲,VM是运行程序而无需绑定到物理机的软件。在VM实例中,一台或多台客户机可以在物理主机上运行。 每个VM都有自己的操作系统,并且与其他VM分开运行,即使它们位于同一物理主机上也是如此。VM通常在服务器上运行,但也可以在PC系统甚

什么是虚拟机?

从根本上讲,VM是运行程序而无需绑定到物理机的软件。在VM实例中,一台或多台客户机可以在物理主机上运行。

每个VM都有自己的操作系统,并且与其他VM分开运行,即使它们位于同一物理主机上也是如此。VM通常在服务器上运行,但也可以在PC系统甚至嵌入式平台上运行。多个VM可以共享来自物理主机的资源,包括CPU,网络带宽和内存。

虚拟机起源于1960年代早期的计算,当时大型机用户的共享是将软件与物理主机系统分离的一种方式。虚拟机在1970年代初被定义为“真实计算机的高效隔离副本”。

虚拟机在过去15年中获得了发展,因为企业采用服务器虚拟化以更有效地利用其物理服务器的计算能力,从而减少了对物理服务器的需求,从而节省了数据中心的空间。由于具有不同操作系统要求的应用程序可以在单个物理主机上运行,​因此不需要为每个服务器配备不同的服务器硬件。

通常,有两种类型的VM:进程VM(将单个进程分开)和系统VM(将操作系统和应用程序与物理计算机完全分开)。进程VM的示例包括Java虚拟机,.NET Framework和Parrot虚拟机。

系统VM依赖虚拟机管理程序,作为使软件可以访问硬件资源的中介。知名的虚拟机管理程序包括VMware(ESX/ESXi),英特尔/Linux基金会(Xen),Oracle(用于SPARC的MV Server和用于x86的Oracle VM Server)和微软(Hyper-V)。

PC系统也可以利用虚拟机。比如Mac用户在其物理Mac上运行虚拟Windows 10实例。
 

在 《锁类型和加锁原理》 一文中我们说过,一共有四种类型的行锁:记录锁,间隙锁,Next-key 锁和插入意向锁。这四种锁对应的死锁日志各不相同,如下:

  • 记录锁(LOCK_REC_NOT_GAP): lock_mode X locks rec but not gap
  • 间隙锁(LOCK_GAP): lock_mode X locks gap before rec
  • Next-key 锁(LOCK_ORNIDARY): lock_mode X
  • 插入意向锁(LOCK_INSERT_INTENTION): lock_mode X locks gap before rec insert intention

所以,按照死锁日志,我们发现事务一持有了 test.t 表上的记录锁,并且等待另一个记录锁。

通过死锁日志,我们可以找到最终获得锁事务最后执行的 SQL,但是如果该事务执行了多条 SQL,这些信息就可能不够用的啦,我们需要完整的了解该事务所有执行的 SQL语句。这时,我们就需要从 binlog 日志中获取。

binlog的获取和分析

binlog 日志会完整记录事务执行的所有 SQL,借助它,我们就能找到最终获取锁事务所执行的全部 SQL。然后再进行具体的锁冲突分析。

我们可以使用 MySQL 的命令行工具 Mysqlbinlog 远程获取线上数据库的 binlog 日志。具体命令如下所示:
 

其中第一行,tables in use 1 表示有一个表被使用,locked 1 表示有一个表锁。第二行中的 LOCK WAIT 表示事务正在等待锁,3 lock struct(s) 表示该事务的锁链表的长度为 3,每个链表节点代表该事务持有的一个锁结构,包括表锁,记录锁或 autoinc 锁等。heap size 1136 为事务分配的锁堆内存大小。

第二行后半段中,2 row lock(s) 表示当前事务持有的行锁个数,通过遍历上面提到的 11 个锁结构,找出其中类型为 LOCK_REC 的记录数。undo log entries 1 表示当前事务有 1 个 undo log 记录,说明该事务已经更新了 1条记录。

下面就是死锁日志中最为重要的持有或者待获取锁信息,如图中-5和-6行所示,通过它可以分析锁的具体类型和涉及的表,这些信息能辅助你按照系列文章的锁相关的知识来分析 SQL 的锁冲突。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!