系统运维
cjfeii
Hello World.
展开
-
使用systemtap模拟网络延迟
上文介绍了IO延迟的注入,本文主要介绍网络的延迟注入,其实网络的延迟模拟工具有很多,我们可以通过tc、iptables等常用工具来做,这些工具都很好用,但是如果精细到系统调用级别的延迟注入,上述常规的工具可能就不太容易实现了,这正是stap擅长的领域。下面就是一个在服务端建立连接后延迟3秒返回的stap脚本:#!/usr/bin/stap# file: sock_connect_delay.stp# cmd: sudo stap ./sock_connect_delay.stp -g# 在建连原创 2021-09-26 20:43:13 · 735 阅读 · 0 评论 -
使用systemtap模拟磁盘IO延时
在分布式存储系统的异常测试中,模拟硬件故障是一个比较头痛的问题。比较幸运的是,Linux环境下有一个非常好的工具SystemTap(https://sourceware.org/systemtap/),可以使用stap给系统调用增加勾子,并注入我们期望的异常,达到验证应用程序在异常情况的行为是否符合预期的目的。注意:stap会影响系统调用的行为,为了限制影响面,建议做好filter(可以通过pid、devname等条件限制),否则会严重影响系统稳定性,不建议在生产环境使用。生产环境经常因为IO抖动,原创 2021-09-26 20:31:36 · 1922 阅读 · 0 评论 -
Mellanox网卡参数调优
为了提高IPv4和IPv6的流量性能,可以使用Linux sysctl命令修改操作系统设置的默认系统网络参数。但是,需要注意,更改网络参数可能会在不同的系统上产生不同的结果。结果显著依赖于CPU和芯片组的效率。ref:https://community.mellanox.com/s/article/linux-sysctl-tuninghttps://community.mellanox.com/s/article/performance-tuning-for-mellanox-adaptersh原创 2021-04-07 14:33:16 · 2738 阅读 · 0 评论 -
double free or corruption错误定位
“double free or corruption”错误定位1. 测试程序先写一个简单的测试程序模拟double free错误:// file: t.c#include <stdlib.h>void *func1(size_t size) { return malloc(size);}void func2(void *p) { free(p);}int main() { char *ptr = func1(sizeof(char));原创 2021-03-17 12:36:30 · 13607 阅读 · 1 评论 -
通过火焰图查看调用栈
1. 将火焰图的项目clone下来# git clone https://github.com/brendangregg/FlameGraph.git2. 采集数据:# sudo perf record -F 99 -p $PID -g -- sleep 303. 查看每个调用栈的百分比# perf report -n --stdio4. 生成火焰图# perf script -i perf.data &> perf.unfold# ./stackcollapse-per原创 2021-03-10 16:46:36 · 372 阅读 · 0 评论 -
使用perf分析网络系统调用栈
使用perf分析网络系统调用栈1. 增加事件比如增加了如下网络通信相关的系统调用:# perf probe --add sys_writev='sys_writev'# perf probe --add sys_writev_exit='sys_writev%return'# perf probe --add vfs_writev_exit='vfs_writev%return'# perf probe --add do_readv_writev_exit='do_readv_writev%re原创 2021-03-10 16:30:56 · 2265 阅读 · 0 评论 -
HDFS集群数据迁移方案-distcp
HDFS集群数据迁移方案-distcp1. 原理distcp原理是在Hadoop集群中使用MapReduce分布式拷贝数据。2. 资源消耗源集群有只有数据读取和网络传输的消耗目的集群需要执行MapReduce任务,并且有数据写入的消耗(3副本需要有3倍的写入)3. 兼容性同版本集群拷贝(或者协议兼容版本之间的拷贝)使用HDFS协议hadoop distcp hd...原创 2020-04-17 10:43:24 · 1461 阅读 · 0 评论 -
研发过程管理与质量控制
质量控制是研发过程管理非常重要的一环,需要考虑到从需求的产生到最终功能上线,以及后续的运维工作,甚至是故障的处理。方方面面都需要考虑到。具体包含如下环节。需求:需求分析、需求评审、需求排期设计:总体设计、接口设计、详细设计、邮件讨论、方案评审、signoff机制实现:功能开发、单元测试、开发冒烟、性能自测、CodeReview、提测邮件测试:用例评审、功能测试、性能测试、异常测试、稳...原创 2019-10-22 09:46:59 · 2727 阅读 · 0 评论 -
Raid10环境下的硬盘替换
Raid10环境下换硬盘还是很简单的,支持热插拔,直接拔下换掉就可以了,下面是操作步骤。原创 2016-06-29 11:49:44 · 13451 阅读 · 0 评论 -
Linux统计指定端口流量
统计指定端口流量原创 2016-05-30 09:20:55 · 11224 阅读 · 2 评论 -
centos7 systemtap 介绍
systemtap原创 2016-05-27 17:26:19 · 2241 阅读 · 0 评论 -
openresty--centos7下开发环境安装
openresty--centos7下开发环境安装原创 2016-04-18 11:31:50 · 6952 阅读 · 0 评论 -
提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t whe转载 2015-12-10 11:25:29 · 11649 阅读 · 3 评论 -
MySQL 中的 base64 函数
MySQL在5.6版本的时候增加了to_base64和from_base64函数,在此之前没有内部函数,只能使用User-Defined-Function。 本文分别介绍这两种方式下base64函数的使用。原创 2016-03-25 15:35:36 · 43776 阅读 · 1 评论 -
RabbitMQ 问题汇总
汇总贴,主要汇总在使用rabbitmq中出现的问题。原创 2016-02-24 15:34:26 · 8312 阅读 · 0 评论 -
大型分布式网站架构技术总结
本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人经验总结。对大型分布式网站架构有很好的参考价值。转载 2016-02-24 11:39:24 · 1289 阅读 · 0 评论 -
单机系统和分布式系统相关概念对比
单机系统和分布式系统相关概念对比。原创 2016-01-28 10:03:37 · 3131 阅读 · 0 评论 -
RabbitMQ 高可用架构部署方案笔记
rabbitmq 高可用部署方案原创 2016-02-24 10:00:45 · 5344 阅读 · 0 评论 -
硬盘监控
主要介绍了用MegaRaid工具监控硬盘状态。TODO:lsiutil原创 2016-10-27 10:29:37 · 930 阅读 · 0 评论 -
写io的几种模式
写io的几种模式buffer write 特点: a) 应用程序写入到page cache b) 操作系统 writeback 优缺点: a) 大部分情况直接写内存,速度很快 b) 数据完整性无法得到严格保证 c) 小部分写入受到系统回写影响,服务质量没有办法保证direct write 特点: a) 绕过操作系统cache,直接原创 2017-01-13 22:24:57 · 1068 阅读 · 0 评论 -
安装 php + nginx 环境
1. 安装 pcre sudo yum install pcre2. 安装 nginx sudo yum install nginx3. 安装 PHP 1) 安装 libpng sudo yum install libpng 2) 安装 libfpeg not install suceed 3)原创 2014-08-28 21:09:48 · 988 阅读 · 0 评论 -
ElasticSearch运维手册
ElasticSearch运维手册0. 介绍主要介绍了ES常用的在运维过程中可能会用到的一些命令。1. 查看ES集群中节点信息查看ES集群中所有节点信息,以及各个节点内存和CPU相关的指标$ curl -X GET 'http://192.168.5.1:9200/_cat/nodes?v'ip heap.percent ram.percent...原创 2018-04-12 22:55:01 · 4629 阅读 · 0 评论 -
ELK性能优化说明
ELK性能优化简要说明1. 系统部署说明 组件 机器配置 说明 ElasticSearch&Kibana 3 * (32 core + 128GB mem + SAS 3.6T*12) EK混部 Logstash 3 * (40 core + 32GB mem) 单独部署,比较耗cpu DS&Kafka 5 ...原创 2018-03-31 17:35:05 · 6570 阅读 · 0 评论 -
Kibana查询语法详解
Kibana查询语法详解Kibana查询语法和Lucene相同,下面是Lucene的查询语法介绍。注意:Lucene查询语法不适合在程序中使用,程序中使用可以调用Lucene-API,API提供了丰富功能来组合定制你所需要的查询器,查询语法是为手工输入高级查询设计的,而不是为程序拼接语法串而设计的。1. 简单说明1.1 Terms一个查询将分解为若干Term以及操作符...原创 2018-03-31 17:33:47 · 56280 阅读 · 0 评论 -
MySQL 如何快速导入 dump.sql 到数据库中?
导入dump.sql最常用的方法就是:mysql -uroot database_name < dump.sql但是如果dump.sql文件比较大的话,导入过程将会非常漫长,下面主要是通过调整/etc/my.cnf的相关参数,来加快导入的速度。原创 2015-11-30 11:22:00 · 6812 阅读 · 0 评论 -
MySQL 大表迁移简单方案
1. 同一个 MySQL 实例中大表迁移有两种方法,应用在不同的场景下:-- 1. 重命名实现大表完整迁移mysql> RENAME TABLE src_db.big_table TO dst_db.big_table;-- 2. 大表部分迁移mysql> CREATE TABLE dst_db.big_table AS SELECT * FROM src_db.big_table WHERE原创 2015-12-03 10:45:42 · 10239 阅读 · 0 评论 -
AES加密算法工作模式详解
AES 加密算法,本文主要介绍AES不同工作模式的原理。原创 2017-07-28 19:11:15 · 1714 阅读 · 0 评论 -
Nginx range过滤器整形溢出漏洞 (CVE–2017–7529)预警分析
Nginx range过滤器整形溢出漏洞 (CVE–2017–7529)预警分析:当使用nginx标准模块时,这允许攻击者如果从缓存返回响应,则获取缓存文件头,黑客可以通过缓存文件头获取包含IP地址的后端服务器或其他敏感信息,从而导致信息泄露。原创 2017-07-28 19:04:25 · 5634 阅读 · 0 评论 -
redis性能分析工具redis-faina
redis性能分析工具redis-fainaredis-faina是一个通过解析redis的MONITOR命令,从而对redis实例进行性能诊断的工具。 该工具使用虽然简单,但是功能还是很不错,对于定位线上redis性能问题,确实是一把利器。原创 2017-08-10 18:30:14 · 6206 阅读 · 0 评论 -
MySQL 如何为一个非常大的数据库设置一个备库?
0. 安装启动备库。1. 分析数据库数据分布以及应用逻辑,找出append-only-table,因为这样的数据表都会很大。2. 忽略append-only-table,导出数据库:mysqldump -uroot --ignore-table=db_name.append_only_table db_name > db_name_part.sql3. 将数据导入到备库:mysql -uroot d原创 2015-11-30 11:42:19 · 1135 阅读 · 0 评论 -
Nginx 错误汇总
Nginx 常见的错误汇总。原创 2015-10-30 14:56:23 · 13679 阅读 · 0 评论 -
用 Nginx 反向代理 Nagios
Nginx 反向代理1 环境准备操作系统CentOS 7.0 x86_64Nginx 版本nginx-1.7.102 安装 Nginx新建用户组和用户 # useradd nginx -s /sbin/nologin# id nginx安装依赖的文件yum install pcre-devel openssl-devel安装 Nginx# wget 'http://nginx.原创 2015-09-14 14:35:09 · 1367 阅读 · 0 评论 -
Hadoop 为什么不建议使用 RAID?
因为采用 RAID 会有下面三个缺点: 1. 性能会有所降低,主要受限于最慢的disk(哪怕一个品牌的disk,性能也会不一样); 2. 磁盘整理可用性降低,其中一块或是几块盘坏掉,可能会造成整个 RAID 都不可用; 3. 可能会造成资源浪费,Hadoop 中每份数据都会有三个副本,存在冗余的 RAID 就没有必要;综合以上,说明 Hadoop 不建议使用 RAID。原创 2015-10-30 09:36:21 · 7310 阅读 · 7 评论 -
Hadoop 安装教程
本文主要介绍在 CentOS 安装 CDH,具体版本信息如下: OS: CentOS 7.0 Java: jdk1.7.0_79 Hadoop: hadoop-2.6.0-cdh5.4.7原创 2015-10-26 10:43:49 · 2477 阅读 · 0 评论 -
Linux下添加服务
1.按一定的规则编写服务脚本,比如:myserviced#!/bin/sh#chkconfig: 2345 80 05 #description: myservice case $1 instart) echo "myservice startup" ;;stop) echo "myservice stop" ;;restart) echo "myservice sto原创 2013-07-18 19:30:26 · 16812 阅读 · 0 评论 -
查找制定端口号的进程对应的可执行文件的详细目录
事件起因:查找制定端口号原创 2014-04-24 14:30:16 · 3121 阅读 · 0 评论 -
几个常用的linux命令
1. CTRL-r 搜索历史指令原创 2014-05-28 14:15:30 · 1490 阅读 · 0 评论 -
github 的一些问题汇总
github 的一些问题汇总原创 2015-07-09 14:37:31 · 752 阅读 · 0 评论 -
部署 MySQL 主从模式
主要介绍了如何部署 MySQL 主从模式,下面是 MySQL 的两台主机:master: 192.168.10.10slave : 192.168.10.11两个实例都是新装 MySQL实例。原创 2015-09-01 17:11:02 · 2233 阅读 · 0 评论 -
Linux下设置发邮件
主要设置了在 Linux 下发邮件,这里主要用了 mailx 组件。原创 2015-09-15 16:48:06 · 706 阅读 · 0 评论