当前位置: 首页 > 编程日记 > 正文

使用unix工具监控cpu、内存等系统资源占用率

1)使用 sar -u 命令监控cpu使用
$ sar -u 5 5
12:21:15 %usr %sys %wio %idle
12:21:20 54 15 13 19
12:21:25 41 18 15 27
12:21:30 62 20 10 9
12:21:35 33 11 20 36
12:21:40 38 13 17 31
Average 45 15 15 24
%usr--运行在用户模式下cpu的使用百分比
%sys--运行在系统模式下cpu的使用百分比
%wio--进程在等待块I/O时闲置状态下cpu的使用百分比
%idle--闲置状态时cpu的使用百分比
很低的%idle说明cpu负载高,或者cpu处理能力不足,或者也可能是I/O问题。
很高的%wio,即系统I/O繁忙,进程获得cpu但在等I/O,这部分时间的比例,有可能是I/O存在问题。


2)使用top命令发现系统中最影响性能的用户
load averages: 2.83, 3.30, 3.67
143 processes: 124 sleeping, 15 running, 4 on cpu
CPU states: 45.9% idle, 24.8% user, 7.3% kernel, 22.0% iowait, 0.0% swap
Memory: 2048M real, 36M free, 2920M swap in use, 982M swap free
PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND
23696 oracle 11 52 0 586M 536M run 279:55 7.57% oracle
19184 oracle 11 53 0 586M 536M run 166:47 2.51% oracle
11303 oracle 11 53 0 742M 698M run 25.2H 1.43% oracle
8156 oracle 11 48 0 741M 695M run 28.7H 0.96% oracle
12786 oracle 11 59 0 588M 529M run 111.8H 0.94% oracle
15222 oracle 11 49 0 741M 695M cpu/8 30.9H 0.85% oracle
2924 oracle 11 59 0 748M 688M sleep 107.5H 0.83% oracle
8178 oracle 11 59 0 741M 695M cpu/0 28.8H 0.81% oracle
15220 oracle 11 54 0 741M 697M run 31.4H 0.78% oracle
8168 oracle 11 39 0 741M 697M run 30.0H 0.77% oracle
15216 oracle 11 59 0 741M 697M cpu/9 30.1H 0.77% oracle
8164 oracle 11 39 0 741M 695M run 30.8H 0.76% oracle
11267 oracle 11 59 0 741M 697M sleep 32.3H 0.74% oracle
15214 oracle 11 59 0 741M 695M sleep 30.9H 0.70% oracle
11861 oracle 1 59 0 739M 696M sleep 16.9H 0.67% oracle


3)使用uptime命令监控cpu负载
$ uptime
12:45pm up 119 day(s), 19:01, 1 user, load average: 2.96, 2.98, 3.30
提供快速查看cpu中所有任务(包括正在运行的任务)在1分钟,5分钟,15分钟内的负载。在sun下是1,5,15分钟,在digital unix下是5,30,60分钟。


4)使用mpstat命令确定cpu瓶颈
$ mpstat 10 3
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 91 14 127 406 245 97 49 62 45 0 351 25 9 9 57
1 106 16 145 174 101 312 70 111 33 0 327 27 6 10 56
4 99 16 83 173 101 294 68 108 33 0 290 26 6 10 58
5 102 17 126 184 110 313 70 115 33 0 336 26 6 10 57
8 97 17 127 174 101 302 69 113 33 0 299 25 6 11 58
9 93 11 335 329 274 239 61 103 59 0 217 23 10 7 60
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 19 33 3504 2160 1920 791 99 116 77 0 1401 30 17 12 42
1 82 39 1908 264 101 1210 157 215 49 0 2394 39 8 18 35
4 126 45 1839 276 102 1269 167 224 51 0 2511 34 9 14 43
5 133 49 2298 293 107 1384 178 239 53 0 2840 36 8 18 39
8 95 46 2772 266 101 1266 158 214 47 0 2638 38 7 14 40
9 115 38 2961 986 847 1173 158 213 88 0 2401 34 13 13 41
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 74 30 2438 1960 1743 670 65 100 66 0 1232 25 14 14 47
1 63 40 1615 229 101 1158 123 192 47 0 2277 35 6 14 44
4 145 28 1396 249 101 1148 142 190 42 0 2397 32 8 14 47
5 73 28 1588 253 107 1213 141 202 47 0 2578 32 8 9 51
8 44 29 3181 252 101 1210 146 187 39 0 2471 30 10 9 51
9 67 24 1345 823 727 1024 105 178 83 0 2006 26 9 9 55
mpstat命令是一个sun solaris工具,以报表形式报告每个处理器的统计数据。表的每一行代表一个处理器的活动情况。第一张表显示了自启动以来各种活动情况的总结。注意 smtx项,它代表cpu尝试获取一个互斥锁定(mutex)失败的次数。mutex机制浪费cpu时间,并且降低多处理器的伸缩性能。如果stmx列的 值大于200,说明将遇到cpu瓶颈问题。


5)使用sar命令监控磁盘I/O问题
$ sar -d 5 2
12:59:00 device %busy avque r+w/s blks/s avwait avserv
12:59:05 md30 71 0.8 103 1738 0.0 7.5
md31 34 0.4 52 934 0.0 7.1
md32 39 0.4 52 925 0.0 8.6
sd10 42 0.5 57 1001 0.0 9.0
sd10,a 0 0.0 0 0 0.0 0.0
sd10,b 0 0.0 0 0 0.0 0.0
sd10,c 0 0.0 0 0 0.0 0.0
12:59:10 md30 9 0.1 5 312 0.0 27.4
md31 4 0.1 4 277 0.0 16.1
md32 7 0.1 4 289 0.0 28.2
sd10 26 0.4 36 787 0.0 11.0
sd10,a 5 0.1 7 106 0.0 7.9
sd10,b 3 0.0 1 24 0.0 28.4
sd10,c 0 0.0 0 0 0.0 0.0
Average md30 40 0.5 54 1025 0.0 8.5
md31 19 0.2 28 606 0.0 7.7
md32 23 0.3 28 607 0.0 10.0
sd10 34 0.5 47 894 0.0 9.7
sd10,a 3 0.0 3 53 0.0 7.9
sd10,b 2 0.0 1 12 0.0 28.4
sd10,c 0 0.0 0 0 0.0 0.0
-d选项监控磁盘I/O
%busy
avque--平均队列长度
r+w/s--读和写的活动
blks/s--传送的数据块的数量
avwait--平均等待时间
avserv--平均服务时间
较高的%busy和avque意味着出现了磁盘I/O瓶颈。
$ sar -b 2 5
17:08:24 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
17:08:26 0 530 100 2 2 0 0 0
17:08:28 0 536 100 3 3 0 0 0
17:08:31 0 339 100 0 1 67 0 0
17:08:33 0 332 100 1 3 67 0 0
17:08:35 0 343 100 3 57 95 0 0
Average 0 416 100 2 13 85 0 0
-b选项报告缓冲区活动,它等同于磁盘I/O活动。如果怀疑数据库I/O有问题,这个命令很有用。
bread/s--每秒钟从磁盘进行物理读入的数量
lread/s--每秒中从缓冲区读入的数量
%rcache--读入请求的缓冲区命中率
bwrit/s--每秒钟向磁盘物理写入的数量,它给dba提供了服务器上整体写入活动的指标
lwrit/s--每秒钟向缓冲区写入的数量
%wcache--写入请求的缓冲区命中率
pread/s--每秒钟从磁盘读入的数量,这个是I/O子系统上负载的极好度量
pwrit/s--每秒钟写入磁盘的数量


6)使用iostat确定磁盘I/O瓶颈
iostat可以用于报告终端和磁盘I/O活动情况,确定磁盘瓶颈。输出结果的第一行显示了自数据库启动以来各种I/O的统计数据。最常用的选项有-d,-x,-D,-c(cpu负载)。
$ iostat -d md30 md31 md32 sd10 5 5
md30 md31 md32 sd10
kps tps serv kps tps serv kps tps serv kps tps serv
9 1 13 7 0 15 7 0 14 46 6 14
112 14 11 56 7 12 56 7 10 439 46 14
24 3 8 13 2 6 11 1 10 51 6 8
3 0 12 2 0 14 2 0 9 89 10 7
3 0 25 2 0 40 2 0 10 34 19 29
-d选项可以列出每秒传送的字节数,每秒的传输次数以及平均服务时间(以毫秒计)。-d仅仅显示I/O,不区分读操作和写操作。
$ iostat -D md30 md31 md32 sd10 5 5
md30 md31 md32 sd10
rps wps util rps wps util rps wps util rps wps util
1 0 0.5 0 0 0.3 0 0 0.3 4 3 4.3
53 3 30.4 27 3 18.3 27 3 14.0 38 5 20.9
5 0 6.2 2 0 3.9 2 0 3.7 3 6 7.0
2 10 11.5 1 10 9.3 1 10 7.6 56 19 41.9
5 0 3.3 3 0 1.6 3 0 1.6 7 1 4.6
-D选项报告每秒的读操作数量,写操作数量以及磁盘使用率。
$ iostat -x 5 3
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
md30 0.5 0.1 4.0 4.5 0.0 0.0 12.8 0 0
md31 0.3 0.1 2.0 4.5 0.0 0.0 14.6 0 0
md32 0.3 0.1 2.0 4.5 0.0 0.0 14.1 0 0
sd10 3.6 2.6 37.0 8.6 0.0 0.1 14.1 0 4
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
md30 0.8 0.0 6.4 0.0 0.0 0.0 12.0 0 1
md31 0.4 0.0 3.2 0.0 0.0 0.0 13.0 0 1
md32 0.4 0.0 3.2 0.0 0.0 0.0 11.0 0 0
sd10 5.8 1.0 65.6 3.5 0.0 0.1 8.1 0 5
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
md30 0.4 0.0 3.2 0.0 0.0 0.0 11.8 0 0
md31 0.2 0.0 1.6 0.0 0.0 0.0 12.7 0 0
md32 0.2 0.0 1.6 0.0 0.0 0.0 10.9 0 0
sd10 0.2 1.2 1.6 3.8 0.0 0.0 16.9 0 2
-x选项报告所有磁盘的扩展磁盘统计数据


7)使用sar命令和vmstat命令监控分页/交换
一种可以快速判定自系统启动以来是否存在任何交换活动的方法就是运行vmstat -S命令,如果swp/in和swp/out列出现非零值,就说明很可能出现了问题。另外可以使用sar命令挖掘更多的信息。
可以使用sar命令来检查系统的分页/交换活动。任何分页和交换现象都预示着将出现问题。在虚拟内存系统中,如果当前非活动用户(的进程)从内存移到磁盘 上时,就会出现分页现象(一个小问题)。而如果由于内存的不足造成当前活动用户(的进程)被移到了磁盘上,就会出现交换现象(问题很严重)。分页不像交换 那么糟糕,但是随着分页的增加,很快就会出现交换。
$ sar -p 5 5
15:15:44 atch/s pgin/s ppgin/s pflt/s vflt/s slock/s
15:15:49 109.15 302.58 351.29 154.67 680.91 0.40
15:15:54 293.25 287.50 317.86 380.95 1447.82 0.00
15:15:59 146.41 418.92 485.86 71.51 327.09 0.00
15:16:04 96.03 386.90 429.56 92.86 362.70 0.00
15:16:09 197.81 495.63 526.64 340.76 983.70 0.00
Average 168.56 378.26 422.18 208.23 760.73 0.08
-p选项报告分页活动
atch/s--每秒的分页故障数据,可通过在内存中重新声明一个页来解决故障(每秒的附件)
pgin/s--每秒换进pagein请求数
ppgin/s--每秒换进的页数
pflt/s--每秒保护错误中的分页错误数(非法访问页)或者copy-on-write(写入时拷贝)数
vflt/s--每秒翻译页错误数(不在内存中的有效页)
slock/s--每秒因软件锁请求物理I/O引起的错误数
$ sar -w 5 5
15:25:00 swpin/s bswin/s swpot/s bswot/s pswch/s
15:25:05 0.00 0.0 0.00 0.0 6520
15:25:10 0.00 0.0 0.00 0.0 6190
15:25:15 0.00 0.0 0.00 0.0 5432
15:25:20 0.00 0.0 0.00 0.0 5239
15:25:25 0.00 0.0 0.00 0.0 5620
Average 0.00 0.0 0.00 0.0 5800
-w选项报告交换和内存切换活动
swpin/s--每秒进程换入的数量
bswin/s--每秒512个字节的换入数量
swpot/s--每秒进程换出的数量
bswot/s--每秒512个字节的换出数量
pswch/s--每秒进程上下文切换的数量
$ sar -r 5 5
15:26:50 freemem freeswap
15:26:55 4544 1998060
15:27:00 4032 1995139
15:27:05 4325 1991663
15:27:10 4372 1991611
15:27:15 4522 1987298
Average 4360 1992754
-r选项报告空闲内存和空闲交换
当freemem(空闲内存--以512字节为单位列出)低于一个特定的水平时,系统就开始分页。如果它继续下降,系统就开始将一些进程交换出去。这个一个系统性能快速恶化的信号,可以查找占用过多内存的进程,或者是否存在过多的进程。
$ sar -g 5 5
15:35:46 pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
15:35:51 43.54 58.45 57.06 0.00 0.00
15:35:56 5.95 7.94 7.54 0.00 0.00
15:36:01 105.59 132.73 224.95 1230.94 0.00
15:36:06 38.22 46.53 81.39 412.67 0.00
15:36:11 11.33 13.12 12.72 0.00 0.00
Average 40.86 51.67 76.59 327.94 0.00
-g选项报告分页活动
pgout/s--每秒换出(pageout)请求数
ppgout/s--每秒换出(pageout)的页数
pgfree/s--由分页控制程序每秒放入空闲列表的页数
pgscan/s--由分页控制程序每秒扫描的分页数
%ufs_ipf--UFS incode与由iget获取的有重用页的空闲列表的比例。这些页已被填充,无法被进程重新声明使用。这样,它就是iget造成的页面填充比例。
很高的ppgout(从内存中移出的页面数)也说明内存不足的问题。


8)使用ipcs命令确定共享内存的使用情况
ipcs命令可以用来监控sga的使用情况。它报告sga中每个共享内存段的尺寸。如果在整个sga中没有足够的内存来容纳一个连续的内存段,sga就将 建立非连续的内存段。在实例崩溃的情况下,可能就会出现内存无法释放的问题。如果发生了这样的情况,注意ipcrm命令可以清除这些段(ipcrm -m用于内存段,ipcrm -s用于信号段)。
$ ipcs -b
IPC status from as of Sat Jan 7 16:04:05 CST 2006
T ID KEY MODE OWNER GROUP QBYTES
Message Queues:
T ID KEY MODE OWNER GROUP SEGSZ
Shared Memory:
m 4608 0xdf00bc84 --rw-r----- oracle dba 708837376
m 4609 0xbd76b6f0 --rw-r----- oracle dba 541065216
T ID KEY MODE OWNER GROUP NSEMS
Semaphores:
s 65536 0xae97 --ra------- root root 129
s 1 0x100ae97 --ra------- root root 128
s 2 0x1 --ra-ra-ra- root root 1
s 3 0x73657276 --ra-ra-ra- root root 3
s 1245188 0xd8647e24 --ra-r----- oracle dba 504
s 1245189 0xbcdcaaa8 --ra-r----- oracle dba 304
这里,sga建立了2个非连续的段。通常最好是让整个sga处于一个单一的共享内存段,因为跟踪一个以上的段以及在这些段之间来回切换都需要额外的开销。可以在/etc/system文件中增加参数SHMMAX的设置,以增加一个单一的共享内存段的最大尺寸。

相关文章:

C# 获取图片的EXIF 信息

关于 EXIF 信息的介绍。 1 EXIF,是英文Exchangeable Image File(可交换图像文件)的缩写。EXIF是一种图像文件格式,只是文件的后缀名为jpg。EXIF信息是由数码相机在拍摄过程中采集一系列的信息,然后把信息放置在jpg文件的头部,也就…

ffmpeg录屏/摄像头/指定窗口;别名alias设置

关于ffmpeg的使用方法很多,我简单写一下今天我捣鼓的几个。因为我的项目中要用到录屏和录制摄像头,所以试了下。网上关于录制指定窗口的方法并不多,我也是找了好久,试了好久才试出来的。 好了,废话不多说,…

黄聪:BackGroundWorker解决“线程间操作无效: 从不是创建控件的线程访问它” (C# VS2008)...

在编程中经常会遇到在一个按钮中执行复杂操作,并将复杂操作最后返回的值加入一个ListView或ComboBox中候选。这个时候程序会卡,当程序员将这些卡代码放进线程(Thread)中后发现当对控件操作时出现“线程间操作无效: 从不是创建控件的线程访问它”异常。 …

AWS 中国宁夏和北京区正式上线 Amazon SageMaker,中国用户终于能用到新工具和功能!

2020年 5 月 12 日,亚马逊云服务 Amazon Web Services, Inc. (AWS) 宣布,Amazon SageMaker 在由西云数据运营的 AWS 中国 (宁夏) 区域和光环新网运营的 AWS 中国(北京)区域正式上线。 Amazon SageMaker 在中国的上线使中国用户获…

Ubuntu Vim YouCompleteMe 安装

0. 必要工具安装 sudo apt-get install build-essential cmake 1. 安装 vundle mkdir ~/.vim/bundle git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle 2.编辑 .vimrc set nocompatible " be iMproved, required filetype off …

ubuntu vsftpd虚拟用户配置/ubuntu12.04上搭建vsftpd服务示例linux

转自这里 在ubuntu中安装完vsftpd后,安装libdb4.6-util: 复制代码 代码示例: sudo apt-get install db4.6-util 在etc下面建立目录vsftpd, 创建一个txt文档,比如logins.txt,在其中输入用户名及密码,如: 复制代码 代码示例: test 12345…

云从完成超过18亿元新一轮融资,加快上市步伐

近日,云从科技完成新一轮融资,总规模超过18亿元人民币,投资方除了中国互联网投资基金、上海国盛、广州南沙金控、长三角产业创新基金等政府基金外,还包括工商银行、海尔金控等产业战略投资者,进一步强化“AI国家队”的…

input core input.c (1)

drivers/input/input.c 就是所谓的input的核心程序。 分析这个文件,先从input_init开始。 1: static int __init input_init(void) 2: { 3: err class_register(&input_class); 4: err input_proc_init(); 5: err register_chrdev(INPUT_MAJOR, "i…

Swift解读专题四——字符串与字符

2019独角兽企业重金招聘Python工程师标准>>> Swift解读专题四——字符串与字符 一、引言 Swift中提供了String类型与Characters类型来处理字符串和字符数据,Swift中的String类型除了提供了许多方便开发者使用的方法外,还可以与Foundation框架…

非模态对话框的销毁

前面写过一篇关于模态和非模态对话框的文章,关于模态对话框和非模态对话框的创建、显示,以及和父对话框的传值 。文章末尾我遗留了一个问题,即当销毁非模态对话框后,需要置创建该非模态对话框的指针为NULL,但是具体是怎么操作呢&a…

LAMP兄弟连PHP课程学习笔记 第二天 PHP中使用变量

2019独角兽企业重金招聘Python工程师标准>>> 一、变量的介绍 变量:是指临时储存值的容器,这个值可以是数字或者文本或者其他组合。可以在程序使用的过程中更改。 二、变量的声明 1、如果用到的数据需要多次被调用时就声明为变量,P…

清华孵化,打造智能驾驶感控平台,超星未来获千万A轮融资

2020年5月14日,智能驾驶初创企业北京超星未来科技有限公司今天宣布已完成数千万元A轮融资,由恒大高科技领投,中关村前沿基金、和米资本、宝钜投资及图灵创投进行跟投。本轮融资将帮助超星未来在人才端和研发端持续投入,通过软硬件…

71 mac boook pro 无 gpu 下caffe 安装

71 mac boook pro 无 gpu 下caffe 安装 1.首先安装homebrew工具,相当于Mac下的yum或apt ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 2.安装Caffe依赖 $ brew install -vd snappy leveldb gflags glog s…

比较有趣的一个笔试题目

这2天忙于找工作,看.NET笔试题目的时,发现有些笔试题目还是比较有趣的,虽然考的都是基础,但是稍有不慎还是会进入圈套。以下面一个题目为例,听说是晕倒了一群人 - - classProgram { staticvoidMain(string[]…

82年 AI程序员征婚启示火了!年薪百万,女生神回复

最近在某社区,一则程序员征婚启示火了!很多女生在评论区表示“全中”,想交流看看。然后评论区就炸了,有人恶意说yp,有人说看中了楼主的钱。笔者一翻,发现楼主果然无意中透露了百万年薪收入,虽然…

MFC给按钮添加皮肤

其实这也很简单,但是毕竟是因为我现在已经做出来了,当时还是查了一些资料的。废话不多说,直接上代码: 首先在类中声明: HBITMAP pausehBitmap; //用于暂停按钮的皮肤 然后将资源图片添加至资源视图中&#xff0…

Python全栈开发day2

1、python种类和区别 Cpython Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。 Jyhton Python的…

16分钟优化mRNA疫苗稳定性! 百度AI算法LinearDesign问世

新冠病毒全球累计确诊已超过400万人,疫苗是终结疫情的关键胜负手。在所有正在研发的疫苗路径中,研发速度更快、更具潜力的mRNA疫苗作为一种新兴技术受到了国内外的重点关注。但同时,mRNA疫苗由于稳定性不足容易在保存、运输中降解&#xff0c…

控制台打印汉字的方法

wstring gL"自动定理证明"; wstring sL"自动定理证明器"; EditDistance editdistance(g,s); //int distanceleneditdistance.CalEditDistance(); wcout.imbue(locale("chs")); set<string>words; editdistance.GetDictionary(words); O…

模态对话框的父窗口设置

我的毕业设计基本是搞完了&#xff0c;那么最近几天在做一些测试和修改。其中就有一个问题折腾了我好久&#xff0c;今天才发现&#xff0c;原来是这么回事。 我创建了一个非模态的子对话框&#xff0c;然后在这个子对话框中又创建了一个模态对话框&#xff0c;结果意外的是点…

XSD标准架构-----xsd:element 元素详解

声明一个元素。 <elementabstract Boolean : falseblock (#all | List of (extension | restriction | substitution))default stringfinal (#all | List of (extension | restriction))fixed stringform (qualified | unqualified)id IDmaxOccurs (nonNegativeInte…

VS2010使用Skin++

转载自http://blog.sina.com.cn/s/blog_5d23890b0100icjj.html。 Skin的使用 一.使用皮肤 将SkinPPWTL.lib 、skinppwtl.dll 、SkinPPWTL.h三个文件及相应皮肤&#xff08;**.ssk&#xff09;拷贝至工程文件夹下&#xff1b;一般还要将这些文件放在Debug文件夹下。 1.在(VC…

美翻朋友圈:用Python生成蒙太奇马赛克图片

题图 | 视觉中国来源 | ZackSock&#xff08;ID:ZackSock&#xff09;我们有时候会听到这么一个词--“蒙太奇”&#xff0c;但却不知道这个词是什么意思。蒙太奇原为建筑学术语&#xff0c;意为构成、装配。而后又延伸为一种剪辑理论&#xff1a;当不同镜头拼接在一起时&#x…

在SQL Server 2008中配置文件流(FILESTREAM)

SQL Server 2008推出了一个新的特性叫做文件流(FILESTREAM)&#xff0c;它使得基于SQL Server的应用程序可以在文件系统中存储非结构化的数据&#xff0c;例如文档、图片、音频、视频等等。文件流主要将SQL Server数据库引擎和新技术文件系统(NTFS)集成在一起;它主要以varbinar…

mysql limit offset

Java代码 SELECT keyword FROM keyword_rank WHERE advertiserid59 order by keyword LIMIT 2 OFFSET 1; 比如这个SQL &#xff0c;limit后面跟的是2条数据&#xff0c;offset后面是从第1条开始读取 Java代码 SELECT keyword FROM keyword_rank WHERE advertiserid59 order …

获取磁盘符信息

项目中有个子模块是ftp客户端&#xff0c;需要罗列本地各个磁盘符&#xff0c;比如C盘、D盘、E盘、F盘。然后进行一些相关的上传下载就比较方便&#xff0c;具体样子如下所示&#xff1a; 需要利用一个Combox控件实现。 废话不多说&#xff0c;先上代码&#xff1a; void …

成为计算机视觉工程师的第一个月,我都学会了什么?

作者 | Richmond Alake译者 | 弯月题图 | 自视觉中国出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;我写这篇文章的目的是为了向那些没有接触过机器学习行业的人们介绍一下我作为计算机视觉工程师第一个月以来的体验&#xff0c;希望这些内部信息能够让你…

天然良方对付小病

打嗝、口臭、消化不良……我们的身体时常会受到一些小毛病的困扰。20位来自美国各大医院的权威医生在美国《预防》杂志网站上发表文章&#xff0c;向读者介绍了一些纯天然的便捷方法&#xff0c;来快速应对这些小病。 生姜止吐。先用热水冲泡生姜片&#xff0c;过滤后把姜汤倒在…

Spring中使用Schedule调度

在spring中两种办法使用调度&#xff0c;以下使用是在spring4.0中。 一、基于application配置文件&#xff0c;配置入下&#xff1a; 1 <bean id"jobDetail" class"org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">…

DNS域名解析优化之tinydns/djbdns篇——测试篇

要开始还债了。 今天整理了一下一套bind9的配置&#xff0c;把记录都清理了一番。想了想&#xff0c;顺带安装了个geoipdns来做性能测试。整理记录的时候用bind-to-tinydns转换了一下记录格式。这些过程以后再说。 NS服务器是同一台Dell PowerEdge 2950。先启动的geoipdns&…