少林码僧
专注elasticsearch搜索领域8年,有海量数据搜索功能架构经验
展开
-
记一次因代码出错不断输出日志占满Docker容器硬盘的排查经历
从这里能够看到 40G的空间,全部被docker占用了,既然不是docker镜像所占用了,那肯定就只有容器了,使用下列命令,查看docker的镜像和容器所占空间。通过排查,是一个日志文件而造成的,想着可能是因为这个日志文件不断输出错误,而造成空间不够用的问题,所以我们现在需要解决这个错误后,然后把对应的日志输出文件给删除。选择一些没用的镜像,然后删除,发现删除也不能删除,这个时候想着,可能不是因为镜像的缘故,而造成空间不够的,会不会是其它文件的原因,先遍历一下文件的所占空间。再次查看,恢复正常了。原创 2024-07-25 10:20:11 · 89 阅读 · 0 评论 -
MySQL主从复制
搭建MySQL主从复制经典架构一、业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长。特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案不够健壮,那么数据库服务器很有可能在高并发访问负载压力下宕机,造成数据访问服务的失效,从而导致网站的业务中断,给原创 2017-06-04 00:27:31 · 1008 阅读 · 1 评论 -
Ubuntun构建本地源详细教程
首先使用一台已连接互联网的同版本ubuntu主机添加国内镜像源。原创 2024-01-06 09:34:18 · 621 阅读 · 0 评论 -
aria2用法详解,是时候扔掉wget和curl了
轻量、高效、命令行aria2是一款轻量且高效命令行下载工具,它提供了对多协议和多源地址的支持,并尝试将下载带宽利用率最大化,目前支持的协议包括HTTP(S)FTPBitTorrent(DHT, PEX, MSE/PE) 和Metalink。通过Metalink的分块检查,aria2可以在下载过程中自动的进行数据校验。虽然现在有诸如wget和curl等其他类似产品,但aria2具有两个独特的功能,那就是可以并发的进行对多协议下载的支持和多个源地址的下载。这样用户将不必等待单个文件的下载完成,而且aria2。原创 2023-12-15 15:25:15 · 678 阅读 · 0 评论 -
开发人员必须掌握的几个高级命令
xargs 后面不仅仅可以加文件分类的命令,你还可以加其他的很多命令,比如说实在一点的 tar 命令,你可以使用 find 命令配合 tar 命令,将指定路径的特殊文件使用 find 命令找出来,然后配合 tar 命令将找出的文件直接打包。比如说我们想找出某个路径下以 .conf 结尾的文件,并将这些文件进行分类,那么普通的做法就是先将以 .conf 结尾的文件先找出来,然后输出到一个文件中,接着 cat 这个文件,并使用 file 文件分类命令去对输出的文件进行分类。原创 2023-12-15 13:02:03 · 798 阅读 · 0 评论 -
开发人员必用的Linux命令,建议收藏
问题:1.2.3.4的sshd的监听端口是22,如何统计1.2.3.4的sshd服务各种连接状态(TIME_WAIT/ CLOSE_WAIT/ ESTABLISHED)的连接数。问题:打包备份/opt/web/suyun_web目录,排除掉目录中的logs和目录,打包好的文件存放在/opt/backup目录下。问题:找出服务器上,某个正在运行的tomcat产生的大量异常日志,找出该文件,并释放空间。问题:磁盘IO异常如何排查,类似写入慢或当前使用率较高,请查出导致磁盘IO异常高的进程ID。原创 2023-12-15 12:47:48 · 784 阅读 · 0 评论 -
CentOS7禁用ipv6
方法 1编辑文件/etc/sysctl.conf,vi /etc/sysctl.conf 添加下面的行:net.ipv6.conf.all.disable_ipv6 =1net.ipv6.conf.default.disable_ipv6 =1如果你想要为特定的网卡禁止IPv6,比如,对于enp0s3,添加下面的行。net.ipv6.conf.enp0s3.disable_ipv6 =1保存并退原创 2017-09-10 19:43:01 · 959 阅读 · 1 评论 -
CentOS6启动和内核管理
Linux组成kernelrootfskernel 进程管理内存管理网络管理驱动程序文件系统安rootfs 程序和glibc内核设计流派单内核monolithic kernel Linux微内核micro kernel Windows Solaris 内核Linux 内核特点支持模块化ko 内核对象组成部分CentOS6启动流程POST Power-On-Self-Test原创 2017-05-14 09:13:11 · 3750 阅读 · 1 评论 -
彻底搞懂CPU的特权等级
x86 处理器中,提供了4个特权级别:0,1,2,3。数字越小,特权级别越高!一般来说,操作系统是的重要性、可靠性是最高的,需要运行在 0 特权级;应用程序工作在最上层,来源广泛、可靠性最低,工作在 3 特权级别。中间的1 和 2 两个特权级别,一般很少使用。理论上来讲,可以把那些可靠性介于操作系统和应用程序之间的程序安排在这两个特权级上。理解了这3个特权级的保护规则,就理解了操作系统保护系统的终极密码!原创 2023-07-28 06:40:45 · 966 阅读 · 0 评论 -
Kubernetes 部署实战案例
各master节点安装kubernetes部署⼯具kubeadm、kubectl、kubelet,各node节点安装kubeadm与。各master节点与node节点都要部署containerd运⾏时。各master节点与node节点主机名不可重复。当前maste⽣成证书⽤于添加新控制节点。原创 2022-08-24 11:45:21 · 658 阅读 · 0 评论 -
非常实用的linux命令汇总,开发人员必备
1.删除0字节文件2.查看进程按内存从大到小排列3.按cpu利用率从大到小排列4.打印说cache里的URL6.实用sed修改文件sshd_config,将匹配到Root的行中将no替换成yes9.如何在编写SHELL显示多个信息,用EOF13.查看80端口建立链接数最多的进程15.因为同事要统计一下服务器下面所有的jpg的文件的大小,写了个shell给他来统计.原来用xargs实现,但他一次处理一部分,搞的有多个总和…,下面的命令就能解决啦.原创 2022-08-22 11:34:09 · 148585 阅读 · 0 评论 -
大厂linux运维面试题库(二)
运维工程师面试题1、什么是运维?什么是游戏运维?1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维开发运维:是给应用运维开发运维工具和运维平台的应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故原创 2022-08-21 21:57:11 · 149279 阅读 · 0 评论 -
大厂linux运维面试题库(一)
1. 磁盘使用率检测(用shell脚本)2. LVS 负载均衡有哪些策略?3. 谈谈你对LVS的理解?4. 负载均衡的原理是什么?5. LVS由哪两部分组成的?6. 与lvs相关的术语有哪些?7. LVS-NAT模式的原理8. LVS-NAT模型的特性9. LVS-DR模式原理10. LVS-DR模型的特性11. LVS三种负载均衡模式的比较12. LVS的负载调度算法13. LVS与nginx的区别14. 负载均衡的作用有哪些?原创 2022-08-21 21:49:12 · 147613 阅读 · 0 评论 -
systemctl命令详解
systemctl是linux中的服务管理,是一个systemd的工具,主要负责控制systemd系统和服务管理器在ubuntu 、centos等一系列发行版中可用。可以方便的管理需要启动的服务等。可以实现开机自启动、出错重启和定时重启等等功能。简单的文件格式如下:一、 [Unit]定义启动的顺序以及依赖的关系定义启动、关闭和重启服务等操作时的方式定义安装配置文件(开机自启动必备)通过systemctl start 来启动...原创 2022-06-28 12:37:48 · 1904 阅读 · 0 评论 -
趣谈网络协议(二)
不管是系统还是网络.都需要一个良好的架构,层层分离,职责单一,这样代码的可读性强,拓展只需针对某一职责修改即可 在网络的TCP/IP协议中,也是层层分离,每一层都有自己的协议,并做好自己本分的工作。就像公司的各个部门一样,it部保持系统的稳定、市场部负责推广、销售部负责销售一样网络中的请求,从源到目标先分这么四层:1.物理层,网关只要调用process_la...原创 2019-11-12 11:41:26 · 329 阅读 · 0 评论 -
MySQL查询语句执行的过程
背景 过程概览 查询缓存query cache 查询管理器 查询解析器语法解析器和查询重写器 查询解析器语法解析器 查询重写器 查询优化器 存取路径 联接运算符 查询执行器查询执行引擎 返回结果给客户端 背景介绍MySQL语句执行select的过程过程概览客户端发送一条查询给服务器; 服务器先会检查查...原创 2017-06-04 12:35:42 · 3721 阅读 · 1 评论 -
Mysql5.7创建远程可无密码登录用户
查看初始化密码grep password /var/log/mysqld.log修改初始化密码mysql -uroot -palter user 'root'@'localhost' identified by 'Kingsoft123..'uninstall plugin validate_password;set password for 'root'@'localhost'=p...原创 2019-03-01 15:24:13 · 1127 阅读 · 1 评论 -
mysql之InnoDB存储引擎剖析
Mysql技术内幕查看配置文件生效顺序查看配置文件生效顺序(如果多个配置文件中有同一个人参数,会读取到最后一个配置文件)mysql --help|grep my.cnfmysql存储引擎MYSQL5.5.8开始,innnodb作为默认的存储引擎,对于MyISAM存储引擎,Mysql只缓存其索引文件,数据文件的缓存由操作系统完成,这与其他使用LRU算法的大部分数据库...原创 2018-08-29 12:53:21 · 742 阅读 · 1 评论 -
MariaDB SQL语句基础
MariaDB SQL语句基础SQL语句基础:数据库:databaseDDL :data Defination Language,数据定义语言创建,删除,修改 ==> CREATE,DROP,ALTERDML :data Manipulatation Language,数据操纵语言插入,删除,修改,查询 ==> INSERT,DELETE,UPDATE,SELECT,D...原创 2017-06-02 22:37:24 · 4072 阅读 · 0 评论 -
php连接 mysql的三种连接方式
PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案。PHP的MySQL扩展是设计开发允许php应用与MySQL数据库交互的早期扩展。MySQL扩展提供了一个面向过程的接口,并且是针对MySQL4.1.3或者更早版本设计的。因此这个扩展虽然可以与MySQ...原创 2017-06-01 09:42:13 · 11141 阅读 · 0 评论 -
一个mysql死锁问题的分析
mysql死锁案例分析原创 2017-06-05 00:07:34 · 1090 阅读 · 1 评论 -
MySQL 5.7多源复制实践
MySQL 5.7多源复制实践MySQL 5.7发布后,在复制方面有了很大的改进和提升。比如开始支持多源复制 (multi-source) 以及真正的支持多线程复制了。多源复制可以使用基于二进制日志的复制或者基于事务的复制。下面我们讲讲如何配置基于二进制日志的多源复制。什么是多源复制首先,我们需要清楚几种常见的复制模式:1)一主一从2)一主多从原创 2017-06-22 09:25:25 · 1106 阅读 · 1 评论 -
mycat主备热切实战操作指南
最近给研究数据库高可用方案,发现mycat是一个不错的的低成本解决方案一、MyCat简单介绍MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理(类似于Mysql Proxy),用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。MyCat发展到目前的原创 2020-06-12 16:30:01 · 795 阅读 · 0 评论 -
数据库优化之sql优化
不在索引列进行数学运算或凼数运算拒绝大SQL拆解成多条简单SQL优先使用ENUM或SET- 可能值已知且有限改写OR为IN改写OR为UNION避免 前缀模糊查询同数据类型的列值比较避免使用NULL字段少用并拆分TEXTBLOBTEXT类型处理性能远低亍VARCHAR字符字段必须建前缀索引拒绝大SQL拆解成多条简单SQL统一命名规范1.不在索引列进行数学运算或凼数运算无原创 2017-05-30 23:13:45 · 535 阅读 · 0 评论 -
MYSQL修改root密码的四种方法
方法1: 用SET PASSWORD命令mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');方法2:用mysqladminmysqladmin -u root password "newpass" 如果root已经设置过密码,采用如下方法 mysqladmin -u root passwo原创 2017-05-15 19:33:05 · 2718 阅读 · 1 评论 -
LAMP之php与MariaDB
*** amp组合方式:(1) client --> http protocol --> httpd-server + php modules --> php-mysql 驱动 --> mysql protocol --> mysqld-server(2) client --> http protocol --> httpd-server --> fastcgi protocol -->原创 2017-06-02 22:41:14 · 800 阅读 · 0 评论 -
mysql之sql语句练级攻略
mysql复习一:复习前的准备1:确认你已安装wamp2:确认你已安装ecshop,并且ecshop的数据库名为shop二 基础知识:1.数据库的连接mysql -u -p -h-u 用户名-p 密码-h host主机2:库级知识2.1 显示数据库: show databases;2.2 选择数据库: use dbname;2.3原创 2017-06-04 00:54:01 · 1331 阅读 · 1 评论 -
MySQL DBA 必读:万字归总表设计与 SQL 编写技巧
前言随着移动云平台系统业务不断增长,必然需要对各系统进行更新或者发布新版本,以满足用户的需求。但是在系统更新或者发布新版本时,往往会引起各种的性能隐患,使得系统的稳定性大大降低,这些性能隐患的根本原因大部分都在于软件开发标准不规范引起。为了加强开发标准规范,提高各系统的稳定性,本文从影响 MySQL 数据库性能的常见因素入手,重点论述下如何编写高效的 SQL 语句,并以合适的方式创建表和索...原创 2019-11-11 10:21:04 · 497 阅读 · 1 评论 -
windows下mysql5.7忘记root密码后的解决方法
添加windows下mysql服务以管理员身份打开cmd,执行mysqld --installnet stop mysql# 忘记密码找回my.ini 的mysqld下添加skip-grant-tables# 启动mysql服务net start mysqldcd C:\Program Files\MySQL\MySQL Server 5.7\binmysq...原创 2017-05-30 20:20:40 · 5390 阅读 · 1 评论 -
mysql join语法解析
一.Join语法概述join 用于多表中字段之间的联系,语法如下:... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditionatable1:左表;table2:右表。JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。LEFT JOIN原创 2017-06-01 10:29:19 · 548 阅读 · 1 评论 -
利用git快速部署远程服务器
利用git快速部署远程服务器本地开发完成后,通常会在服务器上部署,有人会使用ftp,有人会使用scp, ftp和scp的时候为了方便我们通过还要tar或者zip一下, 这些做法也很不错,但是它有一些问题全部更新,不管某些文件是否修改,都要重新传一下服务器,浪费时间与流量 多台服务器的重复上传 代码更新后,后续的一些操作不够自动化 上面的问题可以通过ssh直接远程执行命令来解决,但是需要写一些s原创 2017-06-20 20:34:33 · 792 阅读 · 0 评论 -
你应该知道的Git基础
你应该知道的Git基础设置自己的用户名和邮箱git config –global user.name "Your Name"git config –global user.email "you@example.com"修改到提交之间有一个缓存区提交到缓存区 git add . 当前所有修改提交到缓存区,也可以单独指定git diff --cached原创 2017-06-20 20:37:25 · 427 阅读 · 0 评论 -
Git协议 服务器的搭建
Git 服务器的搭建 远程仓库通常只是一个纯仓库(bare repository)—一个没有当前工作目录的仓库。因为该仓库只是一个合作媒介,所以不需要从一个处于已从硬盘上检出状态的快照;仓库里仅仅是git的数据。更简单的说,纯仓库是你的项目里的.git内容。 开始架设git服务器的时候,需要把一个现存的仓库导出为新的纯仓库—不包含当前工作目录的仓库。方法很简单。把一个仓库克隆为纯仓库,可以使用c原创 2017-05-15 19:58:55 · 1546 阅读 · 0 评论 -
mysql数据库的安装
在当今的互联网企业里,MySQL数据库大多运行在Linux系列操作系统上,当然,你也可以运行在Windows/Unix等商业操作系统上,本书主要以国内互联网公司应用最多的数据库服务操作系统——CentOS6最新版(6.8)x86_64 Linux系统为例进行讲解,使用其他系统的读者同样可以从本书受益!即使是在CentOS 6 x86_64 Linux系统环境下,若应用场景不同或版本不同原创 2017-05-15 20:30:00 · 681 阅读 · 0 评论 -
mariaDB语句详解
设计范式字段约束SQLDDLCREATEDROPALTER查看支持的字符集查看排序规则建库删库查看建表帮助语句查看表状态查看数据库支持的引擎建表删表改表alter 改字符集属性change 改名modify 改表定义和排序DMLINSERTREPLACEDELETEUPDATESELECTDCLGRANTREVOKE存储类型数据类型 字符变长字符定长字符原创 2017-06-03 21:14:15 · 2990 阅读 · 0 评论 -
web服务器apache架构与原理
web服务器apache架构与原理web服务器 在开始了解Apache前,我们先熟悉一下web服务器,因为apache也是web服务器的一种。 Web系统由客户端(浏览器)和服务器端两部分组成转载 2017-06-04 00:05:59 · 1353 阅读 · 0 评论 -
nginx反向代理原理和配置讲解
nginx反向代理原理和配置讲解最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡。所以搜罗了一些关于反向代理服务器的内容,整理综合。 一 概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;转载 2017-06-04 00:11:14 · 1529 阅读 · 0 评论 -
nginx和apache的LVS负载均衡
Varnish与Apache安装静态缓存模块的机器IP如下: 192.168.85.91 192.168.85.96 1. 安装repo源及软件 # rpm --nosignature -i http://repo.varnish-cache.org/RedHat/varnish-3.0/el6/noarch/varnish-\ release-3.0-1.el6.原创 2017-08-30 10:20:15 · 745 阅读 · 0 评论 -
nginx location匹配过程分析
原创 2018-02-27 17:32:40 · 303 阅读 · 0 评论 -
Nginx的模块与工作原理
Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。Nginx的模块从结构上分为核心模块、基础模块和第三方模块:核心模块:HTTP模块、EVENT模...原创 2017-06-04 00:07:57 · 5339 阅读 · 0 评论