我理解的Linux IO模式及select,poll,epoll

前言 本文是在本人查阅部分资料,并综合了众多博客分析后,于此阐述的个人理解。若有错误,欢迎指正。 基本概念 用户空间和内核空间 操作系统核心-内核负责处理用户程序和硬件之间的驱动交互。内核是在用户程序(进程)和硬件之间一个中枢。目地:专门负责用户进程和硬件之间的交互,用户程序必须使用内核才能和计算机底层硬件进行交流。为了保证内核的安全,于是将内存划分开,比如针对linux 4G的内存空间,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低...阅读全文

www.allocmem.com 2018-04-21 13:30 www.allocmem.co 等

在kubernetes集群上使用istio遇到的问题

前言 按照官方文档安装完成,并检查安装好以后。部署官方示例bookInfo,以及插件grafana,zipkin,promeuthes。本以为后面的使用会十分顺畅,结果不尽人意,发现把测试环境的一个用户中心微服务交给istio管理的之后,居然其他微服务和此为服务之间完全无法相互调用了。后面发现了三个坑。 QA istio的微服务如果需要调用外部的http或者grpc等服务,需要使用Egress(意思是出口流量管理的允许),这种情况可参考https://zhuanlan.zhihu.com/p/3...阅读全文

www.allocmem.com 2018-04-20 18:33 www.allocmem.co 等

kubernetes下搭建harbor企业级docker仓库

前言 harbor是由vmware开源的企业级docker repository,提供私有仓库,安全认证,权限管理,漏洞扫描及仓库复制等多种功能,因为之前搭建的harbor在线上环境存在各种各样的问题(之前搭建的方式目前发现已被官方宣布弃用https://github.com/vmware/harbor/blob/master/docs/kubernetes_deployment.md,如ui显示不正常,权限认证不正常),于是近期抽空用官方推荐的helm方式对harbor进行重新部署,并替换掉线...阅读全文

www.allocmem.com 2018-03-27 22:33 www.allocmem.co 等

[转]Kubernetes环境下的各种调试方法

作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源。 本文介绍在Kubernetes环境下的调试方法 启动单个容器 不使用Pod或Replication Controller,启动单个容器: $ kubectl run webserver --image=nginx 想更改镜像,又不想升级版本? 每次修改之后,需要更新镜像的版本也好烦人啊。每次构建出新的镜像,Push到Docker Registry时,可以使用一个固定的...阅读全文

www.allocmem.com 2018-03-03 10:33 www.allocmem.co 等

使用pandoc xelatex转换md文档为pdf

使用pandoc xelatex转换md文档为pdf Author anteoy@gmail.com | Posted 2018-02-16 23:33:00 环境 系统为ubuntu 16.04,其他linux发行版理论上可参考官方安装文档 过程 安装pandoc sudo apt install pandoc 安装texlive-xetex(解决不能转换中文问题) sudo apt-get install texlive-xetex 查看系统已安装的中文字体 fc-list :lang=zh...阅读全文

www.allocmem.com 2018-02-16 23:33 www.allocmem.co 等

使用 let's encrypt certbot部署https网站

前言 let’s encrypt 是免费的ssl/tls 证书颁发的机构,致力于实现整个Web的TLS/SSL认证。https可降低网站被劫持的风险,并具有更好的加密性能,避免用户信息泄露,增强网站的安全性。 准备 已解析正确的域名 www.anteoy.me A记录所指向的服务器 nginx 环境 GCE ubuntu16.04 let’s encrypt认证过程 certbot是let’s encrypt的官方客户端工具,客户端在认证过程中会在host上生成自己的加密文件,let’s enc...阅读全文

www.allocmem.com 2018-01-14 23:33 www.allocmem.co 等

kubernetes下用logstash代替efk中的fluentd

前言 目前我们的系统架构,从阿里云的docker compose迁移到了自建的kubernetes,而我们的日志系统也几经周折。从最开始的阿里云docker compose环境下的elk + kafka,使用了一段时间后由于老板觉得阿里云的kafka收费价格不怎么划算,并且线上服务器的资源吃紧,然后切换到了阿里云的日志服务。线上切换到kubernetes以后,又使用efk搜集了一段时间日志,后来发现fluentd搜集的日志存在一些延迟问题和准确性问题,并且变更配置搜集特定的日志时较为繁琐,于是准...阅读全文

www.allocmem.com 2018-01-09 17:14 www.allocmem.co 等

使用nginx解决k8s traefik中basic auth的跨域问题

目地 目前k8s ingress是配合traefik使用的,此时需要对某一个域名添加一个basic auth安全认证,原本traefik也可以正常配置(生产环境已有不少使用traefik basic auth),但是由于此处的域名需要在其他web域中调用,涉及到跨域问题,参考traefik文档未发现在k8s有关联说明解决basic auth相关跨域问题。后来分析了下nginx下的basic auth,最终使用nginx + ingress + traefik解决了这一问题。 简要步骤 生成bas...阅读全文

www.allocmem.com 2018-01-09 16:24 www.allocmem.co 等

mysql Innodb单表31m千万级数据count计数方案及调优

ENV 线上环境为RDS,版本5.7.15 select version() output: 5.7.15-log 测试环境为docker搭建的mysql,版本5.7.19 select version() output: 5.7.19 单表3000万+的class表以及20万+的学校表,需要使用count查询实时数量用于分页,延迟不能太高,否则影响业务 因需要使用事务功能,使用存储引擎为Innodb(MyISAM count是自动计数单独保存,Innodb需要每次扫描表进行统计) 本文使用cl...阅读全文

www.allocmem.com 2017-11-28 15:26 www.allocmem.co 等

squid stunnel 为 docker 配置代理服务器

目地 为k8s的docker服务提供http/https代理,解决docker无法pull gcr.io/google_containers 谷歌镜像问题 环境 GCE ubuntu 16.04 k8s集群机器 ubuntu16.04 简要步骤 GCE 搭建squid正向http/https代理服务器 直接使用apt-get install 安装 apt-get install squid3 -y 注意:配置文件在/etc/squid或/etc/squid3下,根据系统不同可能会有一点差异,由于...阅读全文

www.allocmem.com 2017-10-20 11:00 www.allocmem.co 等

opensuse下安装网易云音乐netease-cloud

opensuse下安装网易云音乐netease-cloud-music Author anteoy@gmail.com | Posted 2017-10-04 22:49:00 安装过程 安装环境 opensuse 42.3(理论上仓库中列出的支持版本都可以用此方法安装) 官方软件仓库搜索netease,也可直接点击此处打开:https://software.opensuse.org/package/netease-cloud-music?search_term=netease 选择对应版本,点...阅读全文

music 2017-10-04 22:49 music

archlinux下网易云音乐netease-cloud

个人为网易云音乐重度用户,从ubuntu到arch后,感觉netease-cloud-music仍然在ubuntu中支持更好,毕竟linux下的netease-cloud-music是由网易云音乐和深度deepin联合开发的,ubuntu有官方的deb包,arch的aur中的netease-cloud-music是基于此deb进行打包的,在体验上没有差别,在arch中用起来感觉也还不错,在此记录下使用过程中遇到的问题以及解决方式,本文会不定时更新 1. 启动报错,客户端无法打开 这个问题具体报错...阅读全文

music部分问题 2017-09-21 22:33 music部分问题

archlinux安装教程以及自己踩过的坑

引言:   linux是一种哲学。最近喜欢上了arch的简洁,可高度定制化,滚动更新和设计哲学,准备日常办公从ubuntu转向arch,目前已完成安装,正在使用arch写这篇博客,而事实证明arch确实没让我失望,它的确是一个非常不错的发行版. 安装环境: cpu: i5 ram:12G 台式电脑 一块硬盘(有剩余空间或新硬盘都可以,我这里用的是1T新硬盘,GPT分区,UEFI启动) 一块8G U盘 从官网或者其他镜像源下载的iso系统镜像(e.g:archlinux-2017-08.01-x8...阅读全文

www.allocmem.com 2017-09-01 10:19 www.allocmem.co 等

Rancher部署kubernetes爬坑记

引言:  本文不会记录详细的部署过程,仅记录下使用Rancher部署kubernetes踩过的几个小坑,如果你需要详细的部署过程,可以参考此处官方教程,这里面有详细的部署说明,另外可同时参考下此文,也许对你在部署中遇到的问题有所帮助。由于个人能力有限,如有不当之处,欢迎指正。   环境 一台ubuntu 16.04 服务器 作为Rancher Server 宿主机,并且加入k8s集群 一台virtualbox 虚拟的centos 7.3 服务器,并且加入k8s集群   localhost 问题 ...阅读全文

www.allocmem.com 2017-08-31 21:22 www.allocmem.co 等

[转]红黑树(一)之 原理和算法详细介绍

原文作者:Sky Wang 于 2013-08-08 概述:R-B Tree,又称为“红黑树”。本文参考了《算法导论》中红黑树相关知识,加之自己的理解,然后以图文的形式对红黑树进行说明。本文的主要内容包括:红黑树的特性,红黑树的时间复杂度和它的证明,红黑树的左旋、右旋、插入、删除等操作。 请尊重版权,转载注明出处:http://www.cnblogs.com/skywang12345/p/3245399.html 本文属转载文章,博主已尽可能完好地保持原文可读性与清晰性,若阅读不够顺畅或想了解更...阅读全文

www.allocmem.com 2017-07-26 22:08 www.allocmem.co 等

git submodule以及被忽略的.gitignore

###引言:  不积跬步,无以至千里;不积小流,无以成江海。原本自以为对git相关的东西以及原理已经有了不错的认识和理解,然而当碰到一个小小的problem才发现自己掌握得并没有自己想象的那么好,好记性不如烂笔头,于是决定把自己对.gitignore以及submodule的部分理解简单记录下来,由于个人能力有限,如有不当之处,欢迎指正。   ###git submodule git submodule在项目中虽一直在使用(用于维护自有公共类库),不过对此知之甚少,于是抽空做一个小小的总结。可运行...阅读全文

www.allocmem.com 2017-06-25 23:48 www.allocmem.co 等

[转]Ubuntu如何正确地切换Intel和Nvidia显卡

如需转载,请注明”来自linux大神博客”,并附上原文链接。 本文固定链接 https://www.linuxdashen.com/switch-intel-nvidia-graphics-card-ubuntu 本文转载自:https://www.linuxdashen.com/switch-intel-nvidia-graphics-card-ubuntu 现在的笔记本电脑通常有两块显卡:Intel集成显卡和Nvidia(英伟达)独立显卡。这篇教程介绍Ubuntu如何正确地切换Intel和N...阅读全文

www.allocmem.com 2017-06-02 21:29 www.allocmem.co 等

golang中new和make简析

引言:   目前简单梳理了golang的知识点,进行查漏补缺,这里简要记录下golang中的make和new,由于个人能力有限,如有错误,欢迎指正。    正文: 1. make 分配了一个有初始值(非零)的T类型(我这里打印的为空,个人理解为空值)返回值 当slice cap无法满足需要,则在初始大小cap(即第三个参数,这里为6),成倍增长 2. new 分配了零值填充的T类型的内存空间,并返回其地址(指针) 当slice cap无法满足需要,则以16为基数,成倍增长 测试代码如下: “` ...阅读全文

www.allocmem.com 2017-05-31 23:18 www.allocmem.co 等

[转]iptables详细教程:基础、架构、清空规则、追加规则、应用实例

本文出自 Lesca技术宅,转载时请注明出处及相应链接。 本文永久链接: http://lesca.me/archives/iptables-tutorial-structures-configuratios-examples.html iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置iptables将会帮助你更有效地管理Linux防火墙。如果你是第一次接触iptables,你会觉得它很复杂,但是一旦你理解ipta...阅读全文

www.allocmem.com 2017-04-20 21:49 www.allocmem.co 等

常用排序算法原理简析

前言     本文只作一些概念性说明,后续会整理每种排序算法的具体实现。个人知识和能力有限,搜集整理和理解可能不到位,如有错误,欢迎指正 插入排序原理 跑n-1趟,对于p=1到N-1趟,插入排序保证从位置0到位置p(数组也是从0开始计算)的数据是有序的,从后面每次拿一个数组往前面插,找到有序的位置(如此时51为被插入数,则在34到64之间)。需要使用两次for循环,时间复杂度为O(n^2) 希尔排序原理(缩减增量排序) 简单粗暴 计算效率取决于选择的缩减增量序列,只要序列最后最小的为1,任何增量...阅读全文

www.allocmem.com 2017-03-29 21:06 www.allocmem.co 等