自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Linux服务器相关的低时延调优

步骤3:查看缓存队列是否有溢出cat /proc/net/softnet_stat (结果第二列是否大于0),大于零则调大/proc/sys/net/core/netdev_max_backlog为2000或更大,默认为1000;步骤2:TCP低时延/proc/sys/net/ipv4/tcp_low_latency 设置为1(此时prequeue队列启用);步骤3:查看该网卡的亲核性,cat /sys/class/net/em1/device/numa_node;

2024-04-18 13:44:02 380

原创 Linux下跟踪某个进程的内核处理时延消耗情况

3.给脚本添加可执行权限,并执行,2秒后自动停止,从/home/xxx/tracelog.txt中查看具体时延消耗情况。1.利用系统自动的trace功能,编辑如下脚本,vim trace_process.sh。2.执行脚本前可以先记录上述几个配置的原始值,并填入上述脚本的后三项还原配置中。

2024-04-18 09:03:40 133

转载 Mysql C api--关闭ssl功能

MySQL-C API关闭ssl功能

2022-11-14 13:53:32 822 1

原创 setuid(0)失败原因

setuid失败问题,返回错误码是EPERM

2022-09-29 14:38:09 1548

转载 网卡收包中断的上半步和下半部

文章转载自中断的上半部和下半部 - blogernice - 博客园一、什么是下半部中断是一个很霸道的东西,处理器一旦接收到中断,就会打断正在执行的代码,调用中断处理函数。如果在中断处理函数中没有禁止中断,该中断处理函数执行过程中仍有可能被其他中断打断。出于这样的原因,大家都希望中断处理函数执行得越快越好。另外,中断上下文中不能阻塞,这也限制了中断上下文中能干的事。基于上面的原因,内核将整个的中断处理流程分为了上半部和下半部。上半部就是之前所说的中断处理函数,它能最快的响应中断,并且做一些必

2021-12-10 16:20:54 660

原创 记录相关库或者工具以及知识点

ffmpeg 库下载链接https://github.com/BtbN/FFmpeg-Builds/releases?page=1

2021-11-11 18:02:11 711

转载 循环队列 代码实现(FIFO)

参考https://blog.csdn.net/shyjhyp11/article/details/71512455

2021-11-02 16:17:10 133

原创 linux CentOS7 nginx nginx-rtmp-module搭建直播推流

1. 安装 Nginx 依赖软件yum -y install gcc gcc-c++ autoconf automake makeyum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

2021-06-03 14:49:07 391

原创 字节对齐导致pthread_cond_timedwait 占用高CPU问题

Mark下调试中出现的诡异现象,在程序中添加一个内存管理模块后,导致了其他线程占用高cpu,该线程的线程栈如下(该线程主要功能就是处理模块间的消息):#0 0x00007f81b7d48da2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0#1 0x0000000000416a80 in MsgQueue::Dequeue (this=0x13af1961, item=...) at ../public..

2020-10-29 17:31:20 1296

原创 Android-gdb远程调试so文件

https://www.jianshu.com/p/d532d196c89f

2020-08-19 10:21:38 607

原创 Mysql(8.0.19) Community版本主从配置

安装数据库,确保两台主从服务器的数据库版本一致,本人安装的是8.0.19 数据初始同步(将主库数据备份下来,然后在备用库上导入,可使用SQLyog来做初始同步,也可以用命令行,具体做法百度吧) 配置Mater数据库创建同步用户,并进行授权create user 'replicate'@'%' identified with 'mysql_native_password' by 'my@passwd';grant replication slave on *.* to 'replicate'@'

2020-07-08 17:38:02 277

转载 Android Netd ndc

介绍Netd 就是Network Daemon 的缩写,表示Network守护进程。Netd负责跟一些涉及网络的配置,操作,管理,查询等相关的功能实现,比如,例如带宽控制 (Bandwidth),流量统计,带宽控制,网络地址转换(NAT),个人局域网(pan),PPP链接,soft-ap,共享上网(Tether), 配置路由表,interface配置管理,等等……通过netlink,虚拟文件系统,等linux内核提供的用户接口,通信内核,或者直接执行系统模块,管理网络相关部分。ndc (nati

2020-06-04 15:17:14 1404

原创 centos7策略路由配置

服务器配置多网卡多网关时,为了避免是不是的去添加相关回程路由,因此需要配置一下策略路由服务器系统版本:CentOS Linux release 7.3.16111.vi /etc/iproute2/rt_tables 后面加上101 innerRoute102 globalRoute2.添加路由配置脚本(脚本执行已验证可用)ip route...

2020-04-28 16:41:12 2055

转载 初学者也能看懂的DPDK解析

绝对干货!初学者也能看懂的DPDK解析一、网络IO的处境和趋势从我们用户的使用就可以感受到网速一直在提升,而网络技术的发展也从1GE/10GE/25GE/40GE/100GE的演变,从中可以得出单机的网络IO能力必须跟上时代的发展。1.传统的电信领域IP层及以下,例如路由器、交换机、防火墙、基站等设备都是采用硬件解决方案。基于专用网络处理器(NP),有基于FPGA,更有基于...

2020-04-03 16:17:48 295

原创 vue-i18n 切换中英文

1.首先使用npm安装vue-i18n安装命令:npm install vue-i18n2.在src/renderer目录(我的项目是如此)下创建如下目录和文件:a):创建目录src/renderer/i18nb):创建目录src/renderer/i18n/langsc):在src/renderer/i18n目录下新建文件i18n.js,内容如下:import...

2020-04-02 17:30:07 477

原创 vue项目:Cannot read property '_t' of null报错

在使用vue开发一个windows app项目时,遇到Cannot read property '_t' of null的报错,报错的地方是使用this.$message接口在app界面弹出提示框,由于采用中英文的语言国际化,出错之前使用vue.$t("xxx.xx")来获取中英文的提示语(该使用方法可以参考我之前引用的另一篇文章《vue-i18n 切换中英文》),用得挺好的,后台不知道啥...

2020-04-02 17:06:27 4764

转载 恢复误操作update未加where条件的mysql数据表

记录一下:因为自己的误操作,导致运营中的数据库表数据被更新掉(update未加where条件),本文章引用来自https://blog.51cto.com/wujianwei/2294284?cid=720522一.环境说明MySQL 上update操作时,忘加where条件 ,使用mysqlbinlog搭配sed命令完美还原MySQL版本号:(MySQL Community S...

2020-04-02 16:46:51 1852

转载 TensorFlow深度学习,一篇文章就够了

作者: 陈迪豪,就职小米科技,深度学习工程师,TensorFlow代码提交者。TensorFlow深度学习框架Google不仅是大数据和云计算的领导者,在机器学习和深度学习上也有很好的实践和积累,在2015年年底开源了内部使用的深度学习框架TensorFlow。与Caffe、Theano、Torch、MXNet等框架相比,TensorFlow在Github上Fork...

2018-06-12 21:47:05 298

原创 static_cast、dynamic_cast、const_cast、reinterpret_cast

    c++除了能使用c语言的强制类型转换外,还新增了四种强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast,主要运用于继承关系类间的强制转化,语法为:static_cast<new_type> (expression)dynamic_cast<new_type> (expressio...

2018-06-12 14:56:42 233

原创 代码cpu性能统计工具以及内存泄漏检测

一:性能分析曾经在测试C++代码性能的时候发现代码执行效率比较低,完全没法满足需求,束手无策,后面经过TX的帮助进行定位,解决,颇有收获,遂记录之:1.首先需要安装好callgrind工具,我安装的是valgrind-3.11.0版本(安装问百度吧)。2.使用valgrind工具来执行代码,会生成一个callgrind.out.xxx的文件,其中xxx表示进程号命令:valgrind --tool...

2018-06-11 10:56:27 617

转载 linux内存管理机制

前一段时间看了《深入理解Linux内核》对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看法和认识。  我比较喜欢搞清楚一个技术本身的发展历程,简而言之就是这个技术是怎么发展而来的,在这个技术之前存在哪些技术,这些技术有哪些特点,为什么会被目前的技术所取代,而目前的技术又解决了之前的技术所存在的哪些问...

2018-06-08 17:00:40 263

原创 MySQL在insert时遇到“Incorrect integer value: '' for column 'idx' at row 1“

 在之前一篇blog中有提到mysql常用数据库语句时,使用过以下语句:insert into new_table select NULL,a.phone,name,age,address,NULL, b.birthfrom students a, info_table b where studentnum in ( '20180722121735', '20180721174...

2018-06-08 10:26:42 1244

原创 c语言使用kafka消息队列的实例

1.提供初始化以及收发消息接口,rd_kafka_msg.h#ifndef RDKAFKA_MSG_H_#define RDKAFKA_MSG_H_#include "rdkafka.h"int kafka_init(char mode, char* topic, int partion, char* brokers, rd_kafka_topic_conf_t **topic_...

2018-06-07 15:08:03 9247

原创 string类实现

这个在面试中经常被问及的知识点,在此记录一下。class String{public: String(); String(const char* str); String(const String& other); String& operator=(const String& other); String& perator=(const char...

2018-06-07 14:12:19 119

原创 fork与vfork,exit()与_exit(),malloc与kmalloc及vmalloc,wait与waitpid

1.fork与vfork    fork介绍:    pid_t fork(void);    linux中fork函数用于从当前进程中创建一个新进程,函数有两个返回值,在父进程中返回子进程的pid,在子进程中返回0,出错就返回-1,fork函数创建一个子进程时,fork函数分配新的内存块和内核数据结构给子进程,把父进程部分数据结构内容拷贝入系统进程列表中,然后fork函数返回,开始调度器调度。注...

2018-06-06 09:50:41 158

原创 红黑树知识介绍

1.红黑树介绍红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的“红黑树”。红黑树和AVL树类似,...

2018-05-31 16:35:13 168

原创 单链表逆序

ListNode* ReverseList(ListNode* head){ if(NULL == head || NULL == head->next) return head; ListNode* pnext = head->next; head->next = NULL; ListNode* newhead = ReverseList(pnext)...

2018-05-17 16:28:42 190

原创 net.ipv4.tcp_timestamps引发的tcp syn无响应案

    在我目前一个高并发的项目中,一度出现服务器不再响应任何TCP的syn请求,新的客户端死活介入不了服务。出现该状态之前由于并发亮的增加,曾经优化过服务器,主要是将TIME-WAIT sockets重新用于新的TCP连接,优化如下:1.修改/ect/sysctl.confnet.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4...

2018-05-17 16:00:55 19278 1

原创 优化--单台服务器支持百万级别tcp长连接

如何在单台服务器上实现百万级长连接,以下是实现该目标进行的一些优化:1.首先需要准备一台大内存的服务器,装上linux系统,比如rehat、centos(内核版本在2.6.25之上)等。    为什么需要大内存,因为每个连接都需要有读写缓存,具体看第二部内容;    为什么内核版本要在2.6.25之上,因为2.6.25内核之前有个 宏定义,定义了最大文件描述符大小为1024*1024,正好是100...

2018-05-17 11:50:28 5257 1

转载 分布式系统一致性原理与解决方案(ACID、CAP、BASE)

1 背景一致性是一个抽象的、具有多重含义的计算机术语,在不同应用场景下,有不同的定义和含义。在传统的IT时代,一致性通常指强一致性,强一致性通常体现在你中有我、我中有你、浑然一体;而在互联网时代,一致性的含义远远超出了它原有的含义,在我们讨论互联网时代的一致性之前,我们先了解一下互联网时代的特点,互联网时代信息量巨大、需要计算能力巨大,不但对用户响应速度要求快,而且吞吐量指标也要向外扩展(既:水平...

2018-05-17 10:45:25 1041

转载 从分布式一致性谈到CAP理论、BASE理论

问题的提出在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景。1、火车站售票假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行----一切似乎都是那么和谐。想象一下,如果他选择的目的地是杭州,而某一趟开往杭州的火车只剩下最后一张车票,可能在同一时刻,不同售票窗口的另一位乘客也购买了...

2018-05-17 10:10:58 162

原创 mysql常用命令

归档记录/*查找表中符合条件的所有记录*/SELECT * FROM my_test WHERE name='test'/*查找表中符合条件的并且name字段不重复的所有记录数*/SELECT COUNT(DISTINCT name) FROM my_testWHERE starttime>='2018-05-09 00:00:00' AND endtime<='2018-05-09...

2018-05-16 16:56:02 146

原创 python操作mongo数据库

归档写过的python进行mongo数据库操作的code# -*- coding: utf-8 -*-#!/usr/bin/python"""Spyder EditorThis is a temporary script file."""import osimport reimport sysimport jsonimport pymongoimport timeimp...

2018-05-16 16:03:38 212

原创 python操作mysql,递归读取目录下文件

import osimport reimport timeimport datetimeimport MySQLdbc08imeimap={}c08online1minuser={}c08online5minuser={}c08online10minuser={}onlinenumperhour={'00':{},'01':{},'02':{},'03':{},'04':...

2018-05-16 15:59:14 291

原创 重建二叉树

给出某二叉树的前序遍历和中序遍历的序列,请重建出该二叉树:    根据二叉树的前序遍历的特性,每次读取的第一个值一定是根节点,这样我们可以在中序遍历的序列中找到当前的根节点的位置。该位置左边的就是该树的左子树,右边的就是右子树了。    因此,我们每次都需要在前序遍历中找根节点并创建一个根节点,然后在中序遍历中确定根节点位置,并确定当前根节点的左右子树,然后以同样的方法去构建左右子树。这整个过程其...

2018-05-16 15:11:33 115

原创 memcpy

memcpy存在两种情况的拷贝 一种是由内存覆盖,另一种是无内存覆盖针对内存覆盖情况,只有一下一种需要从后往前拷贝:dst < src + len && dst > src不多说直接上代码:#include <stdio.h>  #include<string.h>  #include <assert.h>  void* my_mem...

2018-05-16 11:19:14 706

原创 select、poll以及epoll介绍以及区别

IO多路复用机制有select,poll,epoll三种,所谓I/O多路复用就是通过某种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。本质上select,poll,epoll都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,异步I/O的实现会负责把数据从内核拷贝到用户空间。    select是几...

2018-05-16 10:54:41 223

原创 udp使用connect建立连接与普通udp连接区别

    UDP中connect操作与TCP中connect操作有着本质区别.TCP中调用connect会引起三次握手,client与server建立连结.UDP中调用connect内核仅仅把对端ip&port记录下来使用connect建立的udp连接相比于普通udp连接有两个优势:一: 提高发送效率1.在普通udp连接上发送两个报文,在内核操作如下:        a) 建立连接;b)发送...

2018-05-15 11:36:02 8663

转载 tcp流控与拥塞

                                                                                  TCP的流量控制和拥塞控制一、TCP的流量控制1. 利用滑动窗口实现流量控制    如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。    利用...

2018-05-15 11:20:26 355

转载 智能指针

《C++ Primer Plus》第六版,这本书中关于智能指针的章节解析的非常清晰,记录一下,有哪些智能指针?其设计原理是什么?自己怎么设计一个智能指针?而且在看开源的C++项目时,也能随处看到智能指针的影子。智能指针背后的设计思想void remodel(std::string & str){ std::string * ps = new std::string(str); ...

2018-05-14 15:14:20 104

空空如也

空空如也

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

TA关注的人

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