socat管理haproxy以及haproxy调优
Unix套接字命令(Unix Socket commands)
socat是一个多功能的网络工具,名字来由是“Socket CAT”,可以看作是netcat的N倍加强版,socat的官方网站:http://www.dest-unreach.org/socat/ 。
socat是一个两个独立数据通道之间的双向数据传输的继电器。
这些数据通道包含文件、管道、设备(终端或调制解调器等)、插座(Unix,IP4,IP6 - raw,UDP,TCP)、SSL、SOCKS4客户端或代理CONNECT。
socat支持广播和多播、抽象Unix sockets、Linux tun/tap、GNU readline和PTY。
它提供了分叉、记录和进程间通信的不同模式。多个选项可用于调整socat和其渠道,Socat可以作为TCP中继(一次性或守护进程),作为一个守护进程基于socksifier,
作为一个shell Unix套接字接口,作为IP6的继电器,或面向TCP的程序重定向到一个串行线。
socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socket等。
使用socat可以查看和设置HAProxy状态,首先得让HAProxy产生出一个sock出来(hatop ,socat都是基于这个的,没这个什么都做不了)。
设置配置文件开启unix socket
在global 下面 加一行:
stats socket /usr/local/haproxy/stats #路径和名字随意
然后重启服务就可以了。
配置文件加入socket这行
权限600,级别admin
[root@linux-node1 ~]# cat /etc/haproxy/haproxy.cfg
global
chroot /var/lib/haproxy
daemon
group haproxy
user haproxy
log 127.0.0.1:514 local3 info
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
stats timeout 2m
defaults
log global
mode http
option httplog
option dontlognull
timeout client 50000
timeout server 50000
timeout connect 5000 frontend http_front
mode http
bind *:80
stats uri /haproxy?stats
default_backend http_back
backend http_back
option forwardfor header X-REAL-IP
#option httpchk GET /index.html
balance roundrobin
server linux-node1 10.0.1.105:8080 # check inter 2000 rise 3 fall 3 weight 1
server linux-node2 10.0.1.106:8080 # check inter 2000 rise 3 fall 3 weight 1
[root@linux-node1 ~]#
重启服务
[root@linux-node1 ~]# /etc/init.d/haproxy restart
Restarting haproxy (via systemctl): [ 确定 ]
[root@linux-node1 ~]#
[root@linux-node1 ~]#
[root@linux-node1 ~]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
haproxy 28420 haproxy 5u IPv4 216721 0t0 TCP *:http (LISTEN)
[root@linux-node1 ~]#
查看有没有生成socket
[root@linux-node1 ~]# ls /var/lib/haproxy/
haproxy.sock
[root@linux-node1 ~]#
[root@linux-node1 ~]# yum list | grep socat
socat.x86_64 1.7.2.2-5.el7 base
[root@linux-node1 ~]# yum install -y socat
利用管道查看帮助命令
[root@linux-node1 ~]# echo "help" | socat stdio /var/lib/haproxy/haproxy.sock
Unknown command. Please enter one of the following commands only :
clear counters : clear max statistics counters (add 'all' for all counters)
clear table : remove an entry from a table
help : this message
prompt : toggle interactive mode with prompt
quit : disconnect
show backend : list backends in the current running config
show info : report information about the running process
show pools : report information about the memory pools usage
show stat : report counters for each proxy and server
show errors : report last request and response errors for each proxy
show sess [id] : report the list of current sessions or dump this session
show table [id]: report table usage stats or dump this table's contents
show servers state [id]: dump volatile server information (for backend <id>)
get weight : report a server's current weight
set weight : change a server's weight
set server : change a server's state, weight or address
set table [id] : update or create a table entry's data
set timeout : change a timeout setting
set maxconn : change a maxconn setting
set rate-limit : change a rate limiting value
disable : put a server or frontend in maintenance mode
enable : re-enable a server or frontend which is in maintenance mode
shutdown : kill a session or a frontend (eg:to release listening ports)
show acl [id] : report avalaible acls or dump an acl's contents
get acl : reports the patterns matching a sample for an ACL
add acl : add acl entry
del acl : delete acl entry
clear acl <id> : clear the content of this acl
show map [id] : report avalaible maps or dump a map's contents
get map : reports the keys and values matching a sample for a map
set map : modify map entry
add map : add map entry
del map : delete map entry
clear map <id> : clear the content of this map
set ssl <stmt> : set statement for ssl [root@linux-node1 ~]#
上面把支持的命令都显示出来了
下面就把页面监控上的东西都列出来了
[root@linux-node1 ~]# echo "show info" | socat stdio /var/lib/haproxy/haproxy.sock
Name: HAProxy
Version: 1.6.3
Release_date: 2015/12/25
Nbproc: 1
Process_num: 1
Pid: 28420
Uptime: 0d 0h09m43s
Uptime_sec: 583
Memmax_MB: 0
Ulimit-n: 4031
Maxsock: 4031
Maxconn: 2000
Hard_maxconn: 2000
CurrConns: 0
CumConns: 2
CumReq: 2
Maxpipes: 0
PipesUsed: 0
PipesFree: 0
ConnRate: 0
ConnRateLimit: 0
MaxConnRate: 0
SessRate: 0
SessRateLimit: 0
MaxSessRate: 0
CompressBpsIn: 0
CompressBpsOut: 0
CompressBpsRateLim: 0
Tasks: 5
Run_queue: 1
Idle_pct: 100
node: linux-node1.example.com
description: [root@linux-node1 ~]#
通过disable或者enable可以关闭或者启动某台主机
准备把linux-node2关闭了

这里的主机名和页面显示的以及配置文件配置的一致
[root@linux-node1 ~]# echo "disable server linux-node2" | socat stdio /var/lib/haproxy/haproxy.sock
Require 'backend/server'.
[root@linux-node1 ~]# echo "disable server http_back/linux-node2" | socat stdio /var/lib/haproxy/haproxy.sock [root@linux-node1 ~]#

[root@linux-node1 ~]# echo "enable server http_back/linux-node2" | socat stdio /var/lib/haproxy/haproxy.sock

haproxy调优的地方
1、不设置进程,默认就是1,单进程
2、网卡可能跑慢,换成万兆网卡,或者拆业务,拆成不同集群
3、haproxy的端口可能被用光,因为linux提供端口最多65535。
[root@linux-node1 ~]# cat /proc/sys/net/ipv4/ip_local_port_range
32768 60999
[root@linux-node1 ~]#
[root@linux-node1 ~]# cat /proc/sys/net/ipv4/tcp_tw_reuse
0
[root@linux-node1 ~]#
[root@linux-node1 ~]# cat /proc/sys/net/ipv4/tcp_fin_timeout
60
[root@linux-node1 ~]#
socat管理haproxy以及haproxy调优的更多相关文章
- HBase管理与监控——内存调优
HMaster 没有处理过重的负载,并且实际的数据服务不经过 HMaster,它的主要任务有2个:一.管理Hbase Table的 DDL操作, 二.region的分配工作,任务不是很艰巨. 但是如果 ...
- spark调优篇-Spark ON Yarn 内存管理(汇总)
本文旨在解析 spark on Yarn 的内存管理,使得 spark 调优思路更加清晰 内存相关参数 spark 是基于内存的计算,spark 调优大部分是针对内存的,了解 spark 内存参数有也 ...
- 素小暖讲JVM:Eclipse运行速度调优
本系列是用来记录<深入理解Java虚拟机>这本书的读书笔记.方便自己查看,也方便大家查阅. 欲速则不达,欲达则欲速! 这两天看了JVM的内存优化,决定尝试一下,对Eclipse进行内存调优 ...
- HAProxy压测及参数调优
背景 小米容器云平台,在构建云厂商集群时,需要通过HAProxy将云厂商LB流量从宿主机转到容器中,但对于HAProxy的性能没有把握.参考网上的一篇HAProxy压测文章,文章中提到HAProxy ...
- socat管理haproxy配置 ssh-keygen -N '' -t rsa -q -b 2048
socat管理haproxy配置 haproxy是可以通过socat命令管理haproxy.cfg文件的:1.安装socat yum install socat -y 2.配置haproxy.cf ...
- MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》
最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是<MySQL管理之道:性能调优.高可用与监控>. 内容涵盖性能调优(包括sql优化等).备份.高可用,以及读写分离 ...
- MySQL管理之道,性能调优,高可用与监控(第二版)pdf下载
MySQL管理之道,性能调优,高可用与监控(第二版) 书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和新知识的拓展,同时也针对运维人员.DBA等相关工作者会遇到的有代表性的疑难问题给出了 ...
- MySQL 调优基础(二) Linux内存管理
进程的运行,必须使用内存.下图是Linux中进程中的内存的分布图: 其中最重要的 heap segment 和 stack segment.其它内存段基本是大小固定的.注意stack是向低地址增长的, ...
- MySQL管理之道:性能调优、高可用与监控内置脚本
MySQL管理之道:性能调优.高可用与监控内置脚本 随书附送脚本 keepalive配置文件和脚本开源工具pssh批量管理服务器(python) 下载地址 http://files.cnblogs.c ...
随机推荐
- Selenium(基于JAVA语言)-》在eclipse上运行web项目在Mac系统上启动时提示nodename nor servname provided解决办法
最近使用eclipse进行自动化测试时,遇到一种情况,无法调起浏览器,且有报错,如下: org.openqa.selenium.WebDriverException: failed to lookup ...
- .gitlab-ci.yml简介
关键字 script 由Runner执行的Shell脚本. image 使用docker镜像, image:name service 使用docker services镜像, services ...
- C#集合类型大揭秘
集合是.NET FCL(Framework Class Library)的重要组成部分,我们平常撸C#代码时免不了和集合打交道,FCL提供了丰富易用的集合类型,给我们撸码提供了极大的便利.正是因为这种 ...
- Flask之勾子,错误捕获以及模板语法
请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个视图 ...
- eslint详细配置
vue-cli3按照官网教程配置搭建后,发现每次编译,eslint都抛出错误, 修改配置在 .eslintrc.js中修改 或者 关闭eslint 1.关闭eslint 直接注释掉package ...
- redis pipline 和 事务
1. Pipeline:“管道”,和很多设计模式中的“管道”具有同样的概念,pipleline的操作,将明确client与server端的交互,都是“单向的”:你可以将多个command,依次发给se ...
- 浅谈对象的两个方法:Object.keys() ,Object.assign();
1 : Object.keys(obj) 返回给定对象的所有可枚举属性的字符串数组 例子1: var arr = [1, 2, 6, 20, 1]; console.log(Object.keys(a ...
- python ----元组方法以及修改细节
元组的一级元素不可修改 #元组,有序 tu = (111,"alex",(11,22),[(33,44)],True,33,44,) v = tu[3][0][0] print(v ...
- spring boot 添加客户端负载均衡
1.pom.xml文件中,添加依赖包 <dependency> <groupId>org.springframework.cloud</groupId> <a ...
- 为何放弃Eclipse,选择IntelliJ IDEA,看完终于明白了
如果你初次用idea,毫无目的的度娘如何使用IDEA 浪费的将会是大量的时间.一套让你花时间,少走弯路的视频教程(下载地址:https://pan.baidu.com/s/1gfeX3hD) ...