下载  >  服务器应用  >  其它  > Linux系统瓶颈分析

Linux系统瓶颈分析 评分:

Linux系统环境下对性能瓶颈进行技术分析
机制中处于低优先级 从上面我们可以看出内核是怎样管理不同资源的还有几个关键内容需要介绍,以下部分就将介绍 contex i(上下文切换) run queues(运行队列)以及 utilization(利用率) 3.1上下文切换 多数现代处理器都能够运行一个进程(单一线程)或者线程多路超线程处理器有能力运行多个线程然 而, Linux内核还是把每个处理器核心的双核心芯片作为独立的处理器比如以 Linux内核的系统在一个 双核心处理器上是报告显示为两个独立的处理器 一个标准的 Linux内核可以运行50至50,000的处理线程在只有一个CPU时内核将调度并均衡每个进 程线程每个线程都分配一个在处理器中被开销的时间额度一个线程要么就是获得时间额度或已抢先获得 些具有较高优先级(比如硬件中断),其中较高优先级的线程将从区域重新放置回处理器的队列中这种线 程的转换关系就是我们提到的上下文切换. 每次内核的上下文切换资源被用于关在CPU寄存器中的线程和放置在队列中系统中越多的上下文切 换在处理器的调度管理下,内核将得到更多的工作 3.2运行队列 每个CPU都维护一个线程的运行队列理论上调度器应该不断的运行和执行线程进程线程不是在 sleep 状态中(塞中和等待I中减就是在可运行状态中如果CPU子系统处于高负荷下那就意味着内核调度 将无法及时响应系统请求导致结果可运行状态进程拥塞在运行队列里当运行队列越来越巨大,进程线程 将花费更多的时间获取被执行 比较流行的术语就是"load",它提供当前运行队列的详细状态系统load就是指在CPU队列中有多少数目 的线程,以及其中当前有多少进程线程数目被执行的组合如果一个双核系统执行了2个线程还有4个在运 行队列中,则load应该为6.top这个程序里显示的 load averages是指1,5,15分钟以內的load情况 33CPU利用率 CPU利用率就是定义CPU使用的百分比评估系统最重要的一个度量方式就是CPU的利用率多数性能 监控工具关于CPU利用率的分类有以下几种 User time(用户进程时间)-关于在 user space中被执行进程在CPU开销时间百分比 System time(内核线程以及中断时间)-关于在 kernel space中线程和中断在CPU开销时间百分比 Wait Io(IO请求等待时间)-所有进程线程被阻塞等待完成一次IO请求所占CPU开销idle的时间百分 比 Idlc(空闲)-一个完整空状态的进程在CPU处理器中开销的时间百分比 4.0CPU性能监控 理解运行队列利用率,上下文切换对怎样CPU性能最优化之间的关系早期提及到性能是相对于基准线数 据的在一些系统中,通常预期所达到的性能包括: Run Queues-每个处理器应该运行队列不超过1-3个线程例子,一个双核处理器应该运行队列不要超过 6个线程 CPU UGliation-如果一个CPU被充分使用利用率分类之间均衡的比例应该是 650-70% Uscr Timc 30%0-35%G System Timc 0%o-5 Idle Time Context switches-上下文切换的数目直接关系到CPU的使用率如果CPU利用率保持在上述均衡状态 时大量的上下文切换是正常的 很多 Linux上的工具可以得到这些状态值首先就是 vmstat和top这2个工具 4. I vmstat工具的使用 vmstat工具提供了一种低开销的系统性能观察方式因为 vmstat本身就是低开销工具在非常高负荷的服 务器上你需要査看并监控系统的健康情况,在控制窗口还是能够使用 vmstat输出结果这个工具运行在2 种模式下 averaεe和 sample模式. sample模式通过指定间隔时间测量状态值这个模式对于理解在持续 负荷下的性能表现很有帮助.下面就是 vmstat运行1秒可隔的示例 vmstat 1 procs -----------memory-------------swap-------10------system------cpu--- r b swpd free buff cache si so bi bo in cs us sy id wa 001043001680095328722000052671441950 001043001680095328722000002410216411980 00104300168009532872200000010095911980 The vmstat CPu statistics Field description r The amount of threads in the run queue. These are threads that are runnable but the cpu is not available to execute them 当前运行队列中线程的数目代表线程处于可运行状态但CPU还未能执行 b This is the number of processes blocked and waiting on IO requests to finish 当前进程阻塞并等待IO请求完成的数目 in This is the number of interrupts bcing processed 当前中断被处理的数目 cs This is the number of context switches currently happening on the system 当前 kernel system中发生上下文切换的数目 us This is the percentage of user CPU utilization CPU利用率的百分比 sys This is the percentage of kernel and interrupts utilization 内核和中断利用率的百分比 wa This is the percentage of idle processor time due to the fact that all runnable threads are blocked waiting on Io 所有可运行状态线程被阻塞在等待IO请求的百分比 id This is the percentage of timc that the CPu is completely idlc CPU空闲时间的百分比 4.2案例学习持续的CPU利用率 在这个例子中这个系统被充分利用 #f vmstat 1 procs memory swap 10 system cpu r b swpd free buff cache si so bi bo in cs us sy wa id 302065641509280336176080000071826811900 20206564147728033617612000007582396400 10206564142088033617613600008202096400 10206956138847918017596404120268010088093700 2020734814448788001755760412041276370841600 202073481575678800175424000087425891100 102073481636878800175596000094024861400 10207348166007880017560400009292795302 30207348169767854817587600025089693593700 40207348162167854817570400008743693601 402073481642478548175776000085026772300 202073481749678556175840000073623831700 00207348176807855617586800008612191801 根据观察值,我们可以得到以下结论 1,有大量的中断in)和较少的上下文切换(cs),这意味着一个单一的进程在产生对硬件设备的请求 2,进步显示某单个应用, user time(us)经常在85%或者更多考虑到较少的上下文切换,这个应用应该还 在处理器中被处理 3,运行队列还在可接受的性能范围内其中有2个地方是超出了允许限制 4.3案例学习超负荷调度 在这个例子中内核调度中的上下文切换处于饱和 vmstat 1 procs memory swap 10 system cpu r b swpd free buff cache si so bi bo in cs us sy wa id 212077409847681344180972002496090028834125727 012077409644883304180984001968328810255989830 0120774094404853481809840020440829287996787 01207740925768717618098400182806892088397810 2020774091300884521809840012760565218276834 3120774090124896281809840011760551221927910 422077408924090512180984008805204439072210670 532077408805691680180984001l680628124812l1770 4220774086852928801809840012000654150567870 61207740857369399618098400111605261512510850 012077408484494888180984008920438155664900 根据观察值,我们可以得到以下结论: 1,上下文切换数目高于中断数目,说明 kernel中相当数量的时间都开销在上下文切换线程 2,大量的上下文切换将导致CPU利用率分类不均衡很明显实际上等待i0请求的百分比(wa)非常高以及 user time百分比非常低(us) 3因为CPU都阻塞在IO请求上,所以运行队列里也有相当数目的可运行状态线程在等待执行 4.4 mpstat工具的使用 如果你的系统运行在多处理器芯片上你可以使用 mpstat命令来监控每个独立的芯片 Linux内核视双核 处理器为2CPUs,因此一个双核处理器的双内核就报告有4CPUS可用 mpstat命令给出的CPU利用率统计值大致和 vmstat-致但是 mpstat可以给出基于单个处理器的统计 值 mpstat-P ALL I Linux 2.4.21-20.ELsmp(localhost localdomain)05/23/2006 05: 17: 31 PM CPU user onice system idle intr/s 05:17:32 PM all0000.003.1996.5313.27 05:17:32PM00.000000.00100.000.00 05:17:32PM11.120.0012.7386.1513.27 05:17:32PM20.000000.00100000.00 05:17:32PM30.000.00000100000.00 4.5案例学习:未充分使用的处理量 在这个例子中为4CPU核心可用其中2个CPU主要处理进程运行(CPU0和1).第3个核心处理所有 内核和其他系统功能(CPU3)第4个核心处于jdle(CPU2 使用top命令可以看到有3个进程差不多完全占用了整个CPU核心 top -d 1 top-23:08:53叩8:34,3 users, load average:0.91.0.37,0.13 Tasks: 190 total, 4 running, 186 sleeping, O stopped, 0 zombie Cpu(s):75.2%us,0.2%sy,0.0%ni,24.5%id,0.0%wa,0.0%hi,0.0% S1 Mem: 2074736k total 448684k used. 1626052k free 73756k buffers Swap: 4192956k total, Ok used, 4192956k free, 259044k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 15957 nobody2502776280224R10020.50:2548php 15959mysq12502256280224R10038.20:17.78 mysqld 15960apache2502416280224r10015.70:11.20httpd 1590 I root16027801092800R10.10:01.59top I root 1601780660572S00.00:00.64init # mpstat→PALL1 Linux 2. 4.21-20.ELsmp(localhost. localdomain)05/23/2006 05: 17: 31 PM CPU user %nice system %idle intr/s 05:17:32 PM all81.52000184821.17130.58 05:17:32PM083.670.0017.350.00115.31 05:17:32PM180.610.0019.390.0013.27 05:17:32PM20.000.0016.3384.662.01 05:17:32PM379.590.0021.430.000.00 05: 17: 32 PM CPU user nice csystem idle intr/s 05:17:33 PM all85.860.0014.1425.0011649 05:17:33PM088660.0012.370.0011649 05:17:33PM180.410.0019.590.00000 05:17:33PM20000.000.00100.000.00 05:17:33PM383.510.0016490.000.00 05: 17: 33 PM CPU User nicc csvstcm idlc intr/s 05:17:34 PM all82.740.0017.262500115.31 05:17:34PM085710.0013.270.00115.31 05:17:34PM178.570.0021430.000.00 05:17:34PM20.000.000.00100.00000 05:17:34PM392860.009180.000.00 05: 17: 34 PM CPU user nice csvstcm idlc intr/s 05:17:35 PM all87.500.0012.502500115.31 05:17:35PM091.840.008.160.00114.29 05:17:35PM190.820.0010.200.001.02 05:17:35PM20.000.000.00100.000.00 05:17:35PM381.630.0015.310.000.00 你也可以使用pS命令通过查看PSR这列检查哪个进程在占用了哪个CPU while: do ps-eo pid, ni, pri, pcpu, psr, comm I grep 'mysqld; sleep 1; done PID NI PRI OOCPU PSR COMMAND 1577501586.03 mysql PID NI PRI %OCPU PSR COMMAND 1577501494.03 mysqld PID NI PRI %OCPU PSR COMMAND 1577501496.63 mysqld PID NI PRI %OCPU PSR COMMAND 1577501498.03 mysqld PID NI PRI %OCPU PSR COMMAND 157750149883 mysqld PID NI PRI %CPU PSR COMMAND 1577501499.33 mysqld 4.6结论 监控CPU性能由以下几个部分组成 1,检查 system的运行队列以及确定不要超出每个处理器3个可运行状态线程的限制 2确定CPU利用率中ue/ systen比例维持在70/30 3当CPU开销更多的时间在 system mode,那就说明已经超负荷并且应该尝试重新调度优先级 4,当ⅠO处理得到增长,CPU范畴的应用处理将受到影响 50 Virtual memory介绍 虚拟内存就是采用硬盘对物理内存进行扩展,所以对可用内存的增加是要相对在一个有效范围内的内核会 写当前未使用内存块的内容到硬盘上,此时这部分内存被用于其它用途当再一次需要原始内容时,此时再读 回到內存中这对于用户来说是完全透明的在 Linux下运行的程序能够看到也仅仅是大量的可用内存,同 时也不会留意到偶尔还有部分是驻留在磁盘上的当然在硬盘上进行读和写都是很慢的(大约会慢上千 倍),相对于使用真实内存的话,因此程序无法运行的更快用硬盘的一部分作为Ⅴ irtual Memory这就被称 为" swap space"(交换空间) 5. 1 Virtual Memory Pages 虚拟内存被分为很多 pages(页),在X86架构中每个虚拟内存页为4KB当内核写内存到磁盘或者读磁盘 到内存这就是一次写内存到页的过程内核通常是在swap分区和文件系统之间进行这样的操作 5.2 Kernel Memory Paging 内存分页在正常情况下总是活跃的,与 memory swapping(內存交换)之间不要搞错了.内存分页是指内核 会定期将內存中的数据同步到硬盘这个过程就是 Memory paging.日复一日,应用最终将会消耗掉所有的 内存空间考虑到这点内核就必须经常扫描内存空间并且收回其中未被使用的内存页,然后再重新分配内存 空间给其他应用使用 5.3 The page frame reclaim algorith(PFRA)(页框回收算法) PHRA就是OS内核用来回收并释放內存空冋的算法PFRA选择哪个内存页被释放是基于内存页类型的. 页类型有以下几种 Unreclaimable-锁定的,内核保留的页面 Swappable匿名的内存页 Syncable-通过硬盘文件备份的内存页 Discardable-静态页和被丢弃的页 除了第一种( Unreclaimable)之外其余的都可以被PFRA进行回收 与PFRA相关的还包括 kswapd内核线程以及 Low On Memory Reclaiming(LMR算法)这2种进程 和实现 5.4 kswapd kswapd进程负责确保内存空间总是在被释放中.它监控内核中的 pages high和 pages_ low阀值如果空 闲內存的数值低于 pages_low则每次 kswapd进程启动扫描并尝试释放32个 free pages并一直重复这 个过程直到空闲内存的数值高于 pages_ high kswapd进程完成以下几个操作 1,如果该页处于未修改状态,则将该页放置回空列表中 2如果该页处于已修改状态并可备份回文件系统,则将页内容写入到磁盘. 3如果该页处于已修改状态但没有任何磁盘备份则将页内容写入到 swap device ps -ef i grep kswapd root301023:01?00:00:00队 kswapd0 5 Kernel Paging with pdflush pdflush进程负责将内存中的内容和文件系统进行同步操作也就是说当一个文件在内存中进行修改后, pdflush将负责写回到磁盘上 ps -ef I grep pdflush root283023:01200:00:00 pdflush root293023:01?00:00:00[ pdflush 当内存中存在10%的脏页, pdflush将被启动同步脏页回文件系统里这个参数值可以通过 vm.dirty_background_ratio来进行调整 (Q什么是脏页? A:由于内存中页缓存的缓存作用,写操作实际上都是延迟的当页缓存中的数据比磁盘存储的数据还要更新 时那么该数据就被称做脏页) #f sysctl -n vm. dirty _background_ratio 在多数环境下, Pdflush与PFRA是独立运行的,当内核调用LMR时,LMR就触发 pdflush将脏页写入到 磁盘里 +十++++++十十+++++++++十++++++++++++++++十+++++++++++++++++++++++++十 在2.4内核下,一个高负荷的内存环境中系统将遇到交换过程中不断的崩溃.这是因为PFRA从一个运行 进程中偷取其中一个内存页并尝试使用导致结果就是这个进程如果要回收那个页时要是没有就会尝试 再去偷取这个页这样—来就越来越糟糕了在26内核下,使用" Swap token"修复了这个BUG用来防止 PFRA不断从一个进程获取同一个页 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 56案例学习大量的入口I/O vmstat工具报告里除了CPU使用情况还包括了虚拟内存以下就是 vmstat输出中关于虚拟内存的部分: Table 2: The vmstat Memory Statistics Field description Swapd The amount of virtual memory in KB currently in use. As free memory reaches low thresholds, more data is paged to the swap device 当前虚拟内存使用的总额(单位KB)空内存达到最低的阀值时更多的数据被转换成页到交换设备中 Free The amount of physical RAM in kilobytes currently available to running applications 当前内存中可用空门间字节数. Buff The amount of physical memory in kilobytes in the buffer cache as a result of reado and write( operations 当前内存中用于read(和 write(操作的缓冲区中缓存字节数 Cache The amount of physical memory in kilobytes mapped into process address space 当前内存中映射到进程地址空间字节数 So The amount of data in kilobytes written to the swap disk 写入交换空间的字节数总额 Si The amount of data in kilobytes written from the swap disk back into RaM 从交换空间写回内存的字节数总额 Bo The amount of disk blocks paged out from the ram to the filesystem or swap device 磁盘块页面从内存到文件或交换设备的总额 Bi The amount of disk blocks paged into RaM from the filesystem or swap device 磁盘块页面从文件或交换设备到内存的总额 以下 amstat的输岀结果就是演示—个在Ⅳ/O应用中,虚拟内存在高负荷情況下的环境 vmstat 3 procs memory swap 10 system cpu r b swpd free buff cache si so bi bo in cs us sy id wa 328091922615567976088688041608244751426863173675 03809188194916798209529003070217451005118925903461248 03809188162212798409889209501210701801263322394 138092688875679924106142426028183771131142169435388 128262841760871240114418010061402583916380152811791991261 21854780176883414012089801953525557309671764223843131628 0886752817588323321226392314384165242780814901634110743

...展开详情
2012-07-25 上传 大小:308KB
举报 收藏
分享
Linux系统瓶颈分析

Linux系统环境下对性能瓶颈进行技术分析

立即下载
Linux系统20个系统监控工具

需要监控Linux服务器系统性能吗?尝试下面这些系统内置或附件的工具吧。大多数Linux发行版本都装备了大量的监控工具。这些工具提供了能用作取得相关信息和系统活动的量度指标。你能使用这些工具发现造成性能问题可能原因。此次讨论到的工具只是分析和调试服务器下面问题时最基本工具中的一部分。 1.找出瓶颈 2.硬盘(存储)瓶颈 3.CPU及内存瓶颈 4.网络瓶颈

立即下载
Linux系统性能监控

做为一名系统管理人员,经常会发现由于各种原因引起的系统瓶颈,只有掌握了行之有效的分析工具和方法,我们才能针对性的分析问题,为了使大家能清晰地从不同角度进行系统性能分析,本文从CPU、内存、IO、网络四个方面详细讲解有关linux系统性能监控的内容

立即下载
linux系统监控工具

监控,在检查系统问题或优化系统性能工作上是一个不可缺少的部分。通过操作系统监控工具监视操作系统资源的使用情况,间接地反映了各服务器程序的运行情况。根据运行结果分析可以帮助我们快速定位系统问题范围或者性能瓶颈点。因此操作系统的监控是不容忽视的。

立即下载
linux 系统性能相关1.rar

ext4文件系统的性能; Linux Virtual Server (LVS)之ksoftirqd进程耗尽单核100%si处理软中断导致性能瓶颈;   Linux 线程库性能测试与分析; 网卡软中断不能分发到CPU多核 问题的说明; Linux的实时性能测试.pdf  多核处理器上,怎样将软中断,内核线程绑定在指定的core上; LINUX上中断在各个CPU之间的负载平衡问题; 网卡中断在多核cpu上的负载均衡; 性能测试计数器整理汇总; 在多核系统上网络数据转发实验和一点思考;

立即下载
SD大会精品讲座:Linux系统下的高性能系统设计

在linux/unix操作系统下,如何能够设计出一个高性能,高可靠性,高可扩展性的系统?当系统出现瓶颈时,又该如何系统地发现并解决问题呢? 本课程由美国Stanford大学MBA、百度公司前首席架构师、酷我公司创始人雷鸣为您讲授。他的主要产品酷我音乐盒,已经有了大批的忠诚用户。 课程地址:http://www.itcast.net/portal/courses/unit/52

立即下载
Linux系统操作员(电子教案,参考答案)

内 容 简 介 本书是根据普通高等教育“十一五”国家级规划教材的指导精神而编写的。 本书依据LUPA开源软件国际认证教学大纲编写而成,以Red Hat Fedora Core 4为操作平台进行讲解,全面介绍了Linux的基本概念、特点、基本操作、文字处理——OpenOffice.org Writer、电子表格——OpenOffice.org Calc、演示文稿软件——OpenOffice.org Impress、图形/公式编辑软件——OpenOffice.org Draw/Math、计算机网络和因特网的功能及应用、文本编辑器和基本命令等内容。通过本书的学习,读者可以从中掌握Linux系统操作所

立即下载
shell查看系统资源性瓶颈

为什么我的linux服务器这么慢?那就可能是你的CPU过高等等,这个shell文件可以分析你当前的服务器性能

立即下载
Linux操作系统性能监测:磁盘IO篇

 磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离 CPU 距离最远而且 CPU 访问磁盘要涉及到机械操作,比如转轴、寻轨等。访问硬盘和访问内存之间的速度差别是以数量级来计算的,就像1天和1分钟的差别一样。要监测 IO 性能,有必要了解一下基本原理和 Linux 是如何处理硬盘和内存之间的 IO 的。

立即下载
每个Linux管理员都应该知道的20个系统监视工具

需要监控Linux服务器的性能?试试这些内置的命令和一些附加的工具吧。大多数Linux发行版都集成了一些监视工具。这些工具可以获取有关系统活动的信息的详细指标。通过这些工具,你可以发现产生系统性能问题可能存在原因。下面讨论的是一些最基本的命令,它涉及到系统分析和调试服务器等一些问题,如: 1. 找出系统瓶颈问题. 2. 磁盘 (储存) 瓶颈问题. 3. CPU和内存瓶颈问题. 4. 网络瓶颈问题.

立即下载
linux优化笔记

操作系统级 CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处理器可以在同一时间处理多个线程,因此可以利用超线程特性提高系统性能。 在linux系统下只有运行SMP内核才能支持超线程,但是安装的CPu数量越多,从超线程获得的性能提升越少。 另外linux内核会将多核的处理器当做多个单独的CPU来识别,例如,两个4核的CPU会被当成8个单个CPU,从性能角度讲,两个4核的CPU整体性能要比8个单核CPU低25%-30%。 可能出现CPU瓶颈的应用有邮件服务器、动态web服务器等。 内存 内存太小,系统进程将被阻塞,应用也将变得缓慢,甚至失去响应;内存太大,导致资源浪费。 虚拟内

立即下载
linux C编程

Linux C编程<br><br>出版社:清华大学出版社<br>作者: 李玉波 朱自强 郭军 编著<br>定价:36.00<br><br> <br> <br>  本书系统地介绍了在Linux平台下用C语言进行程序开发的过程,通过列举大量的程序实例,使读者很快掌握在Linux平台下进行C程序开发的方法和技巧,并具备开发大型应用程序的能力。<br>  本书内容翔实,主要包括:Linux平台下C语言及其编程环境的介绍,C语言编译器、调试工具和自动维护工具的使用方法,Linux系统提供的特有函数调用,在C程序中访问文件的方法,进程的概念、进程间通信及多进程同步运行的实现手段,C语言网络编程方法以及cu

立即下载
Linux性能优化实战

10分钟帮你找到Linux系统瓶颈--《Linux性能优化实战》 从CPU,内存, IO, 网络和综合实战篇给大家系统的介绍Linux系统的性能调优。对大家了解操作系统的工作原理和解决生产环境下软件性能问题都有很大的参考价值。即使是作为一个工具书参考也是很值得的。文章末尾附录了本专栏的大纲。

立即下载
linux io 分析

查看是什么在占io,方便找到io的瓶颈 深入研究系统底层原理与实现

立即下载
vtune for linux

Vtune 是 intel 的一款性能分析工具,其既可以分析某种应用的特性,也可以检测整个系统的特性,能够找出热点瓶颈的所在,给开发者提供良好的优化思路。

立即下载
Linux性能优化大师

性能调优有时被称为“黑色艺术”,因为有时有效地调整一个系统,要求具有更深层次的知识,且需要了解一个系统的硬件和软件组成,以及系统之间的相互作用。性能优化是针对特定环境来定制系统的配置过程,或者是让某个特定的应用程序得到更好的响应时间或吞吐量的过程。, 《Linux性能优化大师》首先对Linux 操作系统进行了深入剖析,并对最常用的企业监控工具Benchmark 及其他监控工具进行了详细的介绍,此外分析了系统中识别和分析瓶颈的过程,最后阐述如何使用性能衡量工具,以及如何对系统的4 大子系统进行调整,使系统以最优状态应对不同的工作环境。, 《Linux性能优化大师》适合广大Linux 用户深入学习

立即下载
Linux资源监控常用指令

Linux 系统由若干主要物理组件组成,如 CPU、内存、网卡和存储设备。要有效地管理 Linux 环境,您应该能够以合理的精度测量这些资源的 各种指标 — 每个组件处理多少资源、是否存在瓶颈等。 下面我们介绍下linux资源监控有关的一些命令:

立即下载
Linux性能优化实战.part2

《Linux性能优化实战》10分钟帮你找到Linux系统瓶颈对Linux的性能分析和调优都CPU,内存, IO, 网络和综合实战篇给大家系统的介绍Linux系统的性能调优。对大家了解操作系统的工作原理和解决生产环境下软件性能问题都有很大的参考价值。

立即下载
Linux性能优化实战.part3

《Linux性能优化实战》10分钟帮你找到Linux系统瓶颈对Linux的性能分析和调优都CPU,内存, IO, 网络和综合实战篇给大家系统的介绍Linux系统的性能调优。对大家了解操作系统的工作原理和解决生产环境下软件性能问题都有很大的参考价值。

立即下载
html+css+js制作的一个动态的新年贺卡

该代码是http://blog.csdn.net/qq_29656961/article/details/78155792博客里面的代码,代码里面有要用到的图片资源和音乐资源。

立即下载