Linux下相关性能指标数据采集
1)如何查看某个服务进程所占本机物理内存及百分比情况?可以使用Linux命令行查看,也可以使用脚本实现。如下以查看本机kube-nginx服务进程为例:
[root@kevin ~]# pidof kube-nginx
4763 4762 查看上面两个pid的物理内存使用情况
[root@kevin ~]# cat /proc/4763/status | grep VmRSS
VmRSS: 4596 kB
[root@kevin ~]# cat /proc/4762/status|grep VmRSS
VmRSS: 224 kB 由上面可知,kube-nginx服务进程的两个pid所占物理内存为"4596+224=4820k" 编写python脚本
[root@kevin ~]# cat mem_percent.py
#!/usr/bin/python
#coding=utf8
import subprocess
pidcheck = subprocess.Popen('pidof kube-nginx',shell=True,stdout=subprocess.PIPE)
pid = pidcheck.stdout.read().rstrip().split()
memsize = 0
for i in pid:
filename = "/proc/"+i+"/status"
#os.path.join("/proc","i","status") #等同于上条语句
with open(filename,"r") as statusfile:
for line in statusfile:
if line.startswith("VmRSS"):
memsize+=int(line.split()[1])
print "kube-nginx进程占用内存:%sk" % memsize with open("/proc/meminfo","r") as memfile:
for line in memfile:
if line.startswith("MemTotal"):
memtotal = int(line.split()[1])
print "kube-nginx进程内存占用率为:%.2f%%" % (memsize/float(memtotal)*100) 执行脚本:
[root@kevin ~]# chmod 755 mem_percent.py [root@kevin ~]# ./mem_percent.py
kube-nginx进程占用内存:4820k
kube-nginx进程内存占用率为:0.06% [root@kevin ~]# python ./mem_percent.py
kube-nginx进程占用内存:4820k
kube-nginx进程内存占用率为:0.06% ================================================================================================================
再看一例: 查看docked服务进程所占物理内存情况
[root@kevin ~]# pidof dockerd
29496
[root@kevin ~]# cat /proc/29496/status|grep VmRSS
VmRSS: 78288 kB [root@kevin ~]# cat mem1_percent.py
#!/usr/bin/python
#coding=utf8
import subprocess
pidcheck = subprocess.Popen('pidof dockerd',shell=True,stdout=subprocess.PIPE)
pid = pidcheck.stdout.read().rstrip().split()
memsize = 0
for i in pid:
filename = "/proc/"+i+"/status"
#os.path.join("/proc","i","status") #等同于上条语句
with open(filename,"r") as statusfile:
for line in statusfile:
if line.startswith("VmRSS"):
memsize+=int(line.split()[1])
print "dockerd进程占用内存:%sk" % memsize with open("/proc/meminfo","r") as memfile:
for line in memfile:
if line.startswith("MemTotal"):
memtotal = int(line.split()[1])
print "dockerd进程内存占用率为:%.2f%%" % (memsize/float(memtotal)*100) [root@kevin ~]# python mem1_percent.py
dockerd进程占用内存:78288k
dockerd进程内存占用率为:0.96%
2)使用Linux命令行直接某个进程的CPU百分比和内存百分比
使用"ps auxw" 可以查看到本机的进程所占cpu和mem的百分比情况
[root@m7-autocv-gpu02 ~]# ps auxw|head -1
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND %CPU 进程的cpu占用率
%MEM 进程的内存占用率 查看java进程所占本机的cpu百分比, 如下为0.3%
[root@m7-autocv-gpu02 ~]# ps auxw |grep -v grep|grep -w java|awk '{print $3}'
0.3 查看java进程所占本机的内存百分比, 如下为18.0% (这个值跟上面python脚本查出来的18.05%稍微有点误差,这里百分比的数只精确到小数点后一位)
[root@m7-autocv-gpu02 ~]# ps auxw |grep -v grep|grep -w java|awk '{print $4}'
18.0
Linux下查看哪些进程占用的CPU和内存资源最多的方法
1)获取占用CPU资源最多的10个进程
[root@kevin ~]# ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head -10 2)获取占用内存资源最多的10个进程
[root@kevin ~]# ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head -10 3)查看占用cpu最高的进程
[root@kevin ~]# ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head -1 4)获取占用内存资源最高的进程
[root@kevin ~]# ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head -1
3)Linux下查看某些进程的启动时间和运行时长
比如查看java进程的启动时间和运行时长
[root@m7-autocv-gpu02 ~]# ps -ef|grep -v grep|grep -w java|awk '{print $2}'
18661 [root@m7-autocv-gpu02 ~]# ps -eo pid,lstart,etime | grep 18661
18661 Tue May 14 19:22:51 2019 5-19:42:51 其中:
Tue May 14 19:22:51 2019 为java进程的启动时间
5-19:42:51 为java进程的运行时长,即5天19小时42分51秒 可以查看所有进程的启动事件、运行时长
[root@m7-autocv-gpu02 ~]# ps -eo user,pid,lstart,etime,cmd 查看nginx进程启动的精确时间和启动后运行的时长
[root@m7-autocv-gpu02 ~]# ps -eo pid,lstart,etime,cmd|grep nginx
4)Linux下查看某个进程的TIME_WAIT、ESTABLISHED、FIN_WAIT2 连接数
查看总的TIME_WAIT、ESTABLISHED、FIN_WAIT2 连接数 (下面两个命令都可以)
[root@kevin ~]# netstat -ae|grep "TIME_WAIT" |wc -l
[root@kevin ~]# ss -a|grep "TIME_WAIT" |wc -l [root@kevin ~]# netstat -ae|grep "ESTABLISHED" |wc -l
[root@kevin ~]# netstat -ae|grep "FIN_WAIT2" |wc -l 比如查看kube-apiserve进程的TIME_WAIT、ESTABLISHED、FIN_WAIT2 连接数
[root@kevin ~]# netstat -antp | grep kube-apiserve | grep ESTABLISHED -c4
85
[root@kevin ~]# netstat -antp | grep kube-apiserve | grep TIME_WAIT -c4
0
[root@kevin ~]# netstat -antp | grep kube-apiserve | grep ESTABLISHED -c4
85
[root@kevin ~]# netstat -antp | grep kube-apiserve | grep FIN_WAIT2 -c4
0 还可以根据某一个进程的端口号来查看
[root@kevin ~]# netstat -antp | grep 6443 | grep TIME_WAIT -c4
0
[root@kevin ~]# netstat -antp | grep 6443 | grep ESTABLISHED -c4 #即ESTABLISHED连接数为8
8
[root@kevin ~]# netstat -antp | grep 6443 | grep FIN_WAIT2 -c4
0 ====================================================================================
Linux下查看并发连接数 [root@kevin ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
ESTABLISHED 218 或者可以简单的直接用:
[root@kevin ~]# netstat -n|grep "ESTABLISHED"|wc -l
218 解释:
/^tcp/ :表示搜索以tcp开头的行
S[$NF] :表示以$NF为数组下标,建立数组S
++S[$NF] :表示给数组S赋值,相当于有一个tcp那么这个S数组里的元素就+1
/^tcp/ {++S[$NF]} :表示整个意思应该是 匹配出一个tcp协议的连接 数组S就+一个元素值
END是前面的/^tcp/ {++S[$NF]} :表示执行结束后在执行
{for(a in S) print a, S[a]} :表示将S值代入a 打印a 和这个S[a]数组的值。比如S是10,那么a就是10,S[a] 就是s这个数组的第10个元素的值 返回结果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。 状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉 例子
查看Nginx运行进程数
[root@kevin ~]# ps -ef | grep nginx | wc -l #返回的数字就是nginx的运行进程数 查看Web服务器进程连接数:
[root@kevin ~]# netstat -antp | grep 80 | grep ESTABLISHED -c4 查看MySQL和java进程连接数:
[root@kevin ~]# ps -axef | grep mysqld -c
1
[root@kevin ~]# ps -axef | grep java -c
3 注意:
grep -c 的作用类似grep | wc -l,不同的是,如果是查找多个文件,grep -c会统计每个文件匹配的行数,每行一个文件的列出来,
而wc -l 则列出总的统计数字。
另外grep -c 要比 grep | wc -l快一点。 ====================================================================================
针对TIME_WAIT现象的优化措施: 比如某一天下午,登陆IDC机房的一台服务器,输入命令"netstat -an|grep mysql",
发现mysql服务进程存在大量TIME_WAIT状态的连接
[root@kevin ~]# netstat -an|grep mysql
...........
tcp 0 0 127.0.0.1:3306 127.0.0.1:41378 TIME_WAIT
tcp 0 0 127.0.0.1:3306 127.0.0.1:41379 TIME_WAIT
tcp 0 0 127.0.0.1:3306 127.0.0.1:39352 TIME_WAIT
tcp 0 0 127.0.0.1:3306 127.0.0.1:39350 TIME_WAIT
tcp 0 0 127.0.0.1:3306 127.0.0.1:35763 TIME_WAIT
tcp 0 0 127.0.0.1:3306 127.0.0.1:39372 TIME_WAIT
tcp 0 0 127.0.0.1:3306 127.0.0.1:39373 TIME_WAIT
tcp 0 0 127.0.0.1:3306 127.0.0.1:41176 TIME_WAIT
........... 通过调整内核参数解决, 编辑文件,加入以下内容:
[root@kevin ~]# vim /etc/sysctl.conf
...........
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30 然后让添加的参数生效。
[root@kevin ~]# /sbin/sysctl -p 其中:
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout=30 表示修改系統默认的TIMEOUT时间为30秒 修改之后,再用命令查看TIME_WAIT连接数
[root@kevin ~]# netstat -ae|grep "TIME_WAIT" |wc –l 此时发现大量的TIME_WAIT 已不存在,mysql进程的占用率很快就降下来的,网站访问正常。
不过很多时候,出现大量的TIME_WAIT状态的连接,往往是因为网站程序代码中没有使用mysql.colse(),才导致大量的mysql TIME_WAIT.
5) 查看本机所有进程的CPU和内存使用率之和
查看本机所有进程的CPU占比之和
[root@kevin ~]# cat cpu_per.sh
#!/bin/bash ps auxw|awk '{if (NR>1){print $3}}' > /opt/cpu_list awk '{CPU_PER+=$1}END{print CPU_PER}' /opt/cpu_list 执行脚本,获取所有进程的cpu占比之和,即14.1%
[root@kevin ~]# sh cpu_per.sh
14.1 ==========================================================
查看本机所有进程的内存占比之和
[root@kevin ~]# cat mem_per.sh
#!/bin/bash ps auxw|awk '{if (NR>1){print $4}}' > /opt/mem_list awk '{MEM_PER+=$1}END{print MEM_PER}' /opt/mem_list 执行脚本,获取所有进程的内存占比之和,即22.2%
[root@kevin ~]# sh mem_per.sh
22.2 脚本配置解释:
ps -auxw|awk '{print $3}' 表示列出本机所有进程的cpu利用率情况,结果中第一行带"%CPU"字符
ps -auxw|awk '{print $4}' 表示列出本机所有进程的内存利用率情况,结果中第一行带"%MEM"字符
ps auxw|awk '{if (NR>1){print $4}} 表示将"ps auxw"结果中的第一行过滤(NR>1)掉,然后打印第4行
6)其他系统性能指标采集
1)通过free命令查看内存剩余可用情况
==================================================================================
-b:以Byte为单位显示内存使用情况。
-k:以KB为单位显示内存使用情况。
-m:以MB为单位显示内存使用情况。
-g 以GB为单位显示内存使用情况。
-o:不显示缓冲区调节列。
-s<间隔秒数>:持续观察内存使用状况。
-t:显示内存总和列。
-V:显示版本信息。
-h:centos7系统下,可以使用该参数进行查看 [root@kevin ~]# free -m
total used free shared buff/cache available
Mem: 3774 1155 591 291 2027 1962
Swap: 2048 901 1147 页面显示参数解释:
total: 总计物理内存的大小。
used: 已使用多大。
free: 可用有多少。
Shared: 多个进程共享的内存总额。
Buffers/cached: 磁盘缓存的大小
Swap:交换分区(虚拟内存)情况;
Mem:实际内存的使用情况 2)查看和设置服务器最大进程数
==================================================================================
查看系统允许的当前最大进程数
查看本服务器进程数
[root@kevin ~]# ps -eLf | wc -l
263 主要是看pid_max指标的值,pid_max是Linux内核用来限制进程数的一个最大指标。
换言之,即最大允许进程就这么多,超过了这个设定值,服务器就挂了("ps -eLf | wc -l"查看本机器的进程数)
[root@kevin ~]# sysctl kernel.pid_max # centos7系统执行"systemctl kernel.pid_max"命令
kernel.pid_max = 32768
或者
[root@kevin ~]# cat /proc/sys/kernel/pid_max
32768 一般出现 -bash: fork: Cannot allocate memory 本机的进程数应该接近或等于pid_max指标值的。
[root@kevin ~]# echo 65536 > /proc/sys/kernel/pid_max # 临时修改
[root@kevin ~]# echo "kernel.pid_max=65536" >> /etc/sysctl.conf # 永久修改
[root@kevin ~]# sysctl -p
kernel.pid_max = 65536 如上设置就可以了,保险起见,最好找到占用空间最大的进程,然后把它干掉就解决了!如下使用top命令分析: 3)top:展示进程视图,监控服务器进程数值默认进入top时,各进程是按照CPU的占用量来排序的
==================================================================================
[root@kevin ~]# top
top - 15:46:45 up 581 days, 22:30, 5 users, load average: 0.00, 0.02, 0.05
Tasks: 133 total, 2 running, 130 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 7994044 total, 1227680 free, 3499004 used, 3267360 buff/cache
KiB Swap: 2097148 total, 1708072 free, 389076 used. 3954372 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
48085 root 20 0 4172780 814536 6236 S 0.7 21.1 8353:58 mongod
12670 root 20 0 703816 41532 924 S 0.3 1.1 331:29.13 glusterfs
55185 root 20 0 157724 2240 1548 R 0.3 0.1 0:00.03 top
1 root 20 0 51656 2496 1352 S 0.0 0.1 94:14.96 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:01.87 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 2:32.08 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 1:16.86 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 R 0.0 0.0 358:31.04 rcu_sched
10 root rt 0 0 0 0 S 0.0 0.0 5:39.75 watchdog/0
11 root rt 0 0 0 0 S 0.0 0.0 4:54.62 watchdog/1
12 root rt 0 0 0 0 S 0.0 0.0 1:17.38 migration/1
13 root 20 0 0 0 0 S 0.0 0.0 2:26.26 ksoftirqd/1
15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H
17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
19 root 20 0 0 0 0 S 0.0 0.0 0:26.52 khungtaskd
20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback 针对以上的top命令显示的结果,逐行说明: 第一行:
15:46:45 — 当前系统时间
581 days, 22:30 — 系统已经运行了581天22小时30分钟(在这期间没有重启过)
5 users — 当前有5个用户登录系统
lload average: 0.00, 0.02, 0.05 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况 这里需要注意:
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。
如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。 第二行:
Tasks — 任务(进程),系统现在共有133个进程,其中处于运行中的有2个,130个在休眠(sleep),stoped状态的有1个,zombie状态(僵尸)的有0个。 第三行:cpu状态
0.3% us — 用户空间占用CPU的百分比。
0.3% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
99.3% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
0.0% st — 虚拟机偷取占用CPU的百分比 第四行:内存状态(k)
7994044 total — 物理内存总量(8GB)
1227680 free — 使用中的内存总量(12.2GB)
3499004 used — 空闲内存总量(350M)
3267360 buff/cache — 缓存的内存量 (326M) 第五行:swap交换分区(k)
2097148 tota — 交换区总量(2GB)
1708072 free — 空闲交换区总量(1.7G)
389076 used — 使用的交换区总量(390M)
3954372 avail Mem — 目前可用的内存总量(4GB)。剩余内存+剩余的swap内存 第六行以下:各进程(任务)的状态监控
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行) -------------------------------------
扩展:top命令的多U多核CPU监控
1. 在top基本视图中,按键盘数字"1",可监控每个逻辑CPU的状况:
top - 18:04:41 up 85 days, 3:25, 3 users, load average: 0.11, 0.13, 0.13
Tasks: 128 total, 2 running, 126 sleeping, 0 stopped, 0 zombie
%Cpu0 : 2.0 us, 0.7 sy, 0.0 ni, 97.0 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 2.7 us, 0.7 sy, 0.0 ni, 96.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 3.7 us, 0.0 sy, 0.0 ni, 96.0 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu3 : 2.3 us, 0.3 sy, 0.0 ni, 97.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 7994044 total, 1179668 free, 3552276 used, 3262100 buff/cache
KiB Swap: 2097148 total, 1708072 free, 389076 used. 3900944 avail Mem
.......
....... 2. 敲击键盘"b", 可以"打开/关闭"top视图的加亮效果。
3. 敲击键盘"x", 可以"打开/关闭"top视图的排序列的加亮效果。
4. 如果要在基本视图中显示"CODE"和"DATA"两个字段,可以通过敲击"r"和"s"键。 4)Linux查看进程、CPU、内存、IO相关信息
==================================================================================
1. 监控java线程数:
# ps -eLf | grep java | wc -l 2. 监控网络客户连接数:
# netstat -n | grep tcp | grep 侦听端口 | wc -l 3. 进程相关
# cat /proc/your_PID/status
通过"top"或"ps -ef |grep '进程名'" 得到进程的PID。然后执行上面命令可以提供进程状态、文件句柄数、内存使用情况等信息。 4. 内存相关
# vmstat -s -S M
该可以查看包含内存每个项目的报告,通过-S M或-S k可以指定查看的单位,默认为kb。结合watch命令就可以看到动态变化的报告了。
也可用 cat /proc/meminfo 5. 查看cpu的配置信息
# cat /proc/cpuinfo
它能显示诸如CPU核心数,时钟频率、CPU型号等信息。 6. 要查看cpu波动情况的,尤其是多核机器上,可以使用下面命令:
# mpstat -P ALL 10
该命令可间隔10秒钟采样一次CPU的使用情况,每个核的情况都会显示出来,例如,每个核的idle情况等。 如果只是需查查看看均值的CPU,可以使用下面命令:
# iostat -c 7. IO相关
# iostat -P ALL
该命令可查看所有设备使用率、读写字节数等信息。 5)Linux查看物理CPU个数、核数、逻辑CPU个数
==================================================================================
总核数 = 物理CPU个数 * 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 1. 查看物理CPU个数
# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 2. 查看每个物理CPU中core的个数(即核数)
# cat /proc/cpuinfo| grep "cpu cores"| uniq 3. 查看逻辑CPU的个数
# cat /proc/cpuinfo| grep "processor"| wc -l 4. 查看CPU信息(型号)
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
Linux下相关性能指标数据采集的更多相关文章
- Linux下相关查找文件命令(find locate which whereis type)
以下内容摘自:http://blog.csdn.net/jessica1201/article/details/8139249 标注的内容为自己的补充: 我们经常需要在系统中查找一个文件,那么在lin ...
- 如何寻找linux下相关软件
当在linux下运行程序遇到找不到库的时候可以使用yum whatprovides 来找到到需要安装的包. 例如:yum whatprovides libz.so.1 然后安装找到的包 yum in ...
- Linux下防火墙开启相关端口及查看已开启端口
最近利用Apache Mina实现了一个http服务,发布到linux下发现无法访问,通过HttpClient来发送http请求时,报如下错误: Exception in thread "m ...
- Linux下Openfire相关安装和配置
记录下来,方便下次再用时从头查找资料 小京东ecshop中的通讯有用到openfire,Window下配置安装很简单,直接下载exe文件安装就行,而linux下要麻烦一点.安装后的配置下面会细说: 一 ...
- Linux下使用ps命令来查看Oracle相关的进程
Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [oracle@ www.linuxidc.com ...
- linux下 文件IO 相关
linux下操作文件或设备,需要一个文件描述符 file descriptor,fd 来引用.fd是一个非负整数,实际上是一个索引值,指向文件的记录表,对文件的操作都需要fd.默认的几个:标准输入流 ...
- 常见压缩格式分析,及 Linux 下的压缩相关指令
可先浏览加粗部分 一.常见压缩档 *.zip | zip 程式壓縮打包的檔案: (很常见,但是因为不包含文件名编码信息,跨平台可能会乱码) *.rar | winrar 程序压缩打包的档案:(在win ...
- linux下查看动态链接库so文件的依赖的相关组建
我们很多c程序在windows下是以dll形式展现的,在linux则是以so 形式展现的. windows一般不会因为编译dll文件的编译器版本不同而出先dll文件不能执行. 但是linux下,不同版 ...
- Linux下系统时间函数、DST等相关问题总结(转)
Linux下系统时间函数.DST等相关问题总结 下面这个结构体存储了跟时区相关的位移量(offset)以及是否存在DST等信息,根据所在的时区信息,很容易找到系统时间与UTC时间之间的时区偏移,另外根 ...
随机推荐
- 【JS新手教程】JS获取当前星期几的几种方法
该文通过获取星期几的几种方法,介绍JS里的数组,判断,和字符串截取,可以当作新手教程看,小白也看的懂.获取星期几,可通过Date()对象的getDay()获取,获取的是一个数字,对应的是0,1,2,3 ...
- autocomplete="off" 在新版chrome中不起作用
autocomplete="off" 在新版chrome中不起作用,还是自动填充了 用户名和密码,改为 autocomplete="new-password" ...
- Django学习过程中遇到的问题
一.Django数据同步过程中遇到的问题: 1.raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you hav ...
- STAR软件的学习
下载地址与参考文档 https://github.com/alexdobin/STAR/archive/2.5.3a.tar.gz wget https://github.com/alexdobin/ ...
- 关于启动kylin报Failed to find metadata store by url: kylin_metadata@hbase的问题解决
一.出问题的原因 昨天因为项目需要,要将cloudera集群改成高可用,没想到失败了,当时因为冲动手动删了几个hdfs实例的原因,导致退不到原来的状态,折腾了一天,最后终于退回了非HA的集群,但是hd ...
- [转帖]Hadoop、Hive、Spark 之间关系
Hadoop.Hive.Spark 之间关系 https://www.cnblogs.com/jins-note/p/9513426.html 很的很诙谐有趣. 作者:Xiaoyu Ma ,大数据工程 ...
- STM32之外部中断
图1.0 图1.1 中断控制器支持23条中断线,其中16条是IO管脚中断线,分别是EXTI0~EXTI15: 图 1.2 另外七根中断线如下图: 中断线和管脚的对应关系:EXTI0~EXTI15 和 ...
- memset 导致的一个段错误
原型: void *memset(void *s, int c, size_t n); 解释: memset :是 逐字节 拷贝,即n是指整个变量所占字节,在用于数组时一定要注意n不一定是 数组元素. ...
- csdn博客整理
@TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown ...
- docker 实践八:docker-compose
本篇介绍 docker 官方三剑客之一的 docker-compose. 注:环境为 CentOS7,docker 19.03. docker-compose docker-compose 的前身是开 ...