课堂 第一次 系统linux

记录一次锁的优化

项目背景 老规矩,先讲讲项目背景。可跳过。 小工具类的微系统。 我们会有一些文本语义描述的事件。譬如某小区两户人家因为宠物发生了争吵,比如某人拨打12345热线反映小区深夜还在跳广场舞等等。这些统称事件。 小学语文老师告诉我们描述事件的叙述文三要素,时间地点人物。 所以我们需要通过NLP从事件里提取 ......

一次k8s docker下.net程序的异常行为dump诊断

背景 昨天,一位朋友找到我寻求帮助。他的项目需要调用一个第三方项目的webAPI。这个webAPI本身可从header, query string中取相关信息,但同事发现他在调用时,无法按期望的那样从query string中传参数给到第三方webAPI (webAPI仿佛忽略了从query str ......
行为 程序 docker dump k8s

公司某资料子系统定期cpu过高的诊断

背景 公司里的某负责保存用户文档的子系统有时会忽然cpu很高,过了大约5分钟后又恢复正常水平。领导协调让我帮看一下 (我心里是: 不熟悉这个子系统里面的代码,我尽力哈😓) 其实确实是这样的,如果熟悉出问题的系统的代码,会对诊断问题起到很大的帮助,否则就需要更多的利用对底层的理解了。 分析 打听后知 ......
子系统 资料 公司 cpu

在Linux上查看活跃线程数与连接数

原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 简介 现如今,有两种常见的软件资源几乎成了Java后端程序的标配,即线程池与连接池,但这些池化资源非常的重要,一旦不够用了,就会导致程序阻塞、性能低下,所以有时我们需要看看它们的使用情况,以判断这里是否是瓶颈。 ......
线程 Linux

票据系统设计

最近做票据系统,在此做一个总结。下面从几个关键点逐一来阐述。 1. 库存 通俗地讲,票据系统的主要功能是出票、买票、卖票。买卖双方之间的交易就形成了票据的流转。这个过程中,票是最关键的元素。票据库存是整个票据系统的核心,所有业务最终都是对库存进行操作。对应有出库、入库操作。 交易类的库存操作是在结算 ......
票据 系统

自己动手从零写桌面操作系统GrapeOS系列教程——9.实模式介绍

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在GrapeOS中会用到2种CPU模式,一种是实模式(real mode),另一种是保护模式(protected mode)。在本教程中,保护模式特指32位保护模式。这两种模式最主要的不同点是对内存地址的访问方式不同,此外还有其它的不同点。这两 ......
桌面 GrapeOS 模式 教程 系统

自己动手从零写桌面操作系统GrapeOS系列教程——11.MBR介绍

学习操作系统原理最好的方法是自己写一个简单的操作系统。 前面我们介绍过电脑的启动过程: 上电->BIOS->MBR(boot)->loader->kernel->交互界面(图形/命令行) 本讲我们要介绍的是MBR(Master Boot Record,主引导记录)。在电脑中对磁盘的读写是按扇区为基本 ......
桌面 GrapeOS 教程 系统 MBR

自己动手从零写桌面操作系统GrapeOS系列教程——8.x86介绍

由于GrapeOS目前只支持x86,所以本讲我们简单的介绍一下x86。 百度百科上是这样介绍的:x86泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构。 中央处理器就是我们平时说的CPU,英文全称是Central Processing Unit。 有人可能对指令集不是很清楚。计算机 ......
桌面 GrapeOS 教程 系统 86

自己动手从零写桌面操作系统GrapeOS系列教程——10.NASM汇编语言

学习操作系统原理最好的方法是自己写一个简单的操作系统。 汇编语法主要有两种:Intel语法和AT&T语法。 由于大部分介绍x86汇编的书籍和资料用的都是Intel语法,毕竟x86就是Intel发明的,大家学过的x86汇编大概率也是Intel语法,所以GrapeOS的汇编也用Intel语法。 支持In ......
桌面 GrapeOS 语言 教程 系统

自己动手从零写桌面操作系统GrapeOS系列教程——12.QEMU+GDB调试

学习操作系统原理最好的方法是自己写一个简单的操作系统。 写程序不免需要调试,写不同的程序调试方式也不同。如果做应用软件开发,相应的程序调试方式是建立在有操作系统支持的基础上的。而我们现在是要开发操作系统,如何调试操作系统的程序呢?如果操作系统程序直接跑在真机上或虚拟机上(比如VirtualBox)是 ......
桌面 GrapeOS 教程 系统 QEMU

自己动手从零写桌面操作系统GrapeOS系列教程——13.向MBR中写入程序

学习操作系统原理最好的方法是自己写一个简单的操作系统。 前面铺垫了这么久,今天终于开始写程序了。本讲将介绍3个逐步深入但非常简单的程序,一方面是让大家熟悉开发流程,另一方面是顺便解决前面遇到的CPU占用率高的问题。 一、mbr1.asm回顾 mbr1.asm的代码之前我们介绍过,这里我们回顾一下代码 ......
桌面 GrapeOS 程序 教程 系统

自己动手从零写桌面操作系统GrapeOS系列教程——14.屏幕显示原理与文本模式

学习操作系统原理最好的方法是自己写一个简单的操作系统。 一、屏幕显示原理 电脑显示器屏幕是由很多很小的像素组成的。每个像素就像是一个小灯泡,在屏幕上一排一排的整齐排列着。只要能控制每个像素的颜色就能显示出各种各样的图形。如果近距离观察过会场或室外的大屏幕会有更直观的感受,这种大屏幕上每个像素就是一个 ......
文本 屏幕 原理 桌面 GrapeOS

自己动手从零写桌面操作系统GrapeOS系列教程——7.计算机组成与运行原理

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在大学计算机课程中会学到一个叫冯·诺依曼结构的东西,很多同学当时学的也不是很清楚,也就是记住冯·诺依曼结构中五个部分的名称,能应付考试。主要原因还是当时大家的计算机知识比较少,的确不好深入理解。 计算机组成与运行原理和冯·诺依曼结构密切相关,今 ......
原理 桌面 GrapeOS 计算机 教程

自己动手从零写桌面操作系统GrapeOS系列教程——15.用汇编向屏幕输出字符

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在上一讲中我们介绍了屏幕显示的原理,本讲我们来实战一下。 一、向屏幕输出一个字符mbr4.asm mbr4.asm中的代码如下: ;将屏幕第一行的第一个字符显示为‘G’。 mov ah,0x07 ;黑底白字 mov al,'G' ;G的ASCI ......
用汇 字符 屏幕 桌面 GrapeOS

linux系统安装MySQL服务,详细图文教程

注:linux系统在安装操作系统时,如果选择了开发工具和兼容库后,一般默认都会安装MySQL服务的部分程序包。如果我们要自定义的安装全新的MySQL服务,就必须先把这些已经安装的程序包都卸载掉。否则,后面这些程序包会给我们带来很多麻烦。 1、查看系统里是否有安装MySQL相关的程序包。 rpm -q ......
图文 教程 系统 linux MySQL

如何设计一个最简化的推荐系统

互联网时代,数据呈爆炸式增长,前所未有的数据量远远超过受众的接收和处理能力,因此,从海量复杂数据中有效获取关键性有用信息成为必须解决的问题。 面对信息过载问题,人们迫切需要一种高效的信息过滤系统,“推荐系统”应运而生。 20世纪90年代以来,尽管推荐系统在理论、方法和应用方面取得了系列重要进展,但数... ......
系统

自己动手从零写桌面操作系统GrapeOS系列教程——6.电脑启动过程介绍

学习操作系统原理最好的方法是自己写一个简单的操作系统。 按一下电脑上的电源按钮,电脑就启动了,不一会儿电脑屏幕上就出现了登录界面或直接进入了桌面。 这是一个很日常的场景,但有时候会有个疑问:电脑内部是如何启动的?本讲我们就简单的介绍一下。 因为本教程属于入门型,不考虑UEFI等比较新的技术,但不影响 ......
桌面 过程 GrapeOS 教程 系统

容灾恢复 | 记一次K8S集群中etcd数据快照的备份恢复实践

描述:在 Kubernetes 集群中所有操作的资源数据都是存储在 etcd 数据库上, 所以防止集群节点瘫痪未正常工作或在集群迁移时,以及在出现异常的情况下能尽快的恢复集群数据,则我们需要定期针对etcd集群数据进行相应的容灾操作。 在K8S集群中或者Docker环境中,我们可以非常方便的针对 ... ......
快照 集群 备份 数据 etcd

深入理解计算机系统(CSAPP)bomblab实验进阶之nuclearlab——详细题解

前言 本实验是难度高于bomblab的一个补充实验,该实验部分题目难度已经达到CTF入门水平,且这个实验据说是上一届的某个学长原创,因此互联网上几乎找不到类似的题目。在间断地思考了几周后我最终完成了所有题目,并打算在这篇随笔里详细地给大家分享我的解题过程。 核弹样本(可本地断网运行):https:/ ......
题解 nuclearlab bomblab 计算机 系统

THM-Linux提权-权限升级

特权升级是一段旅程。没有灵丹妙药,很大程度上取决于目标系统的具体配置。内核版本、已安装的应用程序、支持的编程语言、其他用户的密码是影响您通往 root shell 之路的几个关键因素 什么是特权升级? 其核心是,特权升级通常涉及从权限较低的帐户到权限较高的帐户。从技术上讲,它是利用操作系统或应用程序 ......
THM-Linux 权限 Linux THM

SpringCloud微服务实战——搭建企业级开发框架(五十):集成移动端推送功能的系统通知公告数据库设计

系统的通知公告功能似乎是很容易被忽略的功能模块,在传统的软件系统中,一般OA类软件系统不可或缺,而在应用软件系统中此功能或有或无,在现在大多数的互联网软件系统中,此功能又必不可缺。所以,在框架设计时,我们需要考虑业务系统是否需要此功能模块,然后将此功能作为扩展插件,在需要时开启,在不需要时配置关闭即 ......

【CTO变形记】整体系统思维-从现象到本质

前言:我们的⼤脑⾥的认知不是⼀块⽩板,⽽是写满着密密麻麻对这个世界形成的各种观念、信念。塞满了对事物的各个表象,我们脑中的表象世界,对应着外部世界的各种事物。 如果感觉本篇看起来有点不适应,可以看看之前的几篇,再回来这边: 【CTO变形记】驱动力的选择 【CTO变形记】有序定无序—为什么越努力,越无 ......
变形记 本质 思维 整体 现象

推荐一款.Net Core开发的后台管理系统YiShaAdmin

若依(RuoYi)是码云上一款精美的开源快速开发平台,作者毫无保留给个人及企业免费使用。RuoYi目前有三个版本:普通版本(RuoYi)、前后端分离版本(RuoYi-Vue)、微服务版本(RuoYi-Cloud)。.net的小伙伴们估计很羡慕JAVA的生态,现在.net core发展也很快,奈何生态 ......
YiShaAdmin 后台 管理系统 系统 Core

解密游戏推荐系统的建设之路

本文从零开始介绍了游戏推荐项目的发展历程,阐述了大型项目建设中遇到的业务与架构问题以及开发工程师们的解决方案,描绘了游戏推荐项目的特点以及业务发展方向,有着较好的参考与借鉴意义。 ......
游戏推荐 系统

vivo 自研Jenkins资源调度系统设计与实践

本文从目前业界实现Jenkins的高可用的实现方案,分析各方案的优缺点,引入vivo目前使用的Jenkins高可用方案,以及目前Jenkins资源的调度方案的设计实践和目前的落地运行效果。 ......
Jenkins 系统 资源 vivo

推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计

推荐可分为以下四个流程,分别是召回、粗排、精排以及重排: 1. 召回是源头,在某种意义上决定着整个推荐的天花板; 2. 粗排是初筛,一般不会上复杂模型; 3. 精排是整个推荐环节的重中之重,在特征和模型上都会做的比较复杂; 4. 重排,一般是做打散或满足业务运营的特定强插需求,同样不会使用复杂模型... ......
系统 算法 全民 架构 音乐

推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】

推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】 ......
算法 实战 行为 个性 用户

Linux命令-用户、权限管理

Linux命令-用户、权限管理 用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。 Unix/Linux系统中的root账号通常用于系统的 ......
命令 权限 用户 Linux

这一次,Python 真的有望告别 GIL 锁了?

Python 中有一把著名的锁——全局解释器锁(Global Interpreter Lock,简写 GIL),它的作用是防止多个本地线程同时执行 Python 字节码,这会导致 Python 无法实现真正的多线程执行。(注:本文中 Python 解释器特指 CPython) 这把锁在 Python ......
Python GIL

linux 基础(10)进程管理

使用 ps 观察程序 ps -l ps程序可以查询当前在运行的进程信息。ps -l可以列出详细的信息,默认仅列出当前 bash 相关的进程。 sudo -i ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 2133 2 ......
进程 基础 linux