记几次面试他人的经历

最近这段时间由于领导没空,让我临时当面试官👀,虽然我也不是什么大牛,但是还算读得起我这4、5年的工作经验吧,记录一下我当面试官的一些经历,可能由于我出的面试题是真正我自己出的,而不是网上copy的那些,导致很多面试者表现不是特别好。出于某些原因,所有人名字均用字母表示。

Continue reading "记几次面试他人的经历"

MySQL 死锁产生的原因和“超卖”现象

死锁其实很好理解,就是两个会话分别在等待对方占有锁的释放。这个概念不仅仅是MySQL数据库中的,计算机中一些资源的占有和释放,都可能会产生死锁。

在MySQL数据库中,举个例子,由于代码设计不当,比如两个事务会话中, 都使用读锁去占有一条数据,但是两个会话却都想更新这条数据,如果是并发请求,则会产生死锁,看以下SQL执行顺序:

begin;
select * from goods_sku where id = 1 in share mode;
update goods_sku set stock = stock - 1 where id = 1 and stock > 0;
commit; 

Continue reading "MySQL 死锁产生的原因和“超卖”现象"

查看Linux服务器的负载

服务器性能指标一般是指CPU、内存、磁盘IO、网络连接等相关信息,下面介绍几个命令用来查看CPU和内存的信息。

w命令

➔ w
 11:37:56 up 639 days, 12:46,  1 user,  load average: 0.33, 0.12, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/3    58.32.4.73       11:25    4.00s  0.18s  0.00s w

第一行:当前时间 启动时长(没有关机和重启),当前用户数量,过去1分钟、5分钟、15分钟前的负载,一般来说,负载的值小于cpu数量*2时,服务器可以流畅运行,当大于这个值时,服务器就有一定压力了。

Continue reading "查看Linux服务器的负载"

编译安装PHP8.0-alpha3

后续

目前发现几个问题:

  1. --with-config-file-scan-dir选项无效,因此无法扫描到/usr/local/etc/php/8.0-alpha/conf.d中的ini文件(在centos7上尝试没有发现这个问题)
  2. 交互式运行无效,/usr/local/opt/php@8.0-alpha/bin/php -a执行后,输出Interactive mode enabled后卡住了,无法输入代码。 (通过指定--with-readline=/usr/local/opt/readline解决)

正文

我写了一系列文章记录我编译安装PHP7.3、PHP7.4的过程,这一次我尝试编译安装PHP8.0,当前PHP8.0处于测试中,请勿直接在您的线上环境使用此版本。

Continue reading "编译安装PHP8.0-alpha3"