关于 0.5% 的刷课党,这里有五组数据

两年前这个公众号做过一篇特稿,分析了“公开渠道的教务系统 2016 年 1 月选课期间的一些日志”。写那篇文章让我直面了刷课这个事情,还意外地小小采(tiao)访(xi)了下某个同学。

两年过去,变化还是挺大的。比如,我校教务处终于把新的教务系统完整上线了。还比如,自从上个月新教务系统第一次选课开始,更多的人听说了“刷课”这个词。已经不需要抢课的我,只听说了这次选课期间有人卖课啥的。虽然实际上可能并没这么“道德沦丧”,但大家对这个行为的不齿,是多了一些。

我好奇的是,为啥 2018 年的刷课行业发展成这样子了?新的教务系统并没有可以从公开渠道获取的日志,不过从旧教务系统里看过去几年的趋势,还是可以的。于是这次我使用 Elastic Stack 处理了更大跨度的数据(灌数据进去挺折腾的,不过非常高效),从 2014 到 2017 年选课期间的本科选课操作日志中,得到了下面的一些数据。(以下数据均来自旧教务系统,下简称“教务系统”)

如果太长不想看,这是五组数据的梗概:

一. 大二到大三、2016 至今,进入刷课频道:2017 年暑假 2015 级选课期间操作次数人均 496 次,创了记录。
二. “刷课”一直是少数,但这 0.5% 的玩家越来越多:四年来用户操作次数中位数保持在 50 - 65 之间,刷课的人数成倍增加,在 2017 年寒假达到顶峰。
三. 教务系统的压力从来不小,峰值 QPS 95,大多因为“人多”:选课第一天明明不用抢也是挤爆,卡起来就是死 10 秒钟又闪现 20 秒的体验。
四. 单用户刷课平均每秒 17 次,问你怕不怕:靠刷课党们一“己”之力,还是可以把教务系统搞慢的,最疯狂的人连续一分钟操作 1060 次。
五. 午夜档的热闹从第二阶段开始,刷课党也就个位数:如 2017 年暑假第二阶段的第一场午夜档 218 人参加,其中操作频率极高的也就 5 个人。

一. 大二到大三、2016 至今,进入刷课频道

按年级绘图的选课期间人均操作次数,年级指选课时的目标学期,年份为入学年份

先看看每个人选课有关的操作次数的年级平均值。很明显,人进入大二之后,大家开始意识到选课没那么容易,选课操作次数的增加体现出了焦虑感。到了大三,2013 级和以前是下降的趋势,而 2014 级开始,不知是技术增强了还是啥情况,操作次数越来越多,直到大四才回归平静。

按年份绘图的选课期间年级人均操作次数,年份+时间指选课时间,纯年份为入学年份

把线平移一下,改改坐标轴,2016 年成为了刷课次数增加的关键之年。这个图里 2015 级的选课次数冲出了天际,2017 年的两次选课人均 469、496 次,跟 2014 级的最高纪录 318 次相比,真是要冲破天花板了(顺便提示一下 Y 轴是指数坐标轴,所以差距看起来似乎不大)。

二. “刷课”一直是少数,但这 0.5% 的玩家越来越多

提到刷课这个词,大家通常会想到那种技术宅,通过代码达到普通人达不到的手速和耐心。最初我并不敢这么想,毕竟只要有耐心,刷上几百次也很正常嘛,这样的有罪推定还是挺不靠谱的。然而两年前看过具体的日志之后,我对当时选课期间操作超过 5000 次的用户的结论是:

有的是用类似浏览器自动刷新的方法在辅助操作,有的是每秒钟成功刷新五六次(还让不让人活了),最厉害的呢,从下午开始连续刷新了 7 个小时,肯定是开了挂(我就不信您不吃晚饭)。

这些年过来,刷课的人数变多了吗?通过对每次选课的选课操作次数的人均分布统计,结论见下。

曲线为每次选课中每人操作次数分布情况(Y 轴为累计百分数),条形图为每次选课中选课操作最多的人的操作次数

把图做完之后我还蛮意外的,曲线统一的形状让我一度以为自己算错了。然后我在 Access 里折腾了好久把中位数算出来,都在 50 - 65 之间,所以应该没错。

图的结论就是,这么多年,选课次数分布没有大的变化,但刷课顶峰值是一年比一年高,尤其从 2016 年暑假那次选课开始。结合第一节的图,2017 暑的回落可能的原因是 2014 级变成大四老油条了,和 2016 级迷之不抢课、选课次数减少。再次提示,这回 X 轴是指数坐标轴。

曲线为每次选课中每人操作次数分布情况(Y 轴为累计百分数),条形图为超过 5000 次操作的人数

再仔细看看顶峰 3% 的三五百人。两年前的“5000 次操作就是刷课”的假设暂且可以沿用下来,因为这部分人数保持在占全体 0.5% 以内。随着年份推进,刷课的人数成倍增加,尤其在 2017 寒达到顶峰。至于说 2018 寒的情况,这里没有数据,不过我猜是少不下来了。

三. 教务系统的压力从来不小,峰值 QPS 95,大多因为“人多”

刷课对教务系统会有多大影响呢?虽然有些不控制频率的刷课行为是很不好的(我方表示强烈谴责),然而目前教务系统的主要压力还是来自“人多”。

各选课阶段中粗略统计的最高 QPS

先介绍一个指标 QPS (Queries Per Second),也就是每秒钟服务器处理的请求数。采用了新的统计工具之后,我终于能快速地从日志中观察这个指标了。

1.1 和 1.2 是第一阶段的两个小阶段,分别进行一次抽签,选课没有先后。2 阶段是先到先得,3 阶段是退换课,也是先到先得。刷课是第 2、3 阶段会出现的。

从表里可以看到,选课刚开始的 1.1 阶段人是最多的(14 寒那个不知道是什么鬼情况)。明明是抽签,登录系统选课并没有先后,但开放选课的第一天就是容易挤爆门。然后旧教务系统的 QPS 极限大概就是 95 了。当然 2017 年寒假第 2 阶段的爆炸挺反常,那一分钟服务器只接待了 12 人,跟之前 200+ 的水平差距太多。看来区区几个人还是有能力把系统刷爆的,我们待会看。

从日志就可以感受到人最多的时候,那种服务器的卡顿,就是死个 10 秒钟又闪现 20 秒的体验。

2016 年寒假 1.1 阶段第一天某时段的请求数曲线,Y 轴为每秒请求数

最糟的莫过于整台服务器“挂了”,就是连续一两分钟服务器都没反应那种。2016 年寒假开放选课第一天,这种情况就出现了三次。

2016 年寒假开放选课第一天的三次低谷,Y 轴为每分钟请求数

四. 单用户刷课平均每秒 17 次,问你怕不怕?

刚才提到 2017 年寒假第 2 阶段的疯狂,究竟是怎么一回事呢,今天让我们走近科学(误)。

2017 年寒假第一、二阶段分年级每小时操作次数曲线

先看上面这个图的高峰时段。1.1 阶段第一天的高峰,主要集中在 10 点和
12 点两拨,基本上可以看出各年级的上课时间(和上课专心程度)。1.1 和 1.2 阶段之间的高峰,主要是因为教务系统抽签结果通常会提前发布、大家迫不及待想知道选上课了没。

回到我们关注的第 2 阶段。还是要接着解释一下曲线,顺便对比一下的。

  • 大一青色曲线的高峰出现在 11 号 17:57,也就是快要开始第二阶段的时候。可以认为是大量萌新出来捡漏。
  • 大二红色曲线可就厉害了,几个非常诡异的顶峰出现在 13 号的白天。最顶峰在当天晚上 9 点左右,基本可以认定是他们把教务系统推到了 QPS 90 的高度
  • 大三黄色的顶峰出现在 13 号 0 点。这是学长学姐熬夜比较强的意思吗。
  • 大四黑色冒出来的那 15 个小时只有一个人操作频繁。我看了下,是个法学院的妹子……

具体看 13 号晚上 8:00 - 9:30 的数据。每分钟操作频率超过 60 次的朋友有 7 位,其中 6 位是大二。他们分别来自软院、法学、机车、数院(这里不跟上次一样挂人了,没意思)。其中最疯狂的朋友在连续的一分钟内刷新了 1060 次,也就是平均每秒 17 次,让我大开眼界。原来靠他们一己之力,还是可以把教务系统搞慢的。

于是在 21:13:20, 教务系统的 QPS 达到 90 之后又坚持了 20 秒,终于撑不住歇了一会。

2017 年 1 月 13 日 21:13 教务系统每秒访问次数曲线,红线为 QPS 90 时刻

五. 午夜档的热闹从第二阶段开始,刷课党也就个位数

2017 年暑假第二阶段操作次数曲线,Y 轴单位 次/半小时

从 2016 年暑假选课开始,午夜档剧场就开始热播了。这时候,午夜档还只在第二阶段最后一天凌晨开播。而到了 2017 年寒假,午夜档从第二阶段开始连播三天(最后一天人少得很)。上面这图是 2017 年暑假的午夜档,也是从第二阶段开始连播两天,最后一天就散场了。

2017 年 8 月 26 日每小时操作次数和在线用户数

基本上,都是第一场午夜档最热闹。比如上面这图,2017 年暑假第二阶段的第一场,218 人参加,不过显然大部分人还是看热闹,还没坚持到 2 点就睡着了。2:00 - 6:59 参加的有 45 人,不过每个小时最多就 17 个人,开个小厅给他们就足够了,因为不少人还会出去看看月亮,找个地方静静。而这四十多人里,操作频率极高的也就 5 个人,整场下来上万次吆喝,对他们来说是再正常不过了。

好多人想趁第 2 阶段换课啥的,在这种情况下似乎挑午夜档也并不保险,操作需要智慧,也需要运气。当然新教务系统是个什么情况我就不知道了。

结语

看完数据,感觉刷课的人还是那么少,虽然数量在增加,但“少数”这个性质没变。可能人数变多了,接着有人得瑟起来之后,大家就都知道这种不齿的行为了。

写这种文章还是得站个队的。两年前写完那篇特稿之后的下一次选课,我用了不到 100 行代码,捡了一门别人的退课(上过课才知道为啥他们退课),说起来也不是那么光彩。不过我的观点依然跟两年前一样,所以直接引用之前写过的话好了:

教务系统没有对刷新频率做限制,这个是很不好的做法。但这也不意味着说,一个网站亦或系统的用户,可以采用非正常的方法,一秒钟连续刷新页面好多次,无端地增加系统负荷,这叫做“滥用”。想彻底避免道德问题,还是得用技术方法来解决。

这个事情,跟抢火车票差不多的道理。技术可以代替人的重复劳动,从对信息的了解和技术的掌握而言,“抢”这个规则本身还是存在不公平的。从反制的角度说,技术可以解决一部分问题,但更重要的是制定规则,这样之后,刷课技术的加成导致的落差就没那么悬殊了。

转过头想,似乎管选课这个事情还是挺难的,难在要面对其他人的态度。或许这就是社会主义初级阶段吧。

本文采用知识共享“署名-非商业性使用 4.0”许可协议授权,如需额外授权请与本人联系。本文的 1 次修改记录主要是润色句子,基本数据不变。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,176评论 5 469
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,190评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,232评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,953评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,879评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,177评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,626评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,295评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,436评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,365评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,414评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,096评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,685评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,771评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,987评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,438评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,032评论 2 341

推荐阅读更多精彩内容

  • 我来美国留学一年多了,关于中国高等教育与美国高等教育对比,我脑海中是无时无刻不在进行,这趟回国,趁着飞机上的空闲,...
    SpringSun阅读 1,221评论 2 11
  • 某天在群里和人聊天,说起老电影,小姑娘们几乎没人知道这部。 再翻出来看的时候,还是会震撼。好的作品,从来不会死在时...
    宋晚蓝阅读 470评论 0 0
  • 在大理的最后一天,晚上六点多的飞机。如果去苍山就要早起,我是一定起不来的。思彤说,就去寂照庵逛逛吧,很特别的一个地...
    小企鹅的只言片语阅读 1,179评论 5 8