linux 查看 CPU内存网络流量和磁盘 IO
linux中查看内存使用情况的命令
linux中查看内存使用情况的命令在Linux系统中,了解内存使用情况是非常重要的,可以帮助我们更好地监控系统的健康状态,及时发现问题并采取相应的措施。
本文将介绍几个常用的命令来查看内存使用情况。
1. free命令free命令是最简单直观的查看内存使用情况的方式。
在终端中输入"free"命令,即可显示系统当前的内存使用情况,包括总内存、已使用内存、空闲内存等信息。
通过这些信息,我们可以快速了解系统的内存占用情况,判断是否存在内存不足的问题。
2. top命令top命令是一个非常强大的系统监控工具,可以实时显示系统的各种性能数据,包括内存使用情况。
在终端中输入"top"命令,可以查看系统中各个进程的内存占用情况,以及总体的内存使用情况。
通过top命令,我们可以及时发现内存占用较高的进程,进而进行优化或调整。
3. vmstat命令vmstat命令可以显示系统的虚拟内存统计信息,包括内存使用情况、磁盘IO、CPU利用率等。
在终端中输入"vmstat"命令,可以查看系统当前的内存使用情况,以及内存的交换情况。
通过vmstat命令,我们可以全面了解系统的性能状况,及时调整系统配置。
4. sar命令sar命令是系统性能分析工具,可以收集、报告系统各种性能数据,包括内存使用情况。
在终端中输入"sar -r"命令,可以查看系统的内存使用情况,包括内存的总量、已用量、空闲量等信息。
sar命令还可以生成历史数据报告,帮助我们进行系统性能分析。
5. ps命令ps命令是一个常用的进程查看工具,可以显示系统当前运行的进程信息。
在终端中输入"ps aux"命令,可以查看系统中各个进程的详细信息,包括进程的内存占用情况。
通过ps命令,我们可以了解系统中各个进程的内存占用情况,及时调整或结束不必要的进程。
总结起来,通过以上几个常用的命令,我们可以方便地查看Linux 系统的内存使用情况,及时发现并解决内存相关的问题,保障系统的稳定运行。
关于linux的进程中的各个线程cpu占用情况的分析和查看
关于linux的进程中的各个线程cpu占⽤情况的分析和查看我们常常会在新开的服搭建⼀个游戏的server,有时候要进⾏压⼒測试,那么怎样来看呢,⼀般我们会通过top命令查看各个进程的cpu和内存占⽤情况,获得到了我们的进程id,然后我们或许会通过pstack命令查看⾥边的各个线程id以及相应的线程如今正在做什么事情,分析多组数据就能够获得哪些线程⾥有慢操作影响了server的性能,从⽽得到解决⽅式。
⽐⽅这种以组数据:[root@AY130816144542124256Z bin]# pstack 30222Thread 9 (Thread 0x7f729adc1700 (LWP 30251)):#0 0x00007f72a429b720 in sem_wait () from /lib64/libpthread.so.0#1 0x0000000000ac5eb6 in Semaphore::down() ()#2 0x0000000000ac5cac in Queue::get() ()#3 0x00000000009a583f in DBManager::processUpdate(Queue*) ()#4 0x00000000009a4bfb in dbUpdateThread(void*) ()#5 0x00007f72a4295851 in start_thread () from /lib64/libpthread.so.0#6 0x00007f72a459267d in clone () from /lib64/libc.so.6Thread 8 (Thread 0x7f727c579700 (LWP 30252)):#0 0x00007f72a429b720 in sem_wait () from /lib64/libpthread.so.0#1 0x0000000000ac5eb6 in Semaphore::down() ()#2 0x0000000000ac5cac in Queue::get() ()#3 0x00000000009a5799 in DBManager::processQuery(Queue*) ()#4 0x00000000009a4c3a in dbQueryThread(void*) ()#5 0x00007f72a4295851 in start_thread () from /lib64/libpthread.so.0#6 0x00007f72a459267d in clone () from /lib64/libc.so.6Thread 7 (Thread 0x7f7257fff700 (LWP 30253)):#0 0x00007f72a42997bb in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0#1 0x00007f72a549ee08 in utils::thread::condition_impl::timed_wait(int) () from /usr/local/utils-0.0.1/lib/libutils.so.0.0.1#2 0x00007f72a549ebd3 in utils::thread::Condition::timed_wait(int) () from /usr/local/utils-0.0.1/lib/libutils.so.0.0.1#3 0x00000000009d5f57 in utils::MessageQueue<FightInfo*>::pop() ()#4 0x00000000009d5557 in FightReport::svc() ()#5 0x00007f72a5494b45 in utils::Task_Base::thread_proc(void*) () from /usr/local/utils-0.0.1/lib/libutils.so.0.0.1#6 0x00007f72a4295851 in start_thread () from /lib64/libpthread.so.0#7 0x00007f72a459267d in clone () from /lib64/libc.so.6Thread 6 (Thread 0x7f72397b7700 (LWP 30254)):#0 0x00007f72a4588fc3 in poll () from /lib64/libc.so.6#1 0x00007f72a0fbded4 in __libc_res_nsend () from /lib64/libresolv.so.2#2 0x00007f72a0fba76a in __libc_res_nquery () from /lib64/libresolv.so.2#3 0x00007f72a0fbad29 in __libc_res_nquerydomain () from /lib64/libresolv.so.2#4 0x00007f72a0fbb9cf in __libc_res_nsearch () from /lib64/libresolv.so.2#5 0x00007f729adc37a7 in _nss_dns_gethostbyname4_r () from /lib64/libnss_dns.so.2#6 0x00007f72a457a4c3 in gaih_inet () from /lib64/libc.so.6#7 0x00007f72a457cb20 in getaddrinfo () from /lib64/libc.so.6#8 0x00007f72a56fc782 in Curl_getaddrinfo_ex () from /usr/lib64/libcurl.so.4#9 0x00007f72a56f1d42 in Curl_getaddrinfo () from /usr/lib64/libcurl.so.4#10 0x00007f72a56c9e77 in Curl_resolv () from /usr/lib64/libcurl.so.4#11 0x00007f72a56ca138 in Curl_resolv_timeout () from /usr/lib64/libcurl.so.4#12 0x00007f72a56d8d88 in ?() from /usr/lib64/libcurl.so.4#13 0x00007f72a56ddb79 in ?() from /usr/lib64/libcurl.so.4#14 0x00007f72a56de76e in Curl_connect () from /usr/lib64/libcurl.so.4#15 0x00007f72a56e69b0 in Curl_perform () from /usr/lib64/libcurl.so.4#16 0x0000000000ae6e3d in HttpClient::svc() ()#17 0x00007f72a5494b45 in utils::Task_Base::thread_proc(void*) () from /usr/local/utils-0.0.1/lib/libutils.so.0.0.1#18 0x00007f72a4295851 in start_thread () from /lib64/libpthread.so.0#19 0x00007f72a459267d in clone () from /lib64/libc.so.6Thread 5 (Thread 0x7f721af6f700 (LWP 30255)):#0 0x00007f72a455691d in nanosleep () from /lib64/libc.so.6#1 0x000000000098cb8a in Sleep(unsigned long) ()#2 0x000000000098b87d in DynResource::svc() ()#3 0x00007f72a5494b45 in utils::Task_Base::thread_proc(void*) () from /usr/local/utils-0.0.1/lib/libutils.so.0.0.1#4 0x00007f72a4295851 in start_thread () from /lib64/libpthread.so.0#5 0x00007f72a459267d in clone () from /lib64/libc.so.6Thread 4 (Thread 0x7f71fc727700 (LWP 30256)):#0 0x00007f72a455691d in nanosleep () from /lib64/libc.so.6#1 0x000000000098cb8a in Sleep(unsigned long) ()#2 0x0000000000a61516 in PlayerOpLogThread::svc() ()#3 0x00007f72a5494b45 in utils::Task_Base::thread_proc(void*) () from /usr/local/utils-0.0.1/lib/libutils.so.0.0.1#4 0x00007f72a4295851 in start_thread () from /lib64/libpthread.so.0#5 0x00007f72a459267d in clone () from /lib64/libc.so.6Thread 3 (Thread 0x7f71ddedf700 (LWP 30257)):#0 0x00007f72a4592c73 in epoll_wait () from /lib64/libc.so.6#1 0x00007f72a51f334f in Epoll_Reactor::run_reactor_event_loop() () from /usr/local/net_manager-0.0.2/lib/libnet_manager.so.0.0.2#2 0x00007f72a51f2523 in Net_Thread::svc() () from /usr/local/net_manager-0.0.2/lib/libnet_manager.so.0.0.2#3 0x00007f72a5494b45 in utils::Task_Base::thread_proc(void*) () from /usr/local/utils-0.0.1/lib/libutils.so.0.0.1#4 0x00007f72a4295851 in start_thread () from /lib64/libpthread.so.0#5 0x00007f72a459267d in clone () from /lib64/libc.so.6Thread 2 (Thread 0x7f71bf697700 (LWP 30258)):#0 0x00007f72a4592c73 in epoll_wait () from /lib64/libc.so.6#1 0x00007f72a51f334f in Epoll_Reactor::run_reactor_event_loop() () from /usr/local/net_manager-0.0.2/lib/libnet_manager.so.0.0.2#2 0x00007f72a51f2523 in Net_Thread::svc() () from /usr/local/net_manager-0.0.2/lib/libnet_manager.so.0.0.2#3 0x00007f72a5494b45 in utils::Task_Base::thread_proc(void*) () from /usr/local/utils-0.0.1/lib/libutils.so.0.0.1#4 0x00007f72a4295851 in start_thread () from /lib64/libpthread.so.0#5 0x00007f72a459267d in clone () from /lib64/libc.so.6Thread 1 (Thread 0x7f72a60ae7e0 (LWP 30222)):#0 0x00007f72a4584c95 in _xstat () from /lib64/libc.so.6#1 0x00007f72a45483e0 in __tzfile_read () from /lib64/libc.so.6#2 0x00007f72a4547864 in tzset_internal () from /lib64/libc.so.6#3 0x00007f72a4547b20 in tzset () from /lib64/libc.so.6#4 0x00007f72a4546699 in timelocal () from /lib64/libc.so.6#5 0x0000000000b0b08d in Achieve::GetRemainTime(AchieveTemplate*) ()#6 0x0000000000b115ca in Achieve::update() ()#7 0x0000000000a197ce in Player::update() ()#8 0x0000000000b1b272 in PlayerMng::Tick() ()#9 0x0000000000a73105 in GameServer::FrameTick(unsigned int) ()#10 0x0000000000a6ff80 in GameServer::run() ()#11 0x0000000000a773a1 in main ()[root@AY130816144542124256Z gameserver]# ps -eLo pid,lwp,pcpu | grep 3022230222 30222 31.430222 30251 0.030222 30252 0.030222 30253 0.030222 30254 0.030222 30255 0.030222 30256 1.230222 30257 1.230222 30258 1.0多组数据显⽰表明我们的主逻辑线程的确占⽤的cpu⾮常⾼,发现事实上在Achieve::update() 的时候做了太多没实⽤的推断,⽽且能够降低循环进⼊的次数的。
Linux系统查看CPU使用率、内存使用率、磁盘使用率
Linux系统查看CPU使⽤率、内存使⽤率、磁盘使⽤率⼀、查看CPU使⽤率1. top 命令[root@sss ~]# toptop - 16:54:38 up 7 days, 5:13, 3 users, load average: 0.00, 0.01, 0.05Tasks: 77 total, 2 running, 75 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 1882232 total, 813020 free, 330164 used, 739048 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 1386608 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND17215 root 0 -20 127504 12176 9560 S 0.7 0.6 21:46.45AliYunDun2770 root 20 0 573932 17232 6088 S 0.3 0.9 1:11.38tuned1 root 20 0 43548 3844 2588 S 0.0 0.2 0:06.54systemd2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd3 root 20 0 0 0 0 S 0.0 0.0 0:08.75 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H... ...123456789101112131415top命令可以看到总体的系统运⾏状态和cpu的使⽤率。
%us:表⽰⽤户空间程序的cpu使⽤率(没有通过nice调度)%sy:表⽰系统空间的cpu使⽤率,主要是内核程序。
linux硬件资源问题排查:cpu负载、内存使用情况、磁盘空间、磁盘IO
linux硬件资源问题排查:cpu负载、内存使⽤情况、磁盘空间、磁盘IO 在使⽤过程中之前正常的功能,突然⽆法使⽤,性能变慢,通常都是资源消耗问题,资源消耗可以从以下⼏个⽅⾯去排查。
对于已经安装硬件资源监控软件(zabbix)的环境,直接使⽤硬件资源监控软件(zabbix),检查服务器的资源消耗情况,在没有安装zabbix的环境,主要排查的资源包括CPU负载、内存使⽤情况、磁盘空间、磁盘IO等。
1.1.1 cpu负载 cpu负载就是cpu在⼀段时间内正在处理以及等待cpu处理的进程数之和的统计信息,也就是cpu使⽤队列的长度统计信息,这个数字越⼩越好。
使⽤top指令将会输出如下结果 load average代表CPU的平均负载值,⽰例中的load average: 1.30, 1.27,1.28分别表⽰当前CPU在1分钟、5分钟和15分钟内的平均负载。
对于单核cpu,⼀旦⼤于1,就说明job得不到及时调度,系统性能将会受到影响。
对于2核⼼来说,该值⼤于2才说明cpu忙不过来。
在top指令输出结果后,输⼊P,将进程按%cpu降序排列,查看哪些进程在⼤量占⽤cpu,输⼊M,将进程按%MEM降序排列,查看哪些进程在⼤量占⽤内存。
1.1.2 内存使⽤情况 使⽤free -h查看内存使⽤情况。
# free -htotal used free shared buff/cache availableMem: 15G 12G 295M 38M 2.8G 2.6GSwap: 7.9G 416M 7.5G total表⽰系统总的可⽤物理内存⼤⼩,used表⽰已经使⽤的物理内存⼤⼩,available可以被应⽤程序使⽤的物理内存⼤⼩,当可使⽤的物理内存⼤⼩较⼩时,结合top指令,查看哪些应⽤程序占⽤的⼤量内存。
1.1.3 磁盘空间 使⽤df -h查看系统的磁盘使⽤情况。
# df -h⽂件系统容量已⽤可⽤已⽤% 挂载点/dev/sda2 50G 24G 27G 47% /devtmpfs 7.8G 07.8G 0% /devtmpfs 7.8G 28K 7.8G 1% /dev/shmtmpfs 7.8G 37M 7.8G 1% /runtmpfs 7.8G 07.8G 0% /sys/fs/cgroup/dev/sdb2 40G 4.8G 36G 12% /var/scs/dev/sdc2 30G 20G 11G 64% /home/dev/sda1 494M 208M 287M 43% /boot/dev/sdc1 249G 108G 142G 44% /home/sdc/dev/sdb1 239G 133G 107G 56% /home/sdb/dev/sda5 220G 101G 120G 46% /home/sdatmpfs 1.6G 4.0K 1.6G 1% /run/user/42tmpfs 1.6G 32K 1.6G 1% /run/user/0 对于磁盘使⽤情况,主要关注已⽤%,已⽤%⼤于80%后要开始清理⽆效⽇志、不在使⽤的安装包等。
CentosLinux下查看服务器信息的方法
在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘CPU、内存的使用情况,网络流量和磁盘I/O?
A: 在命令行方式下,
17 查看服务器主机名
hostname
cat /etc/sysconfig/network
CentOS查看CPU、内存、网络流量和磁盘 I/O【详细】
安装 yum install -y sysstat
sar -d 1 1
rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s: 每秒读扇区数。即 delta(rsect)/s
wsec/s: 每秒写扇区数。即 delta(wsect)/s
cpu 表示cpu的使用状态
cs--》用户进程使用的时间
sy--》系统进程使用的时间
id--》cpu空闲的时间
其中:
如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果pi,po 长期不等于0,表示内存不足。
如果disk 经常不等于0, 且在 b中的队列 大于3, 表示io性能不好。
rpm -qa | wc -l
yum list installed | wc -l
11 查看服务器键盘布局
cat /etc/sysconfig/keyboard
linux查看io命令
linux查看io命令linux下iostat命令主要用于监控io设备的负载情况,下面由店铺为大家整理了linux查看io命令的相关知识,希望对大家有帮助!linux查看io命令详解iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。
用户可以通过指定统计的次数和时间来获得所需的统计信息。
语法iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ] 入门使用iostat -d -k 2参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。
输出如下iostat -d -k 1 10Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 39.29 21.14 1.44 441339807 29990031sda1 0.00 0.00 0.00 1623 523sda2 1.32 1.43 4.54 29834273 94827104sda3 6.30 0.85 24.95 17816289 520725244sda5 0.85 0.46 3.40 9543503 70970116sda6 0.00 0.00 0.00 550 236sda7 0.00 0.00 0.00 406 0sda8 0.00 0.00 0.00 406 0sda9 0.00 0.00 0.00 406 0sda10 60.68 18.35 71.43 383002263 1490928140Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 327.55 5159.18 102.04 5056 100sda1 0.00 0.00 0.00 0 0输出信息的意义tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。
linux一些常用的查看资源使用命令
linux一些常用的查看资源使用命令
在Linux系统中,可以使用以下命令来查看资源的使用情况:
1. top:实时查看系统的整体运行情况,包括CPU、内存、进程等的使用情况。
2. free:查看系统内存的使用情况,包括空闲内存、已使用内存、缓存和缓冲区的使用情况。
3. df:查看文件系统的磁盘空间使用情况,包括总容量、已用空间、剩余空间和挂载点。
4. du:查看目录或文件的磁盘使用情况,可以查看目录下所有文件的大小。
5. ps:查看系统当前运行的进程,可以查看进程的PID、占用CPU和内存等信息。
6. iostat:查看系统磁盘和设备的IO使用情况,包括读写速度、IOPS等。
7. netstat:查看网络连接和网络统计信息,包括监听端口、已建立的连接等。
8. sar:查看系统性能统计数据,包括CPU使用率、内存使用率、磁盘IO等。
9. vmstat:查看系统的虚拟内存使用情况,包括交换空间、页缓存、进程等。
10. lsof:查看系统打开的文件和网络连接,可以查看进程打开的文件和端口。
以上只是常用的几个命令,实际上Linux还有很多其他命令可以查看系统资源的使用情况,可以根据具体需求选择适合的命令来使用。
linux查看主板型号、CPU、显卡、硬盘等信息
linux查看主板型号、CPU、显卡、硬盘等信息系统uname -a # 查看内核/操作系统/CPU信息head -n 1 /etc/issue # 查看操作系统版本cat /proc/cpuinfo # 查看CPU信息hostname # 查看计算机名lspci -tv # 列出所有PCI设备lsusb -tv # 列出所有USB设备lsmod # 列出加载的内核模块env # 查看环境变量资源free -m # 查看内存使⽤量和交换区使⽤量df -h # 查看各分区使⽤情况du -sh <⽬录名> # 查看指定⽬录的⼤⼩grep MemTotal /proc/meminfo # 查看内存总量grep MemFree /proc/meminfo # 查看空闲内存量uptime # 查看系统运⾏时间、⽤户数、负载cat /proc/loadavg # 查看系统负载磁盘和分区mount | column -t # 查看挂接的分区状态fdisk -l # 查看所有分区swapon -s # 查看所有交换分区hdparm -i /dev/hda # 查看磁盘参数(仅适⽤于IDE设备)dmesg | grep IDE # 查看启动时IDE设备检测状况⽹络ifconfig # 查看所有⽹络接⼝的属性iptables -L # 查看防⽕墙设置route -n # 查看路由表netstat -lntp # 查看所有监听端⼝netstat -antp # 查看所有已经建⽴的连接netstat -s # 查看⽹络统计信息进程ps -ef # 查看所有进程top # 实时显⽰进程状态⽤户w # 查看活动⽤户id <⽤户名> # 查看指定⽤户信息last # 查看⽤户登录⽇志cut -d: -f1 /etc/passwd # 查看系统所有⽤户cut -d: -f1 /etc/group # 查看系统所有组crontab -l # 查看当前⽤户的计划任务服务chkconfig --list # 列出所有系统服务chkconfig --list | grep on # 列出所有启动的系统服务程序rpm -qa # 查看所有安装的软件包查看⽹卡型号lspci | grep Ethernet00:19.0 Ethernet controller: Intel Corporation 82567V-2 Gigabit Network Connection查看硬盘信息(查看硬盘型号和硬盘序列号):df -hFilesystem Size Used Avail Use% Mounted on/dev/sda5 2.0G 272M 1.6G 15% //dev/sda8 199G 188M 189G 1% /home/dev/sda3 9.7G 1.3G 7.9G 15% /usr/dev/sda2 9.7G 198M 9.0G 3% /var/dev/sda1 99M 17M 77M 18% /boot/dev/sda:Model=SAMSUNG HE253GJ , FwRev=1AJ30001, SerialNo= S2B5J90ZC12060Config={ Fixed }RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=?16?CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=268435455IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}PIO modes: pio0 pio1 pio2 pio3 pio4DMA modes: mdma0 mdma1 mdma2UDMA modes: udma0 udma1 udma2AdvancedPM=yes: disabled (255) WriteCache=enabledDrive conforms to: unknown: ATA/ATAPI-0 ATA/ATAPI-1 ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6 ATA/ATAPI-7 * signifies the current active modedmesg | grep ATAata1: SATA max UDMA/133 cmd 0xf190 ctl 0xf180 bmdma 0xf150 irq 185ata2: SATA max UDMA/133 cmd 0xf170 ctl 0xf160 bmdma 0xf158 irq 185ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)ata1.00: ATA-8: SAMSUNG HE253GJ, 1AJ30001, max UDMA/133ata2: SATA link down (SStatus 0 SControl 300)Vendor: ATA Model: SAMSUNG HE253GJ Rev: 1AJ3ata3: SATA max UDMA/133 cmd 0xf130 ctl 0xf120 bmdma 0xf0f0 irq 185ata4: SATA max UDMA/133 cmd 0xf110 ctl 0xf100 bmdma 0xf0f8 irq 185ata3: SATA link down (SStatus 0 SControl 300)ata4: SATA link down (SStatus 0 SControl 300)ata5: PATA max UDMA/100 cmd 0xe040 ctl 0xe030 bmdma 0xe000 irq 177查看主板型号:dmidecode | more# dmidecode 2.10SMBIOS 2.4 present.57 structures occupying 2318 bytes.Table at 0x000E84B0.Handle 0x0000, DMI type 0, 24 bytesBIOS InformationVendor: Intel Corp.Version: GTG4310H.86A.0019.2009.0625.1334Release Date: 06/25/2009.....System Information 服务器品牌Manufacturer:Product Name: (没有信息表⽰⾮品牌或未识别)Version:Serial Number:UUID: 889BD67E-8D96-11DE-AC40-0013D4D9C9E8Wake-up Type: Power SwitchSKU Number: Not SpecifiedFamily: Not SpecifiedHandle 0x0002, DMI type 2, 15 bytesBase Board Information 主板型号/主板信息Manufacturer: Intel CorporationProduct Name: DG43GTVersion: AAE62768-300Serial Number: BTGT9340022NProcessor Information CPU信息/CPU型号/CPU主频Socket Designation: PROCESSORType: Central ProcessorFamily: Pentium DManufacturer: Intel(R) Corp.ID: 7A 06 01 00 FF FB EB BFSignature: Type 0, Family 6, Model 23, Stepping 10Version: Pentium(R) Dual-Core CPU E6500 @ 2.93GHzVoltage: 1.2 VExternal Clock: 266 MHzMax Speed: 4000 MHzCurrent Speed: 2931 MHzStatus: Populated, EnabledUpgrade: Socket LGA775Cache Information 硬件和CPU缓存情况Socket Designation: L1-CacheConfiguration: Enabled, Not Socketed, Level 1Operational Mode: Write BackInstalled Size: 32 kBMaximum Size: 32 kBBIOS Language Information BIOS语⾔Installable Languages: 1en|US|iso8859-1Currently Installed Language: en|US|iso8859-1 Physical Memory Array 主板最⼤⽀持内存Location: System Board Or MotherboardUse: System MemoryError Correction Type: NoneMaximum Capacity: 16 GBError Information Handle: Not ProvidedNumber Of Devices: 4Handle 0x002C, DMI type 19, 15 bytesMemory Array Mapped Address ⽬前的内存Starting Address: 0x00000000000Ending Address: 0x000FFFFFFFFRange Size: 4 GBPhysical Array Handle: 0x002BPartition Width: 0On Board Device Information 显卡型号Type: VideoStatus: EnabledDescription: Intelr GMA X4500 Video Device。
Linux服务器操作系统查看命令
Linux服务器操作系统查看命令Linux服务器操作系统的性能分析我们可以通过命令来查看详细信息。
下面由店铺为大家整理了Linux服务器操作系统查看命令,希望对大家有帮助!Linux服务器操作系统查看命令一、linux服务器性能查看1.1 cpu性能查看1、查看物理cpu个数:cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l2、查看每个物理cpu中的core个数:cat /proc/cpuinfo |grep "cpu cores"|wc -l3、逻辑cpu的个数:cat /proc/cpuinfo |grep "processor"|wc -l物理cpu个数*核数=逻辑cpu个数(不支持超线程技术的情况下)1.2 内存查看1、查看内存使用情况:#free -mtotal used free shared buffers cachedMem: 3949 2519 1430 0 189 1619-/+ buffers/cache: 710 3239Swap: 3576 0 3576total:内存总数used:已经使用的内存数free:空闲内存数shared:多个进程共享的内存总额- buffers/cache:(已用)的内存数,即used-buffers-cached+ buffers/cache:(可用)的内存数,即free+buffers+cached Buffer Cache用于针对磁盘块的读写;Page Cache用于针对文件inode的读写,这些Cache能有效地缩短I/O系统调用的时间。
对操作系统来说free/used是系统可用/占用的内存;对应用程序来说-/+ buffers/cache是可用/占用内存,因为buffers/cache很快就会被使用。
我们工作时候应该从应用角度来看。
vmstat 命令详解_妙不可言 linux下查看 CPU,内存,网络流量和磁盘 IO
vmstat 命令详解_妙不可言linux下查看CPU,内存,网络流量和磁盘IOvmstat 命令详解2009-09-14 10:38vmstat 是用来实时查看内存使用情况,反映的情况比用top直观一些.如果直接使用,只能得到当前的情况,最好用个时间间隔来采集vmstat T 其中T用具体的时间标示,单位是秒例如:vmstat 5 表格每隔5秒采集一次.这样在刷新的时候就能比较系统的看到那个列不正常的procs:r-->;在运行队列中等待的进程数b-->;在等待io的进程数w-->;可以进入运行队列但被替换的进程memoyswap-->;现时可用的交换内存(k表示)free-->;空闲的内存(k表示)pagesre--》回收的页面mf--》非严重错误的页面pi--》进入页面数(k表示)po--》出页面数(k表示)fr--》空余的页面数(k表示)de--》提前读入的页面中的未命中数sr--》通过时钟算法扫描的页面disk 显示每秒的磁盘操作。
s表示scsi盘,0表示盘号fault 显示每秒的中断数in--》设备中断sy--》系统中断cy--》cpu交换cpu 表示cpu的使用状态cs--》用户进程使用的时间sy--》系统进程使用的时间id--》cpu空闲的时间其中:如果r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果pi,po 长期不等于0,表示内存不足。
如果disk 经常不等于0,且在b中的队列大于3,表示io 性能不好。
1.) 如果在processes中运行的序列(process r)是连续的大于在系统中的CPU的个数表示系统现在运行比较慢,有多数的进程等待CPU.2.) 如果r的输出数大于系统中可用CPU个数的4倍的话,则系统面临着CPU短缺的问题,或者是CPU的速率过低,系统中有多数的进程在等待CPU,造成系统中进程运行过慢.3.) 如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us) 系统则面临着CPU资源的短缺.解决办法:当发生以上问题的时候请先调整应用程序对CPU的占用情况.使得应用程序能够更有效的使用CPU.同时可以考虑增加更多的CPU. 关于CPU的使用情况还可以结合mpstat, ps aux top prstat –a等等一些相应的命令来综合考虑关于具体的CPU的使用情况,和那些进程在占用大量的CPU时间.一般情况下,应用程序的问题会比较大一些.比如一些SQL语句不合理等等都会造成这样的现象.内存问题现象:内存的瓶颈是由scan rate (sr)来决定的.scan rate是通过每秒的始终算法来进行页扫描的.如果scan rate(sr)连续的大于每秒200页则表示可能存在内存缺陷.同样的如果page项中的pi和po这两栏表示每秒页面的调入的页数和每秒调出的页数.如果该值经常为非零值,也有可能存在内存的瓶颈,当然,如果个别的时候不为0的话,属于正常的页面调度这个是虚拟内存的主要原理.解决办法:1.调节applications & servers使得对内存和cache的使用更加有效.2.增加系统的内存.3. Implement priority paging in s in pre solaris 8 versions by adding line "set priority paging=1" in/etc/system. Remove this line if upgrading from Solaris 7 to 8 & retaining old /etc/system file.关于内存的使用情况还可以结ps aux top prstat –a 等等一些相应的命令来综合考虑关于具体的内存的使用情况,和那些进程在占用大量的内存.一般情况下,如果内存的占用率比较高,但是,CPU的占用很低的时候,可以考虑是有很多的应用程序占用了内存没有释放,但是,并没有占用CPU时间,可以考虑应用程序,对于未占用CPU时间和一些后台的程序,释放内存的占用.。
Linux查看服务器内存、磁盘、cpu、网络占用、端口占用情况
Linux查看服务器内存、磁盘、cpu、⽹络占⽤、端⼝占⽤情况1、查看物理CPU个数:catcat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l2、查看服务器CPU内核个数:cat 每个物理CPU中core的个数(即核数)cat /proc/cpuinfo | grep "cpu cores" | uniq3、服务器内存使⽤情况:freefree -m --查看内存,不带单位free -h --查看内存使⽤情况,带单位,显⽰查看结果(对于新⼿来说这个更详细些)total:总计物理内存的⼤⼩used:已使⽤内存free:可⽤内存Shared:多个进程共享的内存总额Buffers/cached:磁盘缓存的⼤⼩缓存是可以清除的4.top --可以查看服务器各个进程情况uptime -- 可以查看机器多少条没有重启了,⼀共多少个⽤户退出top :q 或者 ctrl+c每个字段的解读Procs(进程):r: 运⾏队列中进程数量,这个值也可以判断是否需要增加CPU。
(长期⼤于1)b: 等待IO的进程数量Memory(内存):swpd: 使⽤虚拟内存⼤⼩free: 空闲物理内存⼤⼩buff: ⽤作缓冲的内存⼤⼩cache: ⽤作缓存的内存⼤⼩Swap:si: 每秒从交换区写到内存的⼤⼩,由磁盘调⼊内存so: 每秒写⼊交换区的内存⼤⼩,由内存调⼊磁盘IO:bi: 每秒读取的块数bo: 每秒写⼊的块数system:in: 每秒中断数,包括时钟中断。
cs: 每秒上下⽂切换数。
CPU(以百分⽐表⽰):us: ⽤户进程执⾏时间百分⽐(user time)sy: 内核系统进程执⾏时间百分⽐(system time)wa: IO等待时间百分⽐id: 空闲时间百分⽐5.查看端⼝占⽤情况命令为 lsof -i将会显⽰命令 + 进程ID + 进程所属⽤户, 以及监听的协议、状态等信息注意: 若提⽰⽆此命令, 则需要安装, 命令如下:[root@onepiece ~]# lsof -i-bash: lsof: command not found[root@onepiece ~]# yum install -y lsof......Installed:lsof.x86_64 0:4.87-6.el7Complete!# 出现上述的 "Complete!",说明安装成功。
Linux系统IO分析工具之iotop参数详解(查看IO占用)
Linux系统IO分析⼯具之iotop参数详解(查看IO占⽤)这篇⽂章主要介绍了Linux系统IO分析⼯具之iotop参数详解(查看IO占⽤),本⽂着重注解了iotop⼯具的参数,以及可操作命令,需要的朋友可以参考下简介:iotop – simple top-like I/O monitoriotop是⼀个⽤来监视磁盘I/O使⽤状况的 top 类⼯具,可监测到哪⼀个程序使⽤的磁盘IO的信息(requires 2.6.20 or later)安装:复制代码代码如下:yum -y install iotop⽤法:复制代码代码如下:iotop [OPTIONS]选项:复制代码代码如下:--version #显⽰版本号-h, --help #显⽰帮助信息-o, --only #显⽰进程或者线程实际上正在做的I/O,⽽不是全部的,可以随时切换按o-b, --batch #运⾏在⾮交互式的模式-n NUM, --iter=NUM #在⾮交互式模式下,设置显⽰的次数,-d SEC, --delay=SEC #设置显⽰的间隔秒数,⽀持⾮整数值-p PID, --pid=PID #只显⽰指定PID的信息-u USER, --user=USER #显⽰指定的⽤户的进程的信息-P, --processes #只显⽰进程,⼀般为显⽰所有的线程-a, --accumulated #显⽰从iotop启动后每个线程完成了的IO总数-k, --kilobytes #以千字节显⽰-t, --time #在每⼀⾏前添加⼀个当前的时间-q, --quiet #suppress some lines of header (implies --batch). This option can be specified up to three times to remove header lines.-q column names are only printed on the first iteration,-qq column names are never printed,-qqq the I/O summary is never printed.可⽤的命令(在运⾏iotop命令后按相应键位):使⽤left和right改变排序(⽅向键改变排序列),还可使⽤以下命令:复制代码代码如下:r:反向排序,o:切换⾄选项--only,p:切换⾄--processes选项,a:切换⾄--accumulated选项q:退出i:改变线程的优先级例⼦:复制代码代码如下:$ iotop$ iotop –b –n 3 –d 5iotop命令是专门显⽰硬盘IO的命令,界⾯风格类似top命令。
Linux查看系统中网络流量的情况
Linux查看系统中网络流量的情况【来源:小鸟云计算】Ps.小鸟云,国内专业的云计算服务商Linux 中有各种查看网卡流量的工具,比如sar、iftop、nethogs 等。
它们可以从不同的维度来分析系统中流量信息,本文进行简要介绍。
sar的使用sar可以从网络接口层面来分析数据包的收发情况、错误信息等。
使用sar 来监控网络流量的常用命令为sar -n DEV [interval] [count]参数interval 是统计间隔,count 是统计次数。
示例:使用以下命令,可以使用sar 每两秒统计一次网络接口的活动状况,连续报告3 次:回显结果主要字段说明:IFACE:网络接口名称rxpck/s、txpck/s:每秒收/发的数据包数量rxkB/s、txkB/s:每秒收/发的字节数,以kB/s为单位rxcmp/s、txcmp/s:每秒收/发的压缩过的数据包数量rxmcst/s:每秒收到的多播数据包iftop 的使用iftop 命令常见用法iftop [-i interface]参数-i 后跟的interface 表示网络接口名,比如eth0、eth1 等等。
如果不通过-i 参数指定接口名,则默认检测第一块网卡的使用情况。
示例:回显结果说明:第一行:带宽使用情况显示。
中间部分为外部连接列表,即记录了哪些IP 正在和本机的网络连接。
中间部分靠右侧部分是实时流量信息,分别是该访问IP 连接到本机2 秒、10 秒和40 秒的平均流量。
=> 代表发送数据,<= 代表接收数据。
底部三行:第一列:TX 表示发送流量,RX 表示接收流量,TOTAL 表示总流量。
第二列cum:表示第一列各种情况的总流量。
第三列peak:表示第一列各种情况的流量峰值。
第四列rates:表示第一列各种情况2 秒、10 秒、40 秒内的平均流量。
注意:iftop 的流量显示单位是Mb,这里的b 是比特(bit),不是字节(byte)。
Linux命令高级技巧使用sar命令收集和分析系统性能数据
Linux命令高级技巧使用sar命令收集和分析系统性能数据Linux系统的性能监控和调优对于系统管理员和开发人员来说是非常重要的。
sar命令是一个常用的性能分析工具,可以帮助我们收集和分析系统性能数据。
本文将介绍如何使用sar命令来收集和分析系统性能数据的高级技巧。
一、sar命令简介sar命令是System Activity Reporter的缩写,可以收集系统的性能数据,包括CPU使用率、内存使用率、网络流量、磁盘IO等。
sar命令能够以不同的时间间隔收集数据,并将其存储在日志文件中,以供后续分析和报告。
二、sar命令的安装与基本用法sar命令通常是通过安装sysstat软件包来获取的。
在大多数Linux发行版中,可以使用以下命令来安装sysstat:```sudo apt-get install sysstat # Ubuntu/Debiansudo yum install sysstat # CentOS/RHEL```安装完成后,我们可以使用sar命令来收集系统性能数据。
以下是sar命令的一些常用选项:- -u: 收集CPU使用率数据- -r: 收集内存使用率数据- -n DEV: 收集网络流量数据,DEV为具体的网络设备名称- -b: 收集磁盘IO数据- -q: 收集系统负载数据例如,要收集CPU使用率数据,可以使用以下命令:```sar -u 1 10 # 每隔1秒收集一次,一共收集10次```三、sar命令的输出与格式说明sar命令的输出通常是以文本形式呈现的,包含了一系列的性能数据。
以下是一个示例输出:```12:00:01 CPU %user %nice %system %iowait %steal %idle12:00:02 all 0.30 0.00 0.20 0.00 0.00 99.5012:00:03 all 0.40 0.00 0.20 0.00 0.00 99.40...```输出中的各列含义如下:- 时间戳(Time): 记录数据采集时的时间- CPU: 表示该行数据对应的是整个系统或特定CPU核心的数据- %user: 用户态CPU使用率- %nice: 以较低优先级运行的进程(如nice命令调整优先级)的CPU使用率- %system: 内核态CPU使用率- %iowait: 等待IO完成的CPU使用率- %steal: 被其他虚拟机偷取的CPU使用率- %idle: CPU空闲率四、sar命令的高级使用技巧1. 收集过去的系统性能数据sar命令可以指定一个日志文件作为输入来分析过去的系统性能数据。
查看linux机器状态的常用命令
查看linux机器状态的常用命令
以下是常用的用于查看Linux机器状态的命令:
1. `top`:实时查看系统资源使用情况,包括CPU使用率、内
存使用率、进程信息等。
2. `htop`:类似于top,可以更直观地展示系统资源使用情况,并且支持交互式操作。
3. `uptime`:显示系统的运行时间以及当前平均负载情况。
4. `vmstat`:实时监控系统的虚拟内存、进程、CPU等状态。
5. `iostat`:查看磁盘IO使用情况,包括读写速度、IO等待时
间等。
6. `nethogs`:监视每个进程的网络使用情况,显示每个进程使
用的带宽。
7. `ifconfig`:查看网络接口的配置信息。
8. `ip`:更强大的网络配置工具,可以用来查看、配置网络接口、路由等。
9. `df`:显示文件系统的磁盘使用情况。
10. `free`:显示系统的内存使用情况,包括总内存、已用内存、空闲内存等。
11. `ps`:列出当前正在运行的进程信息。
12. `netstat`:用于查看网络连接状态,包括TCP、UDP连接等。
13. `sar`:系统性能监控工具,可以查看CPU、内存、磁盘IO、网络等的使用情况。
14. `dmesg`:查看内核日志,可以用来分析系统启动过程中的
错误信息。
15. `lsof`:显示当前系统打开的文件列表。
16. `lsblk`:显示系统上的块设备信息。
17. `lsmod`:列出当前加载的内核模块。
这些命令可以帮助您了解和监控Linux机器的状态,方便进行故障排查和性能优化。
linux系统常用监控指标
linux系统常用监控指标Linux系统常用监控指标Linux系统中,监控指标是评估系统性能和健康状况的重要依据。
通过监控指标,可以及时发现问题并及时采取措施,保证系统的稳定和高效运行。
本文将介绍Linux系统常用的监控指标。
一、CPU使用率CPU使用率是衡量系统负载的重要指标之一。
通过监控CPU使用率可以了解系统的运行状况,判断是否存在CPU资源瓶颈。
通常使用top命令或者sar命令来查看CPU使用率。
二、内存使用情况内存是系统性能的关键因素之一,合理的内存使用可以提升系统的运行效率。
通过监控内存使用情况,可以了解系统内存的分配和使用情况,判断是否存在内存不足的情况。
常用的命令有free和top 命令。
三、磁盘I/O磁盘I/O是指计算机与硬盘之间的数据传输,磁盘I/O的性能直接影响系统的整体性能。
通过监控磁盘I/O指标,可以了解磁盘的读写速度和响应时间,判断是否存在磁盘I/O瓶颈。
常用的命令有iostat和sar命令。
四、网络流量网络流量是指数据在网络中的传输情况,网络流量的监控可以帮助我们了解网络的负载情况,判断是否存在网络瓶颈。
通过监控网络流量指标,可以了解网络的带宽使用情况,常用的命令有netstat 和iftop命令。
五、进程状态进程是系统中正在运行的程序的实例,进程的状态可以反映系统的运行情况。
通过监控进程状态指标,可以了解系统中各个进程的运行情况,判断是否存在进程过多或者进程阻塞的情况。
常用的命令有ps和top命令。
六、系统负载系统负载是指系统中正在运行的进程数目,系统负载的大小可以反映系统的工作负荷。
通过监控系统负载指标,可以了解系统的繁忙程度,判断是否存在系统负载过高的情况。
常用的命令有uptime 和top命令。
七、文件打开数文件打开数是指系统中打开的文件数量,文件打开数的过高可能会导致系统资源的浪费。
通过监控文件打开数指标,可以了解系统中打开文件的情况,判断是否存在文件句柄泄漏或者文件描述符不足的情况。
Linux下查询内存使用情况的常用命令
Linux下查询内存使⽤情况的常⽤命令1、free命令 free 命令会显⽰系统内存的使⽤情况,包括物理内存、交换内存(swap)和内核缓冲区内存等。
$ freetotal used free shared buff/cache availableMem: 3294632424893921142265616228721903427628352888Swap: 000释义: Mem:内存使⽤情况。
Swap:交换空间(虚拟内存)使⽤情况。
total:系统总共可⽤物理内存、交换空间⼤⼩。
used:已经被使⽤的物理内存、交换空间⼤⼩。
free:剩余可⽤物理内存、交换空间⼤⼩。
shared:被共享使⽤的物理内存⼤⼩。
buff/cache:被 buffer 和 cache 使⽤的物理内存⼤⼩。
available:还可以被应⽤程序使⽤的物理内存⼤⼩。
常见⽤法:free -h //以更友好的⽅式显⽰,会以K、M、G为单位来显⽰free -h -s 3 //以⼀定时间间隔重复的输出,这个命令是每3秒输出⼀次 free 命令中的信息都来⾃于 /proc/meminfo ⽂件。
2、vmstat命令 vmstat 是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进⾏监控,是对系统的整体情况进⾏的统计。
$ vmstatprocs -----------memory----------- --swap-- --io-- --system-- -----cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st1 0 0 14376368 161976 1130836 0 0 0 32 2 0 0 100 0 0 与内存使⽤情况相关的是memory列和swap列,我们只看这两列。
Linux中查看CPU、内存和IO的占用情况
Linux中查看CPU、内存和IO的占⽤情况对于服务器的监控,主要还是查看CPU、内存以及IO的占⽤情况,在此做个简单的了解⼀、常⽤命令1、top命令top命令应该是使⽤⽐较多的⼀个,可以看到CPU和内存的占⽤情况以及进程的PID,进⼊top页⾯后,⼤写的字母P和M分别是按照CPU占⽤和内存占⽤排序显⽰。
2、free命令free命令在查看内存使⽤情况是也是⽤的⽐较多。
3、ps命令ps -aux | sort -k4nr | head -Nhead -N可以指定显⽰的⾏数,默认显⽰10⾏。
ps -aux中参数a指all,即所有的进程;u指userid,即执⾏该进程的⽤户id;x指显⽰所有程序,不以终端机来区分。
sort -k4nr中k代表根据哪⼀个关键词排序,后⾯的数字4表⽰按照第四列排序;n代表numberic sort,指根据其数值排序;r代表reverse,指反向⽐较结果,因为输出时默认是从⼩到⼤,⽤了反向后就是从⼤到⼩。
上述命令%MEM是第四列,故是按照内存占⽤情况列举内存占⽤最多的N⾏进程;%CPU是第三列,查看CPU占⽤情况的话,⽤k3即可。
4、iostat命令以磁盘为单位查看io情况,个⼈常⽤iostat -xdm 1来查看5、pidstat命令统计进程的状态,⾃然也包括进程的IO状况,个⼈常⽤pidstat -urd 1-u:CPU使⽤率-r:缺页及内存信息-d:IO信息-t:有需要的话也可以以线程为统计单位查看进程IO状况的还有iotop命令⼆、如何在发⽣OOM时⾃动dump内存快照1、问题背景在运维服务器的时候会遇到⼀些java进程报错“ng.OutOfMemoryError”然后进程死掉的情况,对于Java我了解的不多,但是当问题发⽣的时候起码需要知道是什么对象太多导致的OOM,所以在发⽣OOM时能有⼀份dump内存快照对于排查问题就很重要了。
2、配置当发⽣OOM时,进程会死掉,但是并不是说是JVM完全来不及处理然后就突然进程就没了,也就是说这个机制不是JVM⾃⼰触发的,是受到控制的。
linux-c程序获取cpu使用率及内存使用情况
linux-c程序获取cpu使用率及内存使用情况想获取一下目标机运行时linux系统的硬件占用情况,写了这几个小程序,以后直接用了。
方法就是读取proc下的文件来获取了。
cpu 使用率:/proc/stat ,内存使用情况:/proc/meminfo看程序:/**************************************************** ************ @file: statusinfo.c** @brief: 从linux系统获取cpu及内存使用情况** @version 1.0** @author 抹黑** @date 2009年3月17日****************************************************** **********/typedef struct PACKED //定义一个cpuoccupy的结构体{char name[20]; //定义一个char类型的数组名name有20个元素unsigned int user; //定义一个无符号的int类型的userunsigned int nice; //定义一个无符号的int类型的niceunsigned int system;//定义一个无符号的int 类型的systemunsigned int idle; //定义一个无符号的int类型的idle}CPU_OCCUPY;typedef struct PACKED //定义一个mem occupy的结构体{char name[20]; //定义一个char类型的数组名name有20个元素unsigned long total;char name2[20];unsigned long free;fgets (buff, sizeof(buff), fd); //从fd文件中读取长度为buff的字符串再存到起始地址为buff这个空间里sscanf (buff, "%s %u", m->name2,&m->free, m->name2);fclose(fd); //关闭文件fd}int cal_cpuoccupy (CPU_OCCUPY *o, CPU_OCCUPY *n){unsigned long od, nd;unsigned long id, sd;int cpu_use = 0;od = (unsigned long) (o->user + o->nice + o->system +o->idle);//第一次(用户+优先级+系统+空闲)的时间再赋给odnd = (unsigned long) (n->user + n->nice + n->system +n->idle);//第二次(用户+优先级+系统+空闲)的时间再赋给odid = (unsigned long) (n->user -o->user); //用户第一次和第二次的时间之差再赋给idsd = (unsigned long) (n->system -o->system);//系统第一次和第二次的时间之差再赋给sdif((nd-od) != 0)cpu_use = (int)((sd+id)*10000)/(nd-od); //((用户+系统)乖100)除(第一次和第二次的时间差)再赋给g_cpu_usedelse cpu_use = 0;//printf("cpu: %u\n",cpu_use);return cpu_use;}get_cpuoccupy (CPU_OCCUPY *cpust) //对无类型get函数含有一个形参结构体类弄的指针O{FILE *fd;int n;char buff[256];CPU_OCCUPY *cpu_occupy;cpu_occupy=cpust;fd = fopen ("/proc/stat", "r");fgets (buff, sizeof(buff), fd);sscanf (buff, "%s %u %u %u %u",cpu_occupy->name, &cpu_occupy->user, &cpu_occupy->nice,&cpu_occupy->system, &cpu_occupy->idle);fclose(fd);}int main(){CPU_OCCUPY cpu_stat1;CPU_OCCUPY cpu_stat2;MEM_OCCUPY mem_stat;int cpu;//获取内存get_memoccupy ((MEM_OCCUPY*)&mem_stat);//第一次获取cpu使用情况get_cpuoccupy((CPU_OCCUPY*)&cpu_stat1);sleep(10);//第二次获取cpu使用情况get_cpuoccupy((CPU_OCCUPY*)&cpu_stat2);//计算cpu使用率cpu = cal_cpuoccupy ((CPU_OCCUPY *)&cpu_stat1, (CPU_OCCUPY *)&cpu_stat2);return 0;}linux下如何获取cpu的利用率"proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。
Linux命令高级技巧使用vmstat命令查看内存与交换空间使用情况
Linux命令高级技巧使用vmstat命令查看内存与交换空间使用情况Linux命令高级技巧:使用vmstat命令查看内存与交换空间使用情况vmstat命令是Linux系统自带的一个工具,可以提供关于系统的虚拟内存、进程、CPU以及IO等方面的信息。
本文将详细介绍如何使用vmstat命令来查看系统的内存和交换空间的使用情况。
一、什么是vmstat命令vmstat是virtual memory statistics(虚拟内存统计)的缩写,它可以基于系统当前的状态提供多种信息。
vmstat命令提供了关于系统的综合性指标,可以用于监控性能问题、找出系统瓶颈,以及提供进一步的系统优化建议。
二、使用vmstat命令查看内存的使用情况1. 打开终端,并输入以下命令:```$ vmstat```2. vmstat命令会实时显示当前系统的内存使用情况。
输出的结果会包含以下几个参数解读:```procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st0 0 0 103180 80044 470400 0 0 0 0 0 0 0 0 100 0 0```参数解读:- procs:任务队列和进程使用情况;- memory:内存使用情况;- swap:交换空间使用情况;- io:I/O使用情况;- system:系统运行时间和CPU使用情况;- cpu:CPU使用情况。
在这里我们只关注memory和swap两个参数。
3. 查看内存使用情况- free:已经被内核释放的空闲内存;- buff:作为buffer缓存的内存;- cache:作为page cache缓存的内存。
这里一共有三个参数,free表示空闲内存,buff表示作为buffer缓存的内存,cache表示作为page cache缓存的内存。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
$ top
2. 查看内存使用情况的命令
""用free命令查看内存占用情况
$ free
""top 然后按Shift+M, 按照进程内存占用率排序
$ top
3. 查看网络流量
""可以用工具iptraf工具
$ iptraf -g
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 2048 MB //1条2G内存
Part Number:
--
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Type: DDR2
Type Detail: Synchronous
Speed: Unknown
Manufacturer:
Serial Number:
Asset Tag:
Type: DDR2
Type Detail: Synchronous
Speed: Unknown
Manufacturer:
Serial Number:
Asset Tag:
""针对某个Interface的网络流量可以通过比较两个时间网络接口的RX和TX数据来获得
$ date; ifconfig eth1
$ date; ifconfig eth1
4. 查看磁盘i/o
""用iostat查看磁盘/dev/sdc3的磁盘i/o情况,每两秒刷新一次
$ iostat -d -x /dev/sdc3 2
Type: DDR2
Type Detail: Synchronous
Speed: Unknown
Manufacturer:
Serial Number:
Asset Tag:
总结:该服务器有2个4核CPU,型号Intel(R) Xeon(R) CPU E5630 @ 2.53GHz
2 查看内存
2.1 查看内存总数
#cat /proc/meminfo | grep MemTotal
MemTotal: 32941268 kB //内存32G
--
Memorye: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Part Number:
--
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
2.2 查看内存条数
本节内容引自新浪博文《Linux查看内存条数》
具体个数大小:dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range
查看原文:
# dmidecode |grep -A16 "Memory Device$"
Form Factor: DIMM
Set: 1
Locator: DIMM1
Bank Locator: Not Specified
Type: DDR2
Type Detail: Synchronous
使用vmstat命令来察看系统资源情况
在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘I/O?
Q: 在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘I/O?
A: 在命令行方式下,
1. 查看CPU使用情况的命令
""每5秒刷新一次,最右侧有CPU的占用率的数据
$ vmstat 5
Data Width: 64 bits
Size: No Module Installed //1个内存空槽
Form Factor: DIMM
Set: 3
Locator: DIMM6
Bank Locator: Not Specified
Type: DDR2
Type Detail: Synchronous
Speed: 667 MHz
Manufacturer: 7F7F7F7F7F510000
Serial Number: 0403E324
Asset Tag: 450721
Speed: 667 MHz
Manufacturer: 7F7F7F7F7F510000
Serial Number: 0403E324
Asset Tag: 450721
Part Number: 72T256220HR3SA
Data Width: 64 bits
Size: No Module Installed //1个内存空槽
Form Factor: DIMM
Set: 2
Locator: DIMM4
Bank Locator: Not Specified
Size: 2048 MB //1条2G内存
Form Factor: DIMM
Set: 1
Locator: DIMM2
Bank Locator: Not Specified
Type: DDR2
Type Detail: Synchronous
Speed: Unknown
Manufacturer:
Serial Number:
Asset Tag:
Part Number: 72T256220HR3SA
--
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: No Module Installed //1个内存空槽
Form Factor: DIMM
Set: 2
Locator: DIMM3
Bank Locator: Not Specified
1.2 查看CPU核数
# cat /proc/cpuinfo | grep "cpu cores" | uniq
cpu cores : 4
1.3 查看CPU型号
# cat /proc/cpuinfo | grep 'model name' |uniq
model name : Intel(R) Xeon(R) CPU E5630 @ 2.53GHz
Part Number:
--
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: No Module Installed //1个内存空槽
Form Factor: DIMM
Set: 3
Locator: DIMM5
Bank Locator: Not Specified
Part Number:
总结:该服务器有两条2G内存 ,空余4个插槽
3 查看硬盘
3.1 查看硬盘大小
# fdisk -l | grep Disk
Disk /dev/cciss/c0d0: 146.7 GB, 146778685440 bytes
总结:硬盘大小146.7G,即厂商标称的160G
""用vmstat查看io部分的信息
Linux 查看CPU,内存,硬盘1 查看CPU
1.1 查看CPU个数
# cat /proc/cpuinfo | grep "physical id" | uniq | wc -l
2
**uniq命令:删除重复行;wc –l命令:统计行数**