- 博客(628)
- 资源 (38)
- 收藏
- 关注
原创 河北省理科2001——2010年一分一档表
VirtualBox.bat:C:cd "\Program Files\Oracle\VirtualBox"VBoxManage startvm "CentOS-6.5" --type headless
2021-07-25 08:51:17 13760 1
原创 nginx lua修改请求体然后转发
nginx配置: location / { rewrite_by_lua_file /xxx/yyy.lua; proxy_http_version 1.1; proxy_pass http://127.0.0.1:8102; proxy_set_header Host 127.0.0.1:8102; proxy_set_head
2021-07-22 15:16:12 2124 3
转载 避免线上故障的10条建议
背景没用的不多说了,这10条建议条条都是血泪的教训。内容1、谨慎大切面引发问题示例:之前有次故障,因为一个大切面里包含了一个无界队列,直接out of memory了。原理和最佳实践:1>自定义切面时,要注意切面所占用的资源和耗时。如果切面包含外部调用等操作,前后一定要打日志。2>业务逻辑代码不建议catch(Throwable),因为针对系统的Error,人工处理的原则很难把控,但是切面是例外。切面建议catch(Throwable),不要因为切面问题影响正
2021-07-07 22:30:54 130
原创 gin框架基于cookie的登录验证中间件
cookie_auth.go:// Copyright 2014 Manu Martinez-Almeida. All rights reserved.// Use of this source code is governed by a MIT style// license that can be found in the LICENSE file.package middlewareimport ( "crypto/md5" "encoding/base64" "fmt"
2021-07-07 22:28:10 1078 1
转载 Go: GC 是怎样监听你的应用的?
Illustration created for “A Journey With Go”, made from the original Go Gopher, created by Renee French.这篇文章是基于 Go 的 1.13 版本Go 语言的垃圾收集器 (下文简称 GC )能够帮助到开发者,通过自动地释放掉一些程序中不再需要使用的内存。但是,跟踪并清理掉这些内存也可能影响我们程序的性能。Go 语言的 GC 旨在实现 这些目标[1] 并且关注如下几个问题: 当程序被终止..
2021-06-25 20:25:18 205
转载 【实时性迷思】CPU究竟跑的有多快?
Editor's Note大家都听过"中断服务程序应写的尽可能短",那么到底该多短呢?本篇文章会让你有个直观的认识。【说在前面的话】相对人的感官来说CPU跑的太快了——即便是人们常常用来描述时间短暂的“一眨眼功夫”对CPU来说也是及其“漫长”的好几百毫秒了——仔细想想有几个人能在一秒钟内连续眨十次眼睛呢?正因为如此,即便是超级循环里面顺次执行的多个任务,在人类看来也往往是“一瞬间就执行完了”。那么CPU究竟跑的有多快呢?是很快、非常快还是快得不得了?如果我们继续站在人类的视角考虑这个问题,其抽象
2021-06-25 20:23:15 327
转载 再见Docker,8款容器替代方案
Docker诞生于2013年,并普及了容器的概念,以至于大多数人仍然将容器的概念等同于“Docker容器”。作为第一个吃螃蟹的人,Docker设置了新加入者必须遵守的标准。例如,Docker有一个大型系统镜像库。所有的替代方案都必须使用相同的镜像格式,同时试图改变Docker所基于的整个堆栈的一个或多个部分。在此期间,出现了新的容器标准,容器生态系统朝着不同方向发展。现在除了Docker之外,还有很多方法可以使用容器。在本文中,我们将介绍以下内容: 将Chroot、cgro
2021-06-25 20:21:10 4999
转载 一封来自 1985 年程序员的辞职信
出品 | CSDN(ID:CSDNnews)你想知道三十多年前的程序员是怎样的吗?最近在 Hacker News 上有一则帖子引来了许多讨论:一封来自 1985 年的程序员辞职信。据这则帖子的分享者 @systems_glitch 介绍,这封辞职信是 Ta 从运行 CP/M 的 S-100 系统上的 8 英寸软盘中所恢复的:“首先,我修复了 S-100 系统,然后使用带有 8 英寸驱动器和 ImageDisk 的 PC 在浏览其内容之前将所有软盘存档。然后为了从系统中获取单个文件(而不
2021-06-25 20:18:51 89
转载 我在阿里是怎么工作的——写在阿里入职两周年
作者:这是你的玩具车吗juejin.cn/post/6973483540906246152周年总结的方式不错——除了自身的思考总结以外,去年写的阿里入职一周年总结,到现在都还会时不时有同学点赞,这给这件事增添了不小的附加值。而今,我已经入职两周年啦!在过去的一年里,得益于公司的熏陶和自己职责的变化(从自己干到实线带人干),我总结和沉淀了对我影响最大的几条Tips,在这里分享给大家,希望也能给大家带来帮助。1. 明确自身的定位我记得刚进入公司的时候,有小伙伴告诉我一个故事:一个P8大佬在升
2021-06-25 20:17:34 278
转载 Jim Keller:在指令集上辩论是一件悲哀的事情
在半导体设计领域, Jim Keller的名字如雷贯耳,不仅仅是因为他参与或领导的大型成功项目的数量,而且这些项目都为各自的公司创造了数十亿美元的收入。他的职业生涯横跨 DEC、AMD、SiByte、Broadcom、PA Semi、Apple、AMD(再次)、Tesla、Intel,现在他在 Tenstorrent 担任首席技术官,开发下一代可扩展的 AI 硬件。吉姆的职业准则(work ethic )经常被描述为“享受挑战”,最近,这意味着致力于当今最激动人心的半导体方向,要么是高性能计算,要么
2021-06-25 20:15:56 927
转载 Cgroup学习和memory-subsystem基本用法
Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。这个项目最早是由Google的工程师在2006年发起(主要是Paul Menage和Rohit Seth),最早的名称为进程容器(process containers)。在2007年时,因为在Linux内核中,容器(container)这个名词太过广泛,为避免混乱,被重命名为cgroup,并且被合并到2.6.24版的内核中去。然后,开..
2021-06-25 20:12:02 833
转载 Go避坑指南:这些错误你犯过吗?
虽然 Go 容易学习,但新手还是比较容易犯一些错误的。本文总结了 5 个常见的错误,你检验下自己犯过没有?!1、循环内部有几种方法可以弄清楚一个循环内的混乱情况。1.1、使用引用来循环迭代器变量出于效率考虑,经常使用单个变量来循环迭代器。由于在每次循环迭代中会有不同的值,有些时候这会导致未知的行为。例如:in:=[]int{1,2,3}varout[]*intfor_,v:=rangein{out=append(out,&v)}f...
2021-06-25 20:09:24 179
转载 作为容器底层技术的半壁江山, cgroup如何突破并发创建瓶颈?
作者 /陶义、陈善佩、宋卓编辑 /芹菜出品 /云巅论剑写在前面cgroup 作为容器底层技术的半壁江山,很多文章已经介绍并总结得很好了,关于 cgroup 是什么、有什么用以及一些相关概念,这些内容并不是本文的重点所以也将不再赘述。大家如有兴趣,可以搜索各路技术文章了解或直接参考官方文档[1]。友情提醒:以下内容默认读者已经初步了解 task、cgroup、subsys、hierarchy 是什么及它们之间的关系。我们为啥关注 cgroup 控制平面性能?云原生目前是...
2021-06-25 20:07:30 123
转载 Golang 中 nil==nil 是对是错?
这篇文章,我们将了解如何在 Go 中使用 == 操作符比较对象值。我们还将进一步研究某些场景下,该操作符的行为看起来像是一个错误,可实际是因为缺乏理解导致的。看看下面的例子。 var a *string = nil var b interface{} = afmt.Println("a == nil:", a == nil) // true fmt.Println("b == nil:", b == nil) // false fmt.Println("a==b...
2021-05-27 16:48:34 485
转载 在 Go 语言中,有时 nil 并不是一个 nil
在官方 Go FAQ[1]看到这一条。首先,作为一个小小的 Go 语言测验,看看您是否在 Go playground 中运行该程序之前就能推断出它应该打印出的内容(我已经将程序放在侧边栏中,以防它在 Go playground 上消失)。该程序的关键代码是:typefakestruct{io.Writer}funcfred(loggerio.Writer){iflogger!=nil{logger.Write([]byte("..."))...
2021-05-27 16:47:34 334
转载 优化 Golang 服务来减少 40% 以上的 CPU
十年前,谷歌正在面临一个由 C++ 编译时间过长所造成的严重瓶颈,并且需要一个全新的方式来解决这个问题。谷歌的工程师们通过创造了一种新的被称作 Go (又名 Golang)的语言来应对挑战。这个新语言 Go 带来了 C++ 最好的部分(最主要的是它的性能和稳定性),又与 Python 的速度相结合,使得 Go 能够在实现并发的同时快速地使用多核心。在 Coralogix(Go语言中文网译注:一个提供全面日志分析的服务产品,官网[1]),我们为了去给我们的客户提供关于他们日志实时的分析、警报和元数据,要去
2021-05-27 16:45:43 491
转载 你真的理解内存分配吗?
内存是计算机中必不可少的资源,因为 CPU 只能直接读取内存中的数据,所以当 CPU 需要读取外部设备(如硬盘)的数据时,必须先把数据加载到内存中。我们来看看可爱的内存长什么样子的吧,如图1所示:一、内存申请通常使用高级语言(如Go、Java 或 Python 等)都不需要自己管理内存(因为有垃圾回收机制),但 C/C++ 程序员就经常要与内存打交道。当我们使用 C/C++ 编写程序时,如果需要使用内存,就必须先调用 malloc 函数来申请一块内存。但是,malloc 真的是申请了内存
2021-05-27 16:43:48 122
转载 epoll 能监听普通文件吗?
epoll 是 Linux 系统中常用的多路复用 I/O 组件,一般用于监听 socket 是否能够进行 I/O 操作。那么,epoll 能监听普通文件吗?我们先通过下面的例子来验证一下,epoll 能不能监听普通文件: 1#include<stdio.h> 2#include<sys/epoll.h> 3#include<fcntl.h> 4 5intmain() 6{ 7intepfd,fd; 8structepoll...
2021-05-27 16:41:37 357
转载 0和1的艺术,与、或、非基本逻辑门电路
上回我们说到pn结,在pn结两端连接上导线就变成二极管。二极管是p型半导体和n型半导体结合而成,三极管就是p型+n型+p型,或者n型+p型+n型,简称pnp型或者npn型半导体。每一个半导体区域都有一个引脚端接出。pn结或者说二极管外加正向电压可以导电,外加反向电压就不导电,高低电位这两种状态正好对应了二进制中的1和0。这节课,我们一起简单看一下利用二极管和三极管组成的基本逻辑门电路。◉ 三极管首先看一下三极管的特性。左边就是三极管的结构。右边是三极管的电路符号。E表示发射极(Emitter)、
2021-05-27 16:39:42 3465
原创 windows下虚拟机中编译golang太慢
在windows下的vmware中或wsl中开发,编译golang的时间都很长,后来发现是由于在虚拟机或wsl中使用的编译目录是/mnt/d/下的windows文件夹,虚拟机使用这样的文件时读写速度都很慢,但是为了和windows下的IDE共享源代码文件也只能这样,解决办法就是把除源代码目录之外的编译涉及的文件采用虚拟机自身的文件。比如在虚拟机中对golang的环境变量做如下修改:#export GOCACHE=/mnt/d/devenv/gocacheexport GOCACHE=/tmp/.
2021-05-14 15:15:40 1444
原创 php7.1.12的yaf版本
在php7.1.12下尝试了多个yaf版本,都有不同的问题,如:[12-May-2021 13:00:03] WARNING: [pool www] child 1740 exited on signal 6 (SIGABRT) after 777.775952 seconds from start或[12-May-2021 16:20:12] WARNING: [pool www] child 105667 exited on signal 11 (SIGSEGV) after 104.663
2021-05-12 17:26:03 305
转载 这六个 MySQL 死锁案例,能让你理解死锁的原因!
最近总结了一波死锁问题,和大家分享一下,我这也是从网上各种浏览博客得来。Mysql 锁类型和加锁分析MySQL有三种锁的级别:页级、表级、行级。表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度算法: next KeyLocks锁,同时锁住记录(数据),并...
2021-05-08 17:27:33 113
转载 为什么 Google 和 Facebook 不用 Docker
本文涉及的所有技术细节都可以在开源软件和论文中找到。写作本文的起因是我想让修改后的分布式 PyTorch 程序能更快的在 Facebook 的集群上启动。探索过程很有趣。也展示了工业机器学习需要的知识体系。2007 年我刚毕业后在 Google 工作过三年。当时觉得分布式操作系统 Borg 真好用。从 2010 年离开 Google 之后就一直盼着它开源,直到 Kubernetes 的出现。Kubernetes 调度的计算单元是 containers(准确的翻译是“集装箱”,而不是意思泛泛.
2021-05-08 12:31:45 101
转载 VFIO(Virtual Function IO)研究
VFIO的全称是Virtual Function IO,但这个名字并不能反应它的特点,以下两个假名字更能反应VFIO的特点: VeryFastIO 由于VFIO是将设备直接透传给虚拟机,所以Guest中与该设备相关的IO性能会大幅提高,接近native性能. VersatileFramework for userspaceIO 这个名字反映了VFIO的功能,即能够将device安全地映射到用户空间,使用户能够对device进行操作.研究目的研究利用-device vfio...
2021-05-08 12:22:52 488
转载 深度剖析 Go 的 nil
The following article is from 奇伢云存储 Author 奇伢前几天有小伙伴问我说,golang 里面很多类型使用 nil 来赋值和做条件判断,总是混淆记不住。你可能见过:: 很多文章和书会教你:Go 语言默认定义的类型赋值会被 nil; error 返回值经常用 return nil 的写法; 多种类型都可以使用 if 是否 != nil; 上面的事情在 Go 编程里随处可见,下面思考几个问题,看自己对 nil 这个知识点是否做到了知.
2021-05-08 12:18:46 2079
转载 为了加快速度,Redis都做了哪些“变态”设计
作者| 双子孤狼来源 | https://www.cnblogs.com/lonely-wolf/p/14290336.html前言列表对象是Redis中5种基础数据类型之一,在Redis 3.2版本之前,列表对象底层存储结构有两种:linkedlist(双端列表)和ziplist(压缩列表),而在Redis 3.2版本之后,列表对象底层存储结构只有一种:quicklist(快速列表),难道通过精心设计的ziplist最终被Redis抛弃了吗?列表对象同字...
2021-05-08 12:13:42 78
转载 内存耗尽后Redis会发生什么
前言作为一台服务器来说,内存并不是无限的,所以总会存在内存耗尽的情况,那么当Redis服务器的内存耗尽后,如果继续执行请求命令,Redis会如何处理呢?内存回收使用Redis服务时,很多情况下某些键值对只会在特定的时间内有效,为了防止这种类型的数据一直占有内存,我们可以给键值对设置有效期。Redis中可以通过4个独立的命令来给一个键设置过期时间: expire key ttl:将key值的过期时间设置为ttl秒。 pexpire key ttl:将key...
2021-05-08 12:11:22 161
转载 一文带你解密 Go 语言之通道 channel
今天这篇文章主要是针对 Go channel 的重点分析,一开始写的时候以为范围不会太大,但洋洋洒洒还是写破了万字,成为了一篇覆盖面较广和有一定深度的长文分析。大家觉得不错的话,欢迎关注煎鱼和三连一波 ✍️。接下来和煎鱼一起正式开始 Go channel 的学习之旅!Go 语言中的一大利器那就是能够非常方便的使用 go 关键字来进行各种并发,而并发后又必然会涉及通信。Channel 自然而然就成为了 Go 语言开发者中必须要明白明了的一个 “东西” 了,更别提实际工程应用和日常面试.
2021-04-20 17:55:27 491
转载 理解协程的实现
glibc提供了四个函数给用户实现上下文的切换。intgetcontext(ucontext_t*ucp);intsetcontext(constucontext_t*ucp);voidmakecontext(ucontext_t*ucp,void(*func)(),intargc,...);intswapcontext(ucontext_t*oucp,constucontext_t*ucp);glibc提高的功能类似早期setjmp和longjmp。本质...
2021-04-16 17:35:15 246
转载 深入理解 Cilium 的 eBPF 收发包路径
译者序本文翻译自 2019 年 DigitalOcean 的工程师 Nate Sweet 在 KubeCon 的一篇分享: Understanding (and Troubleshooting) the eBPF Datapath in Cilium 。由于译者水平有限,本文不免存在遗漏或错误之处。如有疑问,请查阅原文。1 为什么要关注 eBPF?1.1 网络成为瓶颈大家已经知道网络成为瓶颈,但我是从下面这个角度考虑的:近些年业界使用网络的方式 ,使其成为瓶颈(it is the .
2021-04-16 17:30:34 941
转载 深度:关于Linux内核最硬核的文章
来源 :头条号@Linux学习教程,冰凌块儿01前言本文主要讲解什么是Linux内核,以及通过多张图片展示Linux内核的作用与功能,以便于读者能快速理解什么是Linux内核,能看懂Linux内核。拥有超过1300万行的代码,Linux内核是世界上最大的开源项目之一,但是内核是什么,它用于什么?02什么是内核内核是与计算机硬件接口的易替换软件的最低级别。它负责将所有以“用户模式”运行的应用程序连接到物理硬件,并允许称为服务器的进程...
2021-04-16 17:28:27 134
转载 SOFA-DTX 分布式事务的设计演进路线
小蚂蚁说: 本文介绍了蚂蚁金服在分布式事务上,经过多年发展,服务于内外部大量不同业务,沉淀出的一整套包含TCC、FMT、XA模型的分布式事务解决方案。并且在持续对外输出的过程中,进一步打磨产品体验,适应各种严苛的金融级场景和机构需求,比如跨机房跨地域的容灾业务连续性保障能力等。 移除点击此处添加图片说明文字 随着互联网技术快速发展,数据规模增大,采用分布式数据库或者跨多个数据库的分布式微服务应用在中大规模企业普遍存在,而由于网络、机器等不可靠因素,数据一致性的问题很容易出现,与可...
2021-04-16 17:21:37 499
转载 分布式事务之TCC服务设计和实现注意事项
绍辉 2018-07-11 19:47:361、TCC简介TCC是一种比较成熟的分布式事务解决方案,可用于解决跨库操作的数据一致性问题;TCC是服务化的两阶段编程模型,其Try、Confirm、Cancel 3个方法均由业务编码实现;其中Try操作作为一阶段,负责资源的检查和预留,Confirm操作作为二阶段提交操作,执行真正的业务,Cancel是预留资源的取消;如下图所示,业务实现TCC服务之后,该TCC服务将作为分布式事务的其中一个资源,参与到整个分布式事务中;事务管理器分2阶段协调
2021-04-16 17:20:13 117
转载 12 Best Custom ROMs for Android You Can Install
Pixel Experience LineageOS Evolution X Corvus OS Revenge OS Havoc-OS Arrow OS Bliss ROM Project Sakura MSM Extended crDroid Paranoid Android
2021-04-16 17:16:19 227
转载 小小的 float,藏着大大的学问
前言今天,我们来思考几个问题: 为什么负数要用补码表示? 十进制小数怎么转成二进制? 计算机是怎么存小数的? 0.1 + 0.2 == 0.3 吗? … 别看这些问题都看似简单,但是其实还是有点东西的这些问题。正文为什么负数要用补码表示?十进制转换二进制的方法相信大家都熟能生巧了,如果你说你还不知道,我觉得你还是太谦虚,可能你只是忘记了,即使你真的忘记了,不怕,贴心的小林在和你一起回忆一下。十进制数转二进制采用的是除 2 取余法,比如数字
2021-04-16 11:09:56 221
转载 云计算底层技术-netfilter框架研究
Posted on March 24, 2018 by opengers in openstacknetfilter框架 connection tracking 连接跟踪表 如何设置最大连接跟踪数 如何计算连接跟踪所占内存 conntrack条目 iptables状态匹配 iptables状态匹配模块 数据包在内核中的状态 如何管理连接跟踪表 Bridge与netfilter conntrack与LVSnetfilter框架netfilter是linux内.
2021-04-15 22:07:46 1084
转载 宋宝华: Linux为什么一定要copy_from_user ?
网上很多人提问为什么一定要copy_from_user,也有人解答。比如百度一下:但是这里面很多的解答没有回答到点子上,不能真正回答这个问题。我决定写篇文章正式回答一下这个问题,消除读者的各种疑虑。这个问题,我认为需要从2个层面回答 第一个层次是为什么要拷贝,可不可以不拷贝? 第二个层次是为什么要用copy_from_user而不是直接memcpy 为什么要拷贝拷贝这个事情是必须的,这个事情甚至都跟Linux都没有什么关系。比如Linux有个kobject结构..
2021-04-15 22:05:51 112
Kubernetes1.13指南(KubernetesHandbook)(书栈网)(202005)
2022-12-13
Tomcat权威指南(第二版)下载pdf 高清完整版
2017-03-02
Hadoop实战 陆嘉恒 2011 第1版
2016-01-18
TheSingleUNIXSpecification(2013)
2015-03-29
Quicksshd_V2.0.3.apk
2013-04-06
Debugging.with.gdb.中文版.pdf
2012-05-23
vs.php2.10_for_vs2010
2012-04-13
Extending.and.Embedding.PHP.2006.chm
2011-12-17
计算机系统结构:量化研究方法(第三版).pdf
2011-10-24
计算机组成原理教师用书(蒋本珊).pdf
2011-08-22
Windows网络编程(第二版中文).pdf
2011-02-10
Effective C++_3rd(侯捷译).pdf
2010-11-17
深度探索C++对象模型.pdf
2010-11-17
高级Bash编程指南
2010-09-18
高级Bash脚本编程指南.chm
2010-09-17
Linux.C.Api.chm
2008-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人