![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 68
几米夜空
IT
展开
-
【无标题】Wayland跨进程调用浅析
linux wayland转载 2022-07-19 15:21:20 · 295 阅读 · 0 评论 -
linux图形系统框架
linux图形系统框架转载 2022-06-19 12:08:20 · 1457 阅读 · 1 评论 -
Linux中pkg-config的使用
1. pkg-config简单介绍pkg-config在编译应用程序和库的时候作为一个工具来使用。例如你在命令行通过如下命令编译程序时:# gcc -o test test.c `pkg-config --libs --cflags glib-2.0`pkg-config可以帮助你插入正确的编译选项,而不需要你通过硬编码的方式来找到glib(或其他库)。--cflags一般用于指定头文件,--libs一般用于指定库文件。大家应该都知道一般用第三方库的时候,就少不了要使用到第三方的头文件原创 2022-04-01 09:56:17 · 8715 阅读 · 0 评论 -
解决linux中挖矿病毒
服务器服务不响应有同事反应gitlab无法使用,登录服务器后台,发现有个进程占用CPU很高,进程名异常获取病毒绝对路径[root@localhost ~]# cat /proc/17521/cmdline wswfEOH6[root@localhost ~]# ls -l /proc/17521/exe lrwxrwxrwx. 1 root root 0 7月 13 10:03 /proc/17521/exe -> /root/b5e9c4b2a988579aa182c393.原创 2021-07-13 10:28:55 · 7853 阅读 · 6 评论 -
Linux 性能分析工具汇总
出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章。本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面。如果没有完善的计算机系统知识,网络知识和操作系统知识,文档中的工具,是不可能完全掌握的,另外对系统性能分析和优化是一个长期的系列。本文档主要是结合Linux 大牛,Netflix 高级性能架构师 Brendan Gregg 更新 Linux 性能调优工具的博文,搜集Linux系统性能优化相关文章整理后的一篇综合性文章,主要是结合博文对涉及到的原理和性能测试转载 2021-04-25 13:49:41 · 333 阅读 · 1 评论 -
Linux服务器丢包故障的解决
我们使用Linux作为服务器操作系统时,为了达到高并发处理能力,充分利用机器性能,经常会进行一些内核参数的调整优化,但不合理的调整常常也会引起意想不到的其他问题,本文就一次Linux服务器丢包故障的处理过程,结合Linux内核参数说明和TCP/IP协议栈相关的理论,介绍一些常见的丢包故障定位方法和解决思路。在开始之前,我们先用一张图解释 linux 系统接收网络报文的过程。首先网络报文通过物理网线发送到网卡 网络驱动程序会把网络中的报文读出来放到 ring buffer 中,这个过程使用 DMA(转载 2020-12-10 11:31:13 · 4314 阅读 · 0 评论 -
NAT穿越技术
1、引言网络地址转换(Network Address Translation,简称NAT)是一种在IP分组通过路由器或防火墙时重写源IP地址或/和目的IP地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有IP地址访问因特网的私有网络中。20世纪90年代中期,NAT是作为一种解决IPv4地址短缺以避免保留IP地址困难的方案而流行起来的。家庭和小型办公室的路由器一般都集成了防火墙,DHCP服...转载 2020-03-05 18:34:34 · 700 阅读 · 1 评论 -
RPM包修订,重新打包
项目有需求,需要自己重新编译nginx,添加一些模块,需要生成rpm包,这网上二进制的nginx rpm包,可以根据该rpm包,修改一下spec文件,再重新打包即可。具体步骤如下所示:1.安装相关工具,主要是rpmbuild等相关工具从下载https://sourceforge.net/projects/rpmrebuild/files/rpmrebuild/2.12-1/下载:wge...原创 2019-12-13 18:56:08 · 865 阅读 · 0 评论 -
CentOS7.4 network.service NetworkManager.service 冲突
最近在玩dpdk kni,往kni虚拟口上使用ifconfig配置ip地址,发现配置的ip会无缘无故消失,以为是kni的bug,后面经同事指点,说有可能是networkmanager导致的,故查看了一下syslog日志:tailf /var/log/messageNov 29 16:02:55 localhost NetworkManager[843]: <warn> [15...原创 2019-11-29 16:53:59 · 3036 阅读 · 0 评论 -
linux 获取网络状态信息(Rtnetlink)
Rtnetlink 允许对内核路由表进行读和更改,它用于内核与各个子系统之间(路由子系统、IP地址、链接参数等)的通信,用户空间可以通过NET_LINK_ROUTER socket 与内核进行通信,该过程基于标准的netlink消息进行。一些rtnetlink消息在初始头后有一些可选属性,下面是该属性的结构:1 struct rtattr {2 unsigned sh...转载 2019-11-13 15:26:08 · 2913 阅读 · 0 评论 -
工欲性能调优,必先利其器- 火焰图
在前一篇文章,我们简单提到了 perf,实际 perf 能做的事情远远不止这么少,这里就要好好介绍一下,我们在 TiKV 性能调优上面用的最多的工具 - 火焰图。火焰图,也就是 FlameGraph,是超级大牛 Brendan Gregg 捣鼓出来的东西,主要就是将 profile 工具生成的数据进行可视化处理,方便开发人员查看。我第一次知道火焰图,应该是来自 OpenResty 的章亦春介绍...转载 2018-12-21 11:11:08 · 317 阅读 · 0 评论 -
使用 GNU Libtool 创建库
介绍在不同的系统中建立动态链接库的方法有很大的差别,这主要是因为每个系统对动态链接库的看法和实现并不相同,以及编译器对动态链接库支持的选项也不太一样。对于开发人员,如果尝试将使用动态库的软件在这些系统之间移植,需要参考枯涩难懂的系统手册,以及修改相应的 Makefile,这一工作是乏味的,并且具有一定的难度。使用 GNU Libtool 可以容易的在不同的系统中建立动态链接库。它通过一个称...转载 2019-01-07 14:03:35 · 156 阅读 · 0 评论 -
CentOS 6.x 如何升级 glibc 2.17
CentOS 6.x 如何升级 glibc 2.17ldd --versionrpm -qa | grep glibc#查看glibc的版本strings /lib64/libc.so.6 |grep GLIBC_sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel read...转载 2019-03-15 20:15:17 · 1859 阅读 · 0 评论 -
搭建gitlab
centos 7无ifconfig工具,安装net-tools即有,yum install net-tools安装mysql:centos 7默认有安装mariadb,故要先删除mariadb,执行下面命令yum remove mariadb*http://www.cnblogs.com/pythonal/p/6141516.htmlwget http://dev.mysql.com/...原创 2019-03-22 09:59:41 · 937 阅读 · 0 评论 -
linux虚拟内存,内存及内存管理相关
想必在Linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES和SHR三个重要的指标,他们分别代表什么意思呢?这是本文需要跟大家一起探讨的问题。当然如果更加深入一点,你可能会问进程所占用的那些物理内存都用在了哪些地方?这时候top命令可能不能给到你...转载 2019-03-28 19:39:01 · 790 阅读 · 0 评论 -
Linux 下RPM打包制作流程
Linux 下RPM打包制作流程开始前的准备安装rpmbuild软件包yum -y install rpm-build生成相关目录要生成rpm相关目录,可以手动创建,也可以通过rpmbuild命令创建。如:[root@yang data]# rpmbuild zabbix_agentd_ops.spec error: File /root/rpmbuild/SOURCES...转载 2019-04-09 11:42:09 · 3554 阅读 · 0 评论 -
Reed-Solomon 编码算法
理论基础一: 有限域算法 理论基础二:Vandermonde 矩阵 数据冗余与恢复 Reed-Solomon 算法示例 RS 算法理解与应用 延伸阅读Reed-Solomon (RS) 是一种纠错码算法, 纠错码是说对原始数据通过计算得到检验数据, 根据这些冗余的校验数据, 可以保证原始数据的可恢复性.极大距离可分法(Maximun Distance Seperable codes...转载 2019-04-25 14:25:37 · 8329 阅读 · 1 评论 -
Linux下段错误调试技巧
更新于2019.04.17我们写的程序, 尤其是C/C++程序有时候会段错误, 而且往往发生在部署环境而非调试环境, 对问题定位带来很大困难. 这时一般有两种方法来解决问题, 一种是生成core dump文件, 然后用gdb调试这个文件; 另一种是不生成core dump文件, 而使用其他工具来定位问题.生成core dump文件并用gdb调试最简单的方法是运行ulimit -c un...转载 2019-06-18 15:23:30 · 514 阅读 · 0 评论 -
使用 LVS 实现负载均衡原理及安装配置详解
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。一、负载均衡LVS基本介绍LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好...转载 2019-07-02 17:54:29 · 331 阅读 · 0 评论 -
在qemu kvm虚机中编译DPVS
编译前准备创建虚机创建一个虚机,这边用以前有的base镜像及xml文件,这边使用centos 7镜像,创建一个叉分镜像,具体命令为:qemu-img create -b /opt/lessons/centos7.base -f qcow2 vm1.base创建后就根据原先的xml文件修改一下即可,修改后的centos.xml文件为:<domain type='kvm'...原创 2019-08-15 17:29:55 · 778 阅读 · 1 评论 -
make: *** /lib/modules/2.6.32-573.el6.x86_64/build: 没有那个文件或目录。 停止。
centos 6.5在编译dpdk时遇到了如下问题:Option: 14make[5]: Nothing to be done for `depdirs'.Configuration done== Build lib== Build lib/librte_compat== Build lib/librte_eal== Build lib/librte_e原创 2016-04-25 15:56:17 · 19798 阅读 · 2 评论 -
Linux 问题故障定位,看这一篇就够了
来自:Lucien_1681、背景有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分析问题和踩坑是非常锻炼一个人的成长和提升自我能力。如果我们有一套好的分析工具,那将是事半功倍,能够帮助大家快速定位问题,节省大家很多时间做更深入的事...转载 2018-11-27 13:48:55 · 395 阅读 · 0 评论 -
关于linux静态库和动态库知识
Linux的静态库打包是用ar,所谓的打包,其实很类似tar,只不过能被gcc识别罢了。比如ar cr libmain.a main.cpp main.h,那么ar -t libmain.a就会发现,其实libmain.a里面就是main.cpp,main.h而已。所以用ar打包时,只有打包.o文件是有用的,如果你希望把其他的lib打包进来,比如想打包libseg.a,使用 ar cr li...原创 2018-09-11 13:47:13 · 227 阅读 · 0 评论 -
ubuntu下安装tcpdump
一些ubuntu系统未安装tcpdump,由于需要抓包,故需要安装tcpdump,首先尝试使用:apt-get install tcpdump无法安装,故尝试使用deb包安装,首先去https://pkgs.org/download/tcpdump网站下载自己对应系统的deb包,本机使用的是tcpdump_4.9.2-0ubuntu0.16.04.1_amd64.deb,在ubuntu...原创 2018-07-19 17:06:47 · 11642 阅读 · 1 评论 -
Linux学习之CentOS(二十六)--Linux磁盘管理:LVM逻辑卷的创建及使用
http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/24/3096087.html 在上一篇随笔里面 Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理,包括LVM中最重要的四个基本点(PE、P转载 2016-06-01 11:49:04 · 1932 阅读 · 0 评论 -
TCP加速–dpdk实践
0、dpdk介绍DPDK主要用到三个技术点分别为hugetlbpage、uio以及cpu affinity;1)关于hugetlbpage,它的主要好处当然是通过利用大内存页提高内存使用效率;2)而uio是实现用户空间下驱动程序的支撑机制,由于DPDK是应用层平台,所以与此紧密相连的网卡驱动程序(当然,主要是intel自身的千兆igb与万兆ixgbe驱动程序)都通过uio机制运行在转载 2016-04-18 15:42:28 · 4525 阅读 · 0 评论 -
源码nginx+php 7.0+mysql搭建WordPress
引言工作中需要搭建一个web服务器用于验证谷歌最新的压缩算法Brotli,上网找到nginx有支持brotli算法的模块,于是动手搭建一个nginx + php 7.0 + mysql 5.6的WordPress环境,也可以通过这环境玩玩WordPress。环境及准备工作环境为:linux centos 7.0,x86_64架构,具体为Linux test-server-2 3.10.原创 2016-04-15 10:45:39 · 5244 阅读 · 0 评论 -
Brotli压缩算法
在去年9月, Google就已经在官方博客上发布了新的压缩算法Brotli, 并开源在了Github上.同时还发布了一个研究报告, 対Brotli, Deflate, Zopfli, LZMA, LZHAM和Bzip2这几种压缩算法进行了细致的对比. 从中我们可以知道Brotli的特性大概有这样几点:对于典型的Web资源(html,css,js等), Brotli比Gzip性能好1转载 2016-04-12 11:31:04 · 11318 阅读 · 0 评论 -
使用openssl生成证书
一、生成证书步骤1.先创建一个目录,我这边创建的目录是/var/myca,终端指向该目录1.生成私钥(key文件):openssl genrsa -des3 -out server.key 20482.去除key文件口令,不然每次读取key文件都要输入口令openssl rsa -in server.key -out server.key3.key生成一个csr证书:openssl原创 2016-04-12 10:31:13 · 1796 阅读 · 0 评论 -
linux调度器源码分析 - 运行(四)
转载:http://blog.chinaunix.net/uid/26772321.html引言 之前的文章已经将调度器的数据结构、初始化、加入进程都进行了分析,这篇文章将主要说明调度器是如何在程序稳定运行的情况下进行进程调度的。 系统定时器 因为我们主要讲解的是调度器,而会涉及到一些系统定时器的知识,这里我们简单讲解一下内核中定时器是如何组织,转载 2016-04-12 10:25:55 · 412 阅读 · 0 评论 -
linux调度器源码分析 - 新进程加入(三)
转载:http://blog.chinaunix.net/uid/26772321.html 引言 之前的文章已经介绍了调度器已经初始化完成,现在只需要加入一个周期定时器tick驱动它进行周期调度即可,而加入定时器tick在下一篇文章进行简单说明(主要这部分涉及调度器比较少,更多的是时钟、定时器相关知识)。这篇文章主要说明系统如何把一个进程加入到队列中。转载 2016-04-12 10:24:23 · 397 阅读 · 0 评论 -
linux调度器源码分析 - 初始化(二)
转载:http://blog.chinaunix.net/uid/26772321.html引言 上期文章linux调度器源码分析 - 概述(一)已经把调度器相关的数据结构介绍了一遍,本篇着重通过代码说明调度器在系统启动初始化阶段是如何初始化和工作的。通过上期文章我们知道,在多核CPU和SMP系统中,每个CPU(多核COU中的每个核)都有自己的struct rq队转载 2016-04-12 10:22:51 · 500 阅读 · 0 评论 -
nginx配合modsecurity实现WAF功能
modsecurity原本是Apache上的一款开源waf,可以有效的增强web安全性,目前已经支持nginx和IIS,配合nginx的灵活和高效,可以打造成生产级的WAF,是保护和审核web安全的利器。一.准备工作系统:centos 6.5 64位、 tengine 2.1.0, modsecurity 2.8.0tengine : http://tengine.taobao.o转载 2016-07-11 14:58:18 · 3442 阅读 · 0 评论 -
CentOS Linux下用Nginx和Naxsi搭建Web应用防火墙
Naxsi是一个开源,高性能,低维护规则,nginx的Web应用程序防火墙模块,著名的Web服务器和反向代理。它的目标是帮助人们保护其Web应用程序,对跨站脚本,SQL注入,跨站请求伪造,本地和远程文件包含攻击。二、下载Naxsicd /data0/software/wget https://github.com/nbs-system/naxsi/archive/master.z转载 2016-07-11 15:00:57 · 5767 阅读 · 0 评论 -
ss命令
ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感转载 2016-09-01 16:51:40 · 431 阅读 · 0 评论 -
spice 0.14.0添加新功能
目前spice 0.14.0需要修改传输方式,把TCP协议传输方式改为QUIC传输方式,QUIC是一个静态库,需要修改spice代码及依赖这个静态库,为了使spice支持QUIC功能可配置,这就需要修改automake相关文件,添加配置宏(用于隔离修改的代码)、添加库依赖等,具体步骤如下所示: 修改configure.ac文件,增加quic模块开启/关闭功能,若开启则定义一个宏...原创 2018-06-25 10:16:17 · 633 阅读 · 0 评论 -
mysql 5.7忘记密码及重新更改目录,无相关文件
mysql更改配置后,数据库存储目录更改,mysql出现mysqld: Table 'mysql.plugin' doesn't exist2018-06-14T08:14:22.143907Z 0 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.2018-06-14T08:14:22...原创 2018-06-14 16:45:36 · 666 阅读 · 0 评论 -
CentOS 6&7 安装使用多个GCC版本(GCC4.9,GCC5.3,GCC6.2)
CentOS 作为企业级服务器操作系统被广泛使用,其中使用C++开发服务器应用又是常见的,可是CentOS本身自带的GCC版本更新缓慢,要想使用较新的GCC版本就是一个经常需要解决的问题,当然可以自行编译GCC源码,但是比较麻烦,而且很难做到多个GCC版本之间进行切换。从CentOS6开始,CentOS自身提供了一种方式可以使用Scientific Linux distribution发行版的de...转载 2018-06-05 16:54:25 · 3867 阅读 · 0 评论 -
不要在linux上启用net.ipv4.tcp_tw_recycle参数
本文为翻译英文BLOG《Coping with the TCP TIME-WAIT state on busy Linux servers》,但并非完整的翻译,译者CFC4N对原文理解后,进行了调整,增加了相关论点论据,跟原文稍有不同。翻译的目的,是为了加深自己知识点的记忆,以及分享给其他朋友,或许对他们也有帮助。文章比较长,没耐心请点关闭。不要启用 net.ipv4.tcp_tw_recycle转载 2018-01-19 14:46:47 · 3784 阅读 · 0 评论 -
SSH隧道
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ilanni.blog.51cto.com/526870/1696162前几篇有关ssh的文章,我们只是介绍了ssh的登录功能。其实ssh功能不只是这些,这篇文章我们来介绍下有关ssh隧道的功能。 ssh隧道也叫ssh端口转发,或者叫ssh tun转载 2017-11-02 15:51:45 · 744 阅读 · 0 评论