混沌工程
是什么
混沌工程是由netflix提出的,为了建立对系统抵御生产环境失控条件的能力和信心,说人话就是分布式系统能不能应对一些不确定的因素,瞎搞能不能抗住,找到系统薄弱的地方
和测试区别
测试是基于系统预期,给一个输入,看输出是否和期望一致,而混沌工程是对系统的探索,并不知道会发生什么结果
常见输入实例
阿里开源的一款混沌测试工具chaosblade,基于它功能,我们大概能看出来主要输入什么样的测试
微服务容错能力
1.模拟延迟
2.模拟服务不可用
3.机器满载
容器编排配置
1.模拟kill pod,kill node
2.增大pod负载
健壮
主备异常
2.分布式存储不可用
3.调度节点不可用
可用看出主要对资源,网络,存储,io,各种异常条...
java调用C/C++动态库
步骤
native 声明 c/c++ 里方法 , System.loadLibrary()加载之后生成的so/dll
public class TestJavaCallC {
public native void sayHello();
public static void main(String[] args){
System.loadLibrary("NativeCode1");
TestJavaCallC tNative = new TestJavaCallC();
tNative.sayHello();
}
}
生成native方...
archlinux性能调优
cpu
安装cpupower,设置performance模式,重启可能恢复,可以加在启动项
cpupower frequency-set -g performance ### io
这里主要是io调度算法的选择
noop
最简单的算法,就是请求放入队列中,逐个执行,也叫电梯算法
deadline
保证一定时间内请求都能被服务,避免请求饥饿
这里具体不做讲述,自行了解,通常多线程下效果好
cfq
绝对公平算法,给进程分配一个请求队列和一个时间片,时间片结束,请求挂起等待调度。通用服务默认
内存
开大页,关交换空间
vm.dirty_ratio = 3
vm.dirty_background_ratio = 2
vm.nr_hugepages=100
vm....
批量修改git提交名
批量修改git已经提交的commit的用户名和邮箱
#!/bin/sh
git filter-branch -f --env-filter '
OLD_EMAIL="old_email"
CORRECT_NAME="new_name"
CORRECT_EMAIL="new_email"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
e...
vscode配置多语言
vscode user settings (最终配置)
主要是java相关
{
"editor.fontSize": 18,
"java.home": "/usr/lib/jvm/java-8-jdk",
"workbench.editor.enablePreview": false,
"maven.executable.path": "/usr/local/apache-maven-3.5.4/bin/mvn",
"maven.terminal.customEnv": [
{
"environmentVariable": "JAVA_HOME",
"value":...
66 post articles, 9 pages.