Muxx


  • 首页

  • 归档

  • 标签

  • 关于

  • 搜索

HTTP劫持和DNS劫持

发表于 2018-06-27

DNS劫持的现象:你输入的网址是http://www.google.com,出来的是百度的页面。

HTTP劫持的现象:你打开的是知乎的页面,右下角弹出唐老师的不孕不育广告(2018年更:右下角弹出:偶系渣渣辉)。

nc网络工具中的瑞士军刀

发表于 2018-06-20

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。
netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后能做的事就看你的想象力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其他协议的独立客户端。

阅读全文 »

linux问题排查

发表于 2018-06-20

web排查方法论

nginx+php

  • 日志排查access_log、error_log、php-fpm.log、php_errors.log,日志中可能存在权限、文件不存在、超时等错误记录
  • strace查看系统调用
  • tcpdump抓包

top

P按CPU使用率排序
M按内存使用率排序

按1 可查看核心数
RES (一个任务正在使用的没有交换的物理内存)我们一般称为驻留内存空间

按swap占用排序 top->O->p->enter R切换正序/倒序

1
2
3
4
top -b -n1 -o +%CPU
-b 非交互模式
-n 输出次数
-o 排序字段

状态值

  • R Running或Runnale 表示进程在CPU的就绪队列中,正在运行或正在等待运行
  • D Disk Sleep,也就是不可中断状态睡眠。一般表示进程正在和硬件交互,并且交互过程不允许被其他过程或中断打断
  • Z 僵尸进程,表示进程实际已经结束了,但是父进程还没回收它的资源(比如进程的描述符、PID等)
  • S是 Interruptible Sleep的缩写,也就是可中断睡眠状态,表示进程因为等待某个事情而被系统挂起。当进程等待的事情发生时,他会被唤醒并进入R状态
  • I 是Idle的缩写,也就是空闲状态,用在不可中断睡眠的内核线程上。前面说了,硬件交互导致不可中断进程用D,但对某些内核线程来说,他们有可能实际上并没有任何负载,用Idle正式为了区分这种情况,要注意,D状态的进程会导致平均负载升高,而I不会
  • T Stopped或Traced的缩写,表示进程正处于暂停或跟踪状态。比如当你用调试器(比如gdb)调试一个进程时,在使用断点中断进程后,进程就会变成跟踪状态。
  • X 表示进程已经消亡,你不会再top或ps命令中看到它

另外ps中还会显示入Ss+这样的状态,S表示中断睡眠状态,s表示这个进程是一个会话的领导进程,而+表示前台进程组

  • 进程组表示一组相互关联的进程,比如每个子进程都是父进程所在组的成员
  • 而会话是指共享同一个控制终端的一个或多个进程组

比如我们通过SSH登录服务器,就会打开一个控制终端(tty),这个控制终端就对应一个会话。而我们在终端中运行的命令及他们的子进程,就构成了一个个的进程组,其中,在后台运行的命令,构成后台进程组;在前台运行的命令,构成前台进程组。

阅读全文 »

systemctl入门

发表于 2018-06-14

概念

Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。

阅读全文 »

kafka高可用失败问题:3broker,单杀一个broker就不能消费的问题探讨

发表于 2018-06-12

测试集群有三个broker

broker0:9099
broker1:9091
broker2:9092
阅读全文 »

深入浅出Kafka与ZooKeeper的分布式队列[转]

发表于 2018-06-11

1. 前言

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。

消息队列在电商系统、消息通讯、日志收集等应用中扮演着关键作用,以阿里为例,其研发的消息队列 (MQ) 服务于阿里集团超过 11 年,在历次天猫双十一活动中支撑了万亿级的数据洪峰,为大规模交易提供了有力保障。

目前在生产环境,使用较多的消息队列有 ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ 等。本场 Chat 将介绍基于 Kafka 和 ZooKeeper 的分布式消息队列 (Distributed Message Queue,下文简称 DMQ)。

如果你对消息队列的基本概念还不清楚的话,在正式开始之前,建议你看一组实例来直观的感受一下消息队列:点击查看

阅读全文 »

Mysql事务

发表于 2018-06-08

事务使用

1
2
3
4
5
6
7
8
9
10
Db::startTrans();
try{
Db::table('think_user')->find(1);
Db::table('think_user')->delete(1);
// 提交事务
Db::commit();
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
}
阅读全文 »

Go适配器

发表于 2018-06-06

函数适配器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main
import "net/http"
type Adapter func(http.ResponseWriter, *http.Request)
func (a Adapter) ServeHTTP(w http.ResponseWriter, r *http.Request) {
a(w, r) //在这个例子中a 等于handler w和r是传入的值
}
func main() {
http.Handle("/", Adapter(handler)) //http.Handle第二个参数要求实现http.Handle 通过Adapter(handler)将handler转为Adapter类型 又由于Adapter类型实现了http.Handler 所以此时handler也实现了http.Handler
http.ListenAndServe(":8000", nil)
}
func handler(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
w.Write([]byte("nihao"))
}
1…202122…29
Mu

Mu

230 日志
53 标签
© 2021 Mu
由 Hexo 强力驱动
主题 - NexT.Pisces