自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 问答 (4)
  • 收藏
  • 关注

原创 wireshark解析grpc/protobuf的方法

wireshark解析grpc/protobuf的方法

2024-04-03 20:46:47 522

原创 Makefile中使用go的环境变量

makefile 中 使用 go 的环境变量

2022-01-05 14:56:23 1081

原创 vector<bool>与bitset的大小对比

1,#include <iostream>#include <vector>#include <bitset>using namespace std;int main(){ vector<bool> bv(63,false); bitset<63> bs; cout<<bs.size()<<" "<<sizeof(bs)<<endl; cout

2021-04-01 09:35:08 391

原创 cplusplus初始化顺序

1,继承的顺序;#include<iostream>using namespace std;class AAA{ public: AAA(){ cout<<"AAA"<<endl; }};class BBB{ public: BBB(){ cout<<"BBB"<<endl; }};class CCC: public BBB , AAA

2021-04-01 09:01:43 142

原创 tcp 超时参数

建立连接过程中的超时:tcp_syn_retries:对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。tcp_synack_retries:对于远端的连接请求SYN,内核会发送SYN + ACK数据报,以确认收到上一个 SYN连接请求包。这是所谓的三次握手( threeway handshake)机制的第二个步骤。这里决定内核在放弃连接之前所送出的 SYN+ACK 数目。数据传输过程中的超时:tcp_retries1:一旦重传超过阈值tcp_ret...

2021-03-18 14:36:20 1076

原创 TCP 底层处理流程图

setsockopt设置 SO_LINGER 选项此选项指定函数close对面向连接的协议如何操作(如TCP)。内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。SO_LINGER选项用来改变此缺省设置。使用如下结构:struct linger {int l_onoff...

2021-03-18 11:29:52 276

原创 TCP 拥塞避免

拥塞避免思想主要用到慢启动 和 拥塞控制 两种算法:1. 当cwnd <ssthresh,使用慢启动算法,2.当cwnd >ssthresh,使用拥塞控制算法,停用慢启动算法。3.当cwnd = ssthresh,这两个算法都可以。如果出现超时或者收到3个ACK 包的话,1,从数据传输方面来讲,需要进行快重传;2,从拥塞避免方面来讲,需要进行快恢复;...

2021-03-18 11:21:14 238

原创 remote_window_left is not enough

背景:因业务需要,客户端使用brpc , 服务器端使用 grpc c++ 1.23.0 版本,当客户端每次请求1M数据时,客户端上报remote_window_left is not enough 错误;定位手段:使用双方的helloword 例子(brpc hello client 请求 grpc hello server)测试,没有问题,怀疑server端使用特殊的启动参数。查看server 端代码:ServerBuilder builder;builder.AddLis..

2021-03-17 16:07:40 355

原创 tensorflow c++ lib库编译

编译步骤:tensorflow-1.13.1 + bazel 0.21bazel --output_user_root=/data0/bazel_path build //tensorflow:libtensorflow_framework.so --copt=-march=nativebazel --output_user_root=/data0/bazel_path build //tensorflow:libtensorflow_cc.so --copt=-march=native..

2021-01-27 10:33:21 226

原创 Go程序RSS比较大的原因之一

问题描述:程序内存从1G 涨到 5G后一直没有下降查看go1.14源码发现:里面说linux 内核有bug,我出现问题的内核版本是3.10libexec/src/runtime/mem_linux.go 中有一段描述:func sysUnused(v unsafe.Pointer, n uintptr) {// By default, Linux's "transparent huge page" support will// merge pages into a huge page i

2021-01-27 10:27:20 708

原创 c++ 编译问题

1,gcc7.3.0调用 低版本时 需要添加编译选项:-D_GLIBCXX_USE_CXX11_ABI=02,源码编译时可以在configure 里制定编译选项: ./configure CFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0 " CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" LDFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"3,使用cmake 时,在调用 find_package(protobuf) 时,...

2021-01-26 20:59:56 331

原创 内存小结

1, VSS 大小 = 程序分配的内存(malloc并使用的+malloc而未使用的)+ 共享库所占有的内存2,RSS 大小 = 程序正在使用的内存(不包含swap区的) + 共享库所占用的内存;3,PSS 大小 = 程序正在使用的内存 + 共享库所占用的内存/共享库被共用的进程数;4,USS 大小 = 程序正在使用的内存...

2020-12-29 17:01:15 200 2

原创 关闭tcp连接时有时发送FIN有时发送RST

使用http 发送同一个包,sleep 20 秒后再读取数据,htpp设置1s的超时时间,超时后会关闭socket ,可是有时发送RST,有时发送FIN,如下图:后来google 了一把,发现 tcp 的接受缓冲区的数据到 用户态,中间会有三个队列:正常来说 TCP 收消息过程会涉及三个队列:Backlog Queuesk->sk_backlog Prequeuetp->ucopy.prequeue Receive Queuesk->sk_receiv...

2020-12-15 15:26:49 1730

原创 tcp一端断开,另一端还是established 状态

遇到一个奇怪的问题:当服务端处理不过来的时候,把客户端kill 掉,使用netstat 查看,还有established 状态的tcp 连接;原因:由于服务器处理不过来,导致tcp 缓冲区堆积,FIN的数据包不是丢了就是还未被处理,netstat 信息如下:tcp 129 0 0.0.0.0:15613 0.0.0.0:* LISTEN 37407/AAAAAtcp 5346128 0 127.0.0.1:15613 127.0.0.1:56210 ESTABLISHED 37407/AAAAA

2020-12-07 15:01:49 3490

原创 几种获取本地Ip的方法

1,python: python -c 'import socket;s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM);s.connect(("www.baidu.com",0));print s.getsockname()[0]'2, dig 命令: dig +noall +answer www.baidu.com | head -n 1 | cut -d $'\t' -f 5 | xargs ip route get | he...

2020-08-14 16:34:46 177

原创 systemctl配置文件连接数设置问题

1).service 中如果没有配置nofile的连接数,会使用系统的连接数限制[root@localhost bin]# ulimit -n1024[root@localhost bin]# ulimit -Sn1024[root@localhost bin]# ulimit -Hn4096[root@localhost bin]# cat /proc/25168/limitsLimit Soft Limit Hard Li...

2020-08-13 16:22:12 496

原创 faiss安装遇到的问题

环境,redhat7.3问题1: configure: error: An implementation of BLAS is required but none was found. --yum install openblas-devel问题2: swig -python -c++ -Doverride= -I../ -DSWIGWORDSIZE...

2019-12-20 08:58:48 1580

原创 c++多继承虚函数内存布局

在gdb 调试中调试多继承的虚函数时,有几个总是忘记,以下做一下总结:代码:#include <iostream> using namespace std;class Destroyable {public: virtual ~Destroyable() {} virtual void Destroy() = 0;}; class ...

2019-12-11 16:15:04 275

转载 Linux下TCP延迟确认(Delayed Ack)机制导致的时延问题分析

转载:https://cloud.tencent.com/developer/article/1004356

2019-04-18 14:46:28 775

原创 python pb与json互转

(1) test.proto文件: message test { optional int32 a1 =1; optional int32 a2 =2; }(2)python 文件: from google.protobuf import json_format json_obj='{"...

2019-04-17 10:40:17 8930

原创 mongoose 表名会自动增加s

 mongoose 创建的表会自动增加一个字符's'比如下面代码创建的表是test_table , 而实际上是test_tables   var mongoose = require("mongoose");   mongoose.connect("mongodb://192.168.1.17:27017/testdb",function(e){  if(e)      c...

2018-12-20 15:51:40 859

原创 c++ 高并发中遇到的几个性能问题总结

1,单个请求时,耗时比较少4ms,并发量上来时,耗时15ms左右; -- gcc 编译时,使用-O2的选项;2,在1的基础上,高并发时,耗时变为8ms左右; -- 将代码中对象拷贝的地方改为指针拷贝;3,在2的基础啊上,高并发时,耗时变为5ms左右,qps只能达到2000; -- 将gcc 的 -pg 选项删除掉;4,在3的基础上,高并...

2018-12-19 16:53:52 1755 1

原创 由mutex引起的线程挂住

查看进程时:进程一直挂在 __pause_nocancel 函数,然后进行gdb 调试:(gdb)  bt#0  0x000000385d60efe0 in __pause_nocancel () from /lib64/libpthread.so.0#1  0x000000385d60917b in __pthread_mutex_lock_full () from /lib64/l

2016-09-02 15:00:47 1089

原创 使用ceph-deploy部署ceph环境

uname -r3.10.0-123.el7.x86_64ceph -vceph version 0.94.7 (d56bdf93ced6b80b07397d57e3fa68fe68304432)(1) 准备5台机器并修改/et/hosts文件。 192.168.0.2       ceph-client 192.168.0.3       ceph-admin

2016-08-09 14:56:24 2891

原创 hadoop mapreduce 例子

package test;import java.io.IOException;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.hadoop.conf.Configuration;impo

2015-12-25 19:17:27 331

原创 node.js 调用 mongoose 的 aggregate 函数

下面的例子执行成功后,在mongodb中的表是tests ,自动加了一个字符“s”,这是个坑啊!!!  var mongoose = require("mongoose");    mongoose.connect("mongodb://192.168.1.17:27017/test",function(e){  if(e)      console.log(e.message

2015-12-25 19:07:07 7841

原创 node.js 调用mongodb的group 函数,并到处到excel 中。

mongoose 没有找到调用group的API 只能用mongodb自带的方式实现。var fs = require('fs');var xlsx = require('node-xlsx');var MongoClient = require('mongodb').MongoClient,  Code = require('mongodb').Code;var co

2015-12-25 19:01:15 662

原创 mongodb mapreduce, aggregate, group 的类似功能

先定义map ,reduce函数m = function () {    emit(this.carrier, this.impCount);};r = function (key, values) {    var x = 0;    values.forEach(function (v) {x += v;});    return x;};第一种

2015-12-25 18:49:10 704

原创 常用命令

如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看:`kf DPZ2c0lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more   查看CPU 个数:cat /proc/cpuinfo |grep "processor"|sort -u|wc -l定时查看某个结果:

2015-05-18 15:37:43 237

转载 python 访问 elasticsearch

import pyesconn = pyes.ES(['127.0.0.1:9200'])#连接esdef creat():    #conn.indices.create_index('test-index')#新建一个索引    #定义索引存储结构    mapping = { u'id': {'boost': 1.0,                   

2015-05-18 15:28:52 7184 3

转载 c++ 访问 elasticsearch 的API

        ElasticSearch es("localhost:9200");        // Index one document.       for(int i =0 ; i        {            Json1::Object jData;            jData.addMemberByKey("id", i);     

2015-05-18 15:19:59 5943

转载 elasticsearch 相关知识

http://www.vpsee.com/2014/05/install-and-play-with-elasticsearch/安装和使用 Elasticsearch2014年05月16日 | 标签: elasticsearch, linux, python | 作者:vpseeElasticsearch 是开源搜索平台的新成员,实时数据分析的神器,发

2015-05-18 15:13:23 325

C++ API FOR ELASTICSEARCH

C++ API FOR ELASTICSEARCH

2015-05-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除