glibc

Linux神器strace的使用方法及实践

拥有回忆 提交于 2020-08-11 15:39:22
在Linux系统中,strace命令是一个集诊断、调试、统计与一体的工具,可用来追踪调试程序,能够与其他命令搭配使用,接下来就Linux系统调用工具strace的使用方法和实践给大家做个详细介绍,一起来了解下strace的操作实例吧。 【场景】 1、在操作系统运维中会出现程序或系统命令运行失败,通过报错和日志无法定位问题根因。 2、如何在没有内核或程序代码的情况下查看系统调用的过程。 【说明】 1、strace是有用的诊断,说明和调试工具,Linux系统管理员可以在不需要源代码的情况下即可跟踪系统的调用。 2、strace显示有关进程的系统调用的信息,这可以帮助确定一个程序使用的哪个函数,当然在系统出现问题时可以使用 strace定位系统调用过程中失败的原因,这是定位系统问题的很好的方法。 【参数解析】 1. strace安装方法: CentOS/EulerOS系统 # yum install strace Ubuntu系统: # apt-get install strace –y 2.strace的常用参数及示例 -c 统计每一系统调用的所执行的时间,次数和出错的次数等。 示例:打印执行uptime时系统系统调用的时间、次数、出错次数和syscall # strace -c uptime -d 显示有关标准错误的strace本身的一些调试输出。 -f 跟踪子进程

Ubuntu 19.04 disco 安装mysql(tar包安装)

谁都会走 提交于 2020-08-11 11:05:07
在服务器上安装mysql服务,一开始想使用使用最简单的apt安装命令,无奈,怎么安装都不成功。很多自带的源找不到,如下图 然后想着可以通过tar包来安装,如下记录下安装步骤 首先,从网上下载对应的安装包,下载地址 https://dev.mysql.com/downloads/mysql/ 我下载的是mysql-5.7.24-linux-glibc2.12-x86_64 下载完之后解压文件,并将解压后的文件重命名,移动到/usr/local/mysql tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql cd /usr/local/mysql 然后添加一个Mysql 用户组及用户 groupadd mysql useradd -r -g mysql mysql 创建data文件夹存放mysql数据文件 cd /usr/local/mysql mkdir data 将整个mysql目录授权给mysql用户 chown -R mysql:mysql ./ 初始化mysql,basedir 为mysql的路径, datadir 为mysql数据文件路径 bin/mysqld --initialize --user=mysql

最靠谱

烈酒焚心 提交于 2020-08-11 08:29:06
工作几年的都碰到过吧,要在客户的不干净的Linux上部署程序,但经常会碰到已经有老版mysql在跑了,又不能卸载,新版又因为各种原因装不上,那么用离线免安装版将是希望! 一.准备: mysql5.7或mysql8.0.18安装包下载 其他调优官方文档 二.环境搭建: 注: 为了能够快速搭建, 分享一个我已编写好的自动安装的脚本 (若执行ok了, 本文后续的详细步骤也就可忽略了). 『特别提醒: 此配置及脚本仅在Ubuntu19.10 CentOS7.4 CentOS6.9 + Mysql5.7 Mysql8.0.18 下测试通过, 建议在OS或mysql相差不大的版本下运行 !!!』 高版本mysql许多配置项已发生变化, 例如, 在mysql8.0.18下 lower_case_table_names 就只允许初始化时设置(我的配置文件里已注了). 首先新建安装脚本: cd ${MYSQL_HOME} mkdir script && vim script/mysqld-green-install.sh 然后粘上安装脚本内容, 使用root运行: #!/bin/bash # Copyright (c) 2017 ~ 2025, the original author wangl.sir individual Inc, # All rights reserved. Contact

centos7下安装MySQL 5.7.26 二进制版本(免安装绿色版)

邮差的信 提交于 2020-08-11 05:49:02
MySQL 5.7.26 二进制版本安装(免安装绿色版) 下载地址 https://downloads.mysql.com/archives/community/ https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz PS:下载一些国外站点软件,用迅雷还是比较管用 下载并上传软件至 /opt/software [root@mysql01 ~]# mkdir -p /opt/software [root@mysql01 ~]# cd /opt/software/ [root@mysql01 software]# yum install -y lrzsz # 文件拖拽软件 [root@mysql01 software]# rz -E rz waiting to receive. [root@mysql01 software]# ll 总用量 629756 -rw-r--r-- 1 root root 644869837 4 月 18 23:48 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz 解压软件 [root@mysql01 software]# tar -xvf mysql-5.7.29-linux-glibc2.12-x86

CentOS7.6静默(无图形化界面)安装Oracle 11g

允我心安 提交于 2020-08-11 05:00:31
一、准备工作 1.准备CentOS 7 系统环境 由于是使用静默模式(silent)安装的,无需使用图形化界面,我选择了最小安装的服务器版的CentOS 7。安装完成后,只有命令行界面。 2.下载 Oracle 11g (1)Oracle官方网站: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 我的机器安装的是CentOS7 64位系统,因此下载的Oracle版本也是64位的 特别注意:11.2.0.2.0 zlinux64版本的Oracle是安装在IBM服务器的,CentOS 7是无法安装的。 (2)下载完成后,有两个压缩文件 linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip 3.通过Xftp将压缩文件上传到 /db/ 4.安装依赖包,安装依赖包之前,个人建议将yum源修改为aliyun源,下载速度快些,执行如下命令即可: cd / etc mv yum .repos.d yum .repos.d.bak mkdir yum .repos.d wget -O /etc/ yum .repos.d/CentOS-Base.repo http: // mirrors

strlen 老瓶装新酒

允我心安 提交于 2020-08-11 03:39:39
前言 - strlen 概述   无意间扫到 glibc strlen.c 中代码, 久久不能忘怀. 在一无所知的编程生涯中又记起点点滴滴: 编程可不是儿戏 ❀, 有些难, 也有些不舍. 随轨迹一同重温, 曾经最熟悉的 strlen 手感吧 ~ /* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Torbjorn Granlund (tege@sics.se), with help from Dan Sahlin (dan@sics.se); commentary by Jim Blandy (jimb@ai.mit.edu). The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later

Spring Boot“内存泄漏”?看看美团大牛是如何排查的

ぐ巨炮叔叔 提交于 2020-08-09 14:48:38
   20 大进阶架构专题每日送达      来自:美团技术团队   链接:8rr.co/38Kh   为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于Spring Boot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM参数配置是“-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX:+AlwaysPreTouch -XX:ReservedCodeCacheSize=128m -XX:InitialCodeCacheSize=128m, -Xss512k -Xmx4g -Xms4g,-XX:+UseG1GC -XX:G1HeapRegionSize=4M”,实际使用的物理内存如下图所示:      top命令显示的内存情况   排查过程 1. 使用Java层面的工具定位内存区域(堆内内存、Code区域或者使用unsafe.allocateMemory和DirectByteBuffer申请的堆外内存)   笔者在项目中添加-XX:NativeMemoryTracking=detailJVM参数重启项目,使用命令jcmd pid VM.native_memory detail查看到的内存分布如下:

编译安装busybox

非 Y 不嫁゛ 提交于 2020-08-08 19:07:02
下载busybox x86可直接下载,运行 http://www.busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/ arm+KylinV4.0.2需要编译安装 apt install atpitude aptitude install libncurses5-dev 下载源码:make menuconfig;选择Build Busybox as a static binary(no shared libs) make && make install mips+NeoKylinV7需要编译安装 yum -y install ncurses* make menuconfig;选择Build Busybox as a static binary(no shared libs) yum install -y glibc-n32-static.mips64el yum install -y glibc-static.mips64el make && make install 链接: https://pan.baidu.com/s/1EeGv6Hqr5HH1MS-D_OhzIA 提取码:rkt9 来源: oschina 链接: https://my.oschina.net/u/4394252/blog/4285382

编译bash实现history的syslog日志记录

本小妞迷上赌 提交于 2020-08-08 18:08:33
一、下载bash源码包 [root@repo other_x86_64]# http://vault.centos.org/6.9/os/Source/SPackages/bash-4.1.2-48.el6.src.rpm 二、安装源码包 [root@repo other_x86_64]# rpm -ivh bash-4.1.2-48.el6.src.rpm #警告可以忽略 1:bash warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root warning: user mockbuild does not exist - using root warning: group mockbuild does not

strlen 老瓶装新酒

北城余情 提交于 2020-08-08 09:17:49
前言 - strlen 概述   无意间扫到 glibc strlen.c 中代码, 久久不能忘怀. 在一无所知的编程生涯中又记起点点滴滴: 编程可不是儿戏 ❀, 有些难, 也有些不舍. 随轨迹一同重温, 曾经最熟悉的 strlen 手感吧 ~ /* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Torbjorn Granlund (tege@sics.se), with help from Dan Sahlin (dan@sics.se); commentary by Jim Blandy (jimb@ai.mit.edu). The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later