首页 文章 精选 留言 我的

精选列表

搜索[centos],共5663篇文章
优秀的个人博客,低调大师

CentOS下Apache 高并发 性能优化

Apache的配置是针对原先较低的服务器来配置的,原先的配置显然已经不适合了,所以今天开始研究下Apache配置的问题。 1. 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块) MPM是Apache的核心,它的作用是管理网络连接、调度请求。 Apache2.0中MPM分为3种(perfork、worker、event)。perfork从Apache1.3中继承下来的,它采用的是进程管理方式,所以它可以提供更可靠的性能和更好的兼容性;worker是Apache2.0中新增加的方式,它采用了线程控制方法,可以比perfork更节约系统开销、处理更多的数据量,但同时兼容性并不是很好,很多旧的程序无法工作在worker下;event仍处于试验阶段,它为每个任务分配不同的进程池,目前不应该采用。 通过命令httpd -l可以获取目前Apache采用的是哪种MPM 本文仅针对perfork方式进行讨论 2. 了解perfork的工作方式 查看Apache2.0的配置文件httpd.conf,可以看到perfork的配置段,大致如下: ServerLimit 256 StartServers 5 MinSpareServers 10 MaxSpareServers 15 MaxClients 256 MaxRequestsPerChild 4000 当Apache被启动时,Apache会自动创建StartServers个进程,并且尽力将空闲进程数保持在MinSpareServers和MaxSpareServers之间。 如果空闲进程小于MinSpareServers,Apache将会以大约每秒1个的速度新建进程。 如果空闲进程小于MaxSpareServers,Apache将会删除多余的空闲进程,释放服务器资源。 进程数的最大值由MaxClients控制,在Apache1.3中最大只能设置为256,但在Apache2.0中,可以通过在配置开头增加ServerLimit项目来突破256的限制,此时必须MaxClients ≤ ServerLimit ≤ 20000 MaxRequestsPerChild用来控制每个进程在处理了多少次请求之后自动销毁,这个参数可以设置为0表示无限(即不销毁进程)。 3. 优化perfork 首先,对于一个负载相对较高的网站来说,256的进程限制是不够的,如果服务器已经达到256的极限,那么接下去的访问就需要排队,这也就是为什么某些服务器负载不高,但是访问却很慢的原因之一。所以首先应该了解服务器在繁忙时的进程数量。 通过命令ps -ef|grep httpd|wc -l可以了解到当前系统中Apache进程数,通过设置ServerLimit和MaxClients来达到为服务器软扩容的目的。 然后,在访问量高峰期,经常会出现的情况是突然之间发生非常多的并发连接,然后突然之间减少了很多访问。如果Apache没有准备足够数量的预备进程,那访问只能等待Apache每秒1个的新增进程,随后又要将多余的进程删除,那Apache只能一直忙于新建和销毁进程,大大地降低了访问速度。可以适当增加StartServers、MinSpareServers、MaxSpareServers来使得Apache不需要一直忙于作无用功。 最后,强烈推荐MaxRequestsPerChild不要设置为0,设置为非0,可以保护Apache进程免遭内存泄漏的影响,因为你不知道运行在Apache上的应用程式在什么时候会出错导致内存泄漏。 设置完之后大致是这样的: ServerLimit 1000 StartServers 30 MinSpareServers 30 MaxSpareServers 45 MaxClients 1000 MaxRequestsPerChild 4000 -----------------------------------------------------------------------------------分割线------------------------------------------------------------------- apache高负载性能调优2011-09-13 21:03:05 分类:LINUX 先阅读apache配置优化建议如下,再对相关参数进行调整,观察服务器状况. Apache配置优化建议: 进入/usr/local/apache2/conf/extra 目录下 Apache优化, 经过上述操作后,Apache已经能够正常运行。但是,对于访问量稍大的站点,Apache的这些默认配置是无法满足需求的,我们仍需调整Apache的一些参数,使Apache能够在大访问量环境下发挥出更好的性能。以下我们对Apache配置文件httpd.conf中对性能影响较大的参数进行一些说明。 (1) Timeout 该参数指定Apache在接收请求或发送所请求内容之前的最长等待时间(秒),若超过该时间Apache则放弃处理该请求,并释放连接。该参数默认值为120,推荐设置为60,对于访问量较大的网站可以设置为30或15。 (2) KeepAlive 该参数控制Apache是否允许在一个连接中有多个请求,默认打开。但对于大多数论坛类型站点来说,通常设置为off以关闭该支持。 (3) MPM - prefork.c 在默认情况下Apache使用Prefork(进程)工作模式,可以说这部分的参数设置是对Apache性能影响的核心和关键。用户可以在配置文档中找到以下配置段: StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 15 MaxRequestsPerChild0 这就是控制Apache进程工作的配置段,为了更好的理解上述配置中的各项参数,下面让我们先了解一下Apache是如何控制进程工作的。我们知道,在Unix系统中,很多服务(Service)的守护进程(Daemon)在启动时会创建一个进程以准备应答可能的连接请求,服务即进入了端口监听状态,当一个来自客户端(Client)的请求被发送至服务所监听的端口时,该服务进程即会处理该请求,在处理过程中,该进程处于独占状态,也就是说如果此时有其他请求到达,这些请求只能“排队”等待当前请求处理完成且服务进程释放。这样就会导致越来越多的请求处于队列等待状态,实际表现就是该服务处理能力非常低下。Apache使用Prefork模式很好的解决了这一问题。下面我们来看看Apache实际上是如何高效率工作的。 当Apache启动时,Apache会启动StartSpareServers个空闲进程同时准备接收处理请求,当多个请求到来时,StarSpareServers进行会越来越少,当空闲进程减少到MinSpareServers个时,Apache为了能够继续有充裕的进程处理请求,它会再启动StartsServers个进程备用,这样就大大减少了请求队列等待的可能,使得服务效率提高,这也是为什么叫做Pre-fork的原因;让我们继续跟踪Apache的工作,我们假设Apache已经启动了200个进程来处理请求,理论上来说,此时Apache一共有205个进程,而过了一段时间,假设有100个请求都得到了Apache的响应和处理,那么此时这100个进程就被释放成为空闲进程,那么此时Apache有105个空闲进程。而对于服务而言,启动太多的空闲进程时没有任何意义的,反而会降低服务器的整体性能,那么Apache真的会有105个空闲进程么?当然不会!实际上Apache随时在检查自己,当发现有超过MaxSpareServers个空闲进程时,则会自动停止关闭一些进程,以保证空闲进程不过过多。说到这里,用户应该对Apache的工作方式有了一定的了解,如果想获得更多更详细的说明请参阅Apache手册文档。 我们还有两个参数没有介绍:MaxClients和MaxRequestPerchild;MaxClients指定Apache在同一时间内最多允许有多少客户端能够与其连接,如果超过MaxClients个连接,客户端将会得到一个“服务器繁忙”的错误页面。我们看到默认情况下MaxClients设置为15,这对一些中型站点和大型站点显然是远远不够的!也许您需要同时允许512个客户端连接才能满足应用需求,好吧,那么就让我们把MaxClients修改为512,保存httpd.conf并退出,重启Apache,很遗憾,在重启过程当中您看到了一些错误提示,Apache重启失败。错误提示中告诉您MaxClients最大只能设定为256,相信您一定很失望。不过不要沮丧,Apache作为世界一流的Web Server一定不会如此单薄的!在默认情况下,MaxClients的确只能设定为不超过256的整数,但是,如果您有需要完全可以随意定制,此时就需要使用ServerLimit参数来配合使用,简单的说ServerLimit就像是水桶,而MaxClients就像是水,您可以通过更换更大的水桶(将ServerLimit设定为一个较大值)来容纳更多的水(MaxClients),但要注意,MaxClients的设定数值是不能大于ServerLimit的设定数值的! 注:MaxClents < ServerLimit 下面让我们了解一下MaxRequestPerChild参数,该参数指定一个连接进程中可以有多少个线程同时工作。也许这样解释过于专业,那么您只要想想“网络蚂蚁”、“网际快车FlashGet”中的“多点同时下载”即可,该参数实际上就是限制最多可以用几个“点”。默认设置为0,即为:不限制。但需要注意,如果将该值设置的过小会引起访问问题,如果没有特殊需要或者访问量压力并非很大可以保持默认值,如果访问量很大则推荐设置为2048。 好了,解释了这么多,让我们看看经过修改后Perfork.c配置段的推荐配置: StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 1024 MaxClients 768 MaxRequestsPerChild0 完成了上述对Apache的调整,Apache已经获得了较大的性能改善。 有关apache性能优化 高并发借鉴相关知识点网址: 25个apache性能优化技巧: http://wenku.baidu.com/link?url=QS_bRiFc-MJ5h0ZQSWhJ2vc7oEH_H667Nsx-43XPqAtdGrKWQGzbIUSs55ricEazYvr-gn3mka1a17w9iQ-TEx2pu1ud2Laf14KpbVNAtRy apache负载调优: http://blog.chinaunix.net/uid-22120556-id-2827648.html apache性能优化: http://sookk8.blog.51cto.com/455855/275759/

优秀的个人博客,低调大师

CentOS充下负载监控常用指令

1. load 查看:top | grep load、uptime命令可以查看 说明:表示过去一段时间,平均有多少核心在计算,超过计算机核数表示负债比较大,达到2倍表示要宕机了,三个值分别是1分钟,5分钟,10分钟内 2. cpu利用率 查看:top | grep Cpu,按住SHIFT+H根据进程查看, top -p 进程号查看进程的情况 说明:用户时间(User Time)、系统时间(System Time)、Nice时间(Nice Time,系统调整进程优先级的时候花费的时间)、空闲时间(Idle Time)、等待时间(Waiting Time,等待IO的时间)、硬件中断处理时间(Hard Irq Time)、软件中断处理时间(Soft Irq TIme)、丢失时间(Steal Time) 其他: vmstat、 mpstat 说明: 1.对于每一个CPU来说运行队列不要超过3,例如,如果是双核CPU就不要超过6; 2.如果CPU在满负荷运行,应该符合下列分布, a) User Time:65%~70% b) System Time:30%~35% c) Idle:0%~5% 3. 磁盘剩余空间 查看:df -h 说明:第二行表示总硬盘的使用量为25% 查看:du -d 1 -h /home/tomcat,-d表示深度,-h格式化输出文件大小 4. 网络traffic 查看:sar -n DEV 1 1,-n表示汇报网络情况,DEV表示查看全部网卡,1表示每秒抽样一次,1表示总抽样一次 说明:rxpcks/s每秒接收的数据包量、txpcks/s每秒发出的数据包量、rxKB/s每秒接收的字节数、txKB/s每秒发送的字节数、rxcmp/s每秒收到的压缩包的数量、txcmp/s表示每秒发送的压缩包数量、rxmcst/s每秒收到广播包数量、平均时间表示多次取样的数量 5. 磁盘I/O 查看:iostat -d -k ,-d表示查看磁盘使用情况,-k表示以kb为单位显示 说明:Device设备名称,tps每秒处理的IO次数,kB_read/s每秒从设备读取的数据量,kB_wrtn/s每秒从设备写的数据量,kB_read读取的数据总量,kB_wrtn写入的数据总量 6. 内存使用情况 查看:free -m 说明:total内存总共大小,used已使用内存大小,free可使用内存大小,shared多个线程共享的内存空间大小,buff/cache缓冲区的大小,available缓存的大小 查看:vmstat 查看swapIO的情况,swapIO比较大会严重影响系统的性能 说明:si磁盘交换到内存的数量量,单位kb/s,so内存交换到磁盘的数据量,单位kb/s

优秀的个人博客,低调大师

CentOS下内存查看工具—Smem

物理内存不足对Linux桌面系统和服务器系统的性能影响都很大。当你的计算机变慢时,要做的第一件事就是释放内存。尤其是在多用户环境以及执行关键任务的服务器环境下,内存消耗会变得更加关键,因为多个用户和应用线程会同时竞争更多的内存空间。 如果要监测系统内各种资源的使用情况(比如说CPU或内存),图形化显示是一种高效的方法,通过图形界面可以快速分析各用户和进程的资源消耗情况。在linux下图形化分析内存使用情况的方法,使用到命令行工具是smem. 物理内存使用情况: RSS、PSS和USS 由于Linux使用到了虚拟内存(virtual memory),因此要准确的计算一个进程实际使用的物理内存就不是那么简单。 只知道进程的虚拟内存大小也并没有太大的用处,因为还是无法获取到实际分配的物理内存大小。 ·RSS(Residentset size),使用top命令可以查询到,是最常用的内存指标,表示进程占用的物理内存大小。但是,将各进程的RSS值相加,通常会超出整个系统的内存消耗,这是因为RSS中包含了各进程间共享的内存。 ·PSS(Proportionalset size)会更准确一些,它将共享内存的大小进行平均后,再分摊到各进程上去。 ·USS(Unique set size )是PSS中自己的部分,它只计算了进程独自占用的内存大小,不包含任何共享的部分。 常用参数 $ smem 默认情况下,如果不带参数,将显示所有进程的内存使用情况,而且是一次显示,不是动态显示。 $ smem -m 显示每个库使用内存的情况 $ smem -p | grepfirefox 按百分比显示使用情况 $ smem -u -p 按用户统计使用情况 图形结果 如果你使用的图形界面,还可以生成图形结果 圆饼图 smem --pie name -s uss 柱状图 smem --bar pid -c “pss uss rss”

优秀的个人博客,低调大师

centos中安装mysql详细步骤说明

1、安装依赖 [root@node001 ~]#yum install -y perl Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile base | 3.7 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 Setting up Install Process Package 4:perl-5.10.1-144.el6.x86_64 already installed and latest version Nothing to do 2、卸载旧版本的mysql及插件 [root@node001 ~]#rpm -qa | grep mysql mysql-5.1.73-8.el6_8.x86_64 mysql-libs-5.1.73-8.el6_8.x86_64 mysql-server-5.1.73-8.el6_8.x86_64 [root@node001 ~]#rpm -e mysql-5.1.73-8.el6_8.x86_64 --nodeps [root@node001 ~]#rpm -e mysql-libs-5.1.73-8.el6_8.x86_64--nodeps [root@node001 ~]#rpm -e mysql-server-5.1.73-8.el6_8.x86_64--nodeps (--nodeps:忽略其他依赖,直接卸载) 3、 安装rpm(4个) 安装包 [root@node001 ~]#tar zxvf mysql.tar.gz MySQL-client-5.6.28-1.el6.x86_64.rpm MySQL-devel-5.6.28-1.el6.x86_64.rpm MySQL-server-5.6.28-1.el6.x86_64.rpm numactl-2.0.9-2.el6.x86_64.rpm [root@node001 ~]#rpm -ivh MySQL-client-5.6.28-1.el6.x86_64.rpm warning: MySQL-client-5.6.28-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ########################################### [100%] 1:MySQL-client ########################################### [100%] [root@node001 ~]#rpm -ivh MySQL-devel-5.6.28-1.el6.x86_64.rpm warning: MySQL-devel-5.6.28-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ########################################### [100%] 1:MySQL-devel ########################################### [100%] [root@node001 ~]#rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm Preparing... ########################################### [100%] 1:numactl ########################################### [100%] [root@node001 ~]#rpm -ivh MySQL-server-5.6.28-1.el6.x86_64.rpm warning: MySQL-server-5.6.28-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ########################################### [100%] 1:MySQL-server ########################################### [100%] 2017-12-24 05:39:08 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestam p server option (see documentation for more details).2017-12-24 05:39:08 0 [Note] /usr/sbin/mysqld (mysqld 5.6.28) starting as process 1287 ... 2017-12-24 05:39:08 1287 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-12-24 05:39:08 1287 [Note] InnoDB: The InnoDB memory heap is disabled 2017-12-24 05:39:08 1287 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-12-24 05:39:08 1287 [Note] InnoDB: Memory barrier is not used 2017-12-24 05:39:08 1287 [Note] InnoDB: Compressed tables use zlib 1.2.3 2017-12-24 05:39:08 1287 [Note] InnoDB: Using Linux native AIO 2017-12-24 05:39:08 1287 [Note] InnoDB: Using CPU crc32 instructions 2017-12-24 05:39:08 1287 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2017-12-24 05:39:08 1287 [Note] InnoDB: Completed initialization of buffer pool 2017-12-24 05:39:08 1287 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created! 2017-12-24 05:39:08 1287 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB 2017-12-24 05:39:08 1287 [Note] InnoDB: Database physically writes the file full: wait... 2017-12-24 05:39:09 1287 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB 2017-12-24 05:39:10 1287 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB 2017-12-24 05:39:11 1287 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 2017-12-24 05:39:11 1287 [Warning] InnoDB: New log files created, LSN=45781 2017-12-24 05:39:11 1287 [Note] InnoDB: Doublewrite buffer not found: creating new 2017-12-24 05:39:11 1287 [Note] InnoDB: Doublewrite buffer created 2017-12-24 05:39:11 1287 [Note] InnoDB: 128 rollback segment(s) are active. 2017-12-24 05:39:11 1287 [Warning] InnoDB: Creating foreign key constraint system tables. 2017-12-24 05:39:11 1287 [Note] InnoDB: Foreign key constraint system tables created 2017-12-24 05:39:11 1287 [Note] InnoDB: Creating tablespace and datafile system tables. 2017-12-24 05:39:11 1287 [Note] InnoDB: Tablespace and datafile system tables created. 2017-12-24 05:39:11 1287 [Note] InnoDB: Waiting for purge to start 2017-12-24 05:39:11 1287 [Note] InnoDB: 5.6.28 started; log sequence number 0 A random root password has been set. You will find it in '/root/.mysql_secret'. 2017-12-24 05:39:11 1287 [Note] Binlog end 2017-12-24 05:39:11 1287 [Note] InnoDB: FTS optimize thread exiting. 2017-12-24 05:39:11 1287 [Note] InnoDB: Starting shutdown... 2017-12-24 05:39:13 1287 [Note] InnoDB: Shutdown completed; log sequence number 1625977 2017-12-24 05:39:13 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestam p server option (see documentation for more details).2017-12-24 05:39:13 0 [Note] /usr/sbin/mysqld (mysqld 5.6.28) starting as process 1309 ... 2017-12-24 05:39:13 1309 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-12-24 05:39:13 1309 [Note] InnoDB: The InnoDB memory heap is disabled 2017-12-24 05:39:13 1309 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-12-24 05:39:13 1309 [Note] InnoDB: Memory barrier is not used 2017-12-24 05:39:13 1309 [Note] InnoDB: Compressed tables use zlib 1.2.3 2017-12-24 05:39:13 1309 [Note] InnoDB: Using Linux native AIO 2017-12-24 05:39:13 1309 [Note] InnoDB: Using CPU crc32 instructions 2017-12-24 05:39:13 1309 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2017-12-24 05:39:13 1309 [Note] InnoDB: Completed initialization of buffer pool 2017-12-24 05:39:13 1309 [Note] InnoDB: Highest supported file format is Barracuda. 2017-12-24 05:39:13 1309 [Note] InnoDB: 128 rollback segment(s) are active. 2017-12-24 05:39:13 1309 [Note] InnoDB: Waiting for purge to start 2017-12-24 05:39:13 1309 [Note] InnoDB: 5.6.28 started; log sequence number 1625977 2017-12-24 05:39:13 1309 [Note] Binlog end 2017-12-24 05:39:13 1309 [Note] InnoDB: FTS optimize thread exiting. 2017-12-24 05:39:13 1309 [Note] InnoDB: Starting shutdown... 2017-12-24 05:39:15 1309 [Note] InnoDB: Shutdown completed; log sequence number 1625987 A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER ! You will find that password in '/root/.mysql_secret'. You must change that password on your first connect, no other statement but 'SET PASSWORD' will be accepted. See the manual for the semantics of the 'password expired' flag. Also, the account for the anonymous user has been removed. In addition, you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test database. This is strongly recommended for production servers. See the manual for more instructions. Please report any problems at http://bugs.mysql.com/ The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at http://shop.mysql.com New default config file was created as /usr/my.cnf and will be used by default by the server when you start it. You may edit this file to change server settings 4、上传mysql配置文件my.cnf [root@node001 ~]#cd /etc 上传文件 [root@node001 etc]#ls /etc/my.cnf /etc/my.cnf 5、初始化 [root@node001 etc]#/usr/bin/mysql_install_db Installing MySQL system tables...2017-12-24 05:41:57 0 [Note] /usr/sbin/mysqld (mysqld 5.6.28-log) starting as process 1353 ... 2017-12-24 05:41:57 1353 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-12-24 05:41:57 1353 [Note] InnoDB: The InnoDB memory heap is disabled 2017-12-24 05:41:57 1353 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-12-24 05:41:57 1353 [Note] InnoDB: Memory barrier is not used 2017-12-24 05:41:57 1353 [Note] InnoDB: Compressed tables use zlib 1.2.3 2017-12-24 05:41:57 1353 [Note] InnoDB: Using Linux native AIO 2017-12-24 05:41:57 1353 [Note] InnoDB: Using CPU crc32 instructions 2017-12-24 05:41:57 1353 [Note] InnoDB: Initializing buffer pool, size = 64.0M 2017-12-24 05:41:57 1353 [Note] InnoDB: Completed initialization of buffer pool 2017-12-24 05:41:57 1353 [Note] InnoDB: Highest supported file format is Barracuda. 2017-12-24 05:41:57 1353 [Warning] InnoDB: Resizing redo log from 2*3072 to 3*2048 pages, LSN=1625987 2017-12-24 05:41:57 1353 [Warning] InnoDB: Starting to delete and rewrite log files. 2017-12-24 05:41:57 1353 [Note] InnoDB: Setting log file ./ib_logfile101 size to 32 MB 2017-12-24 05:41:58 1353 [Note] InnoDB: Setting log file ./ib_logfile1 size to 32 MB 2017-12-24 05:41:58 1353 [Note] InnoDB: Setting log file ./ib_logfile2 size to 32 MB 2017-12-24 05:41:58 1353 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 2017-12-24 05:41:58 1353 [Warning] InnoDB: New log files created, LSN=1625987 2017-12-24 05:41:58 1353 [Note] InnoDB: 128 rollback segment(s) are active. 2017-12-24 05:41:58 1353 [Note] InnoDB: Waiting for purge to start 2017-12-24 05:41:58 1353 [Note] InnoDB: 5.6.28 started; log sequence number 1625987 2017-12-24 05:41:59 1353 [Note] Binlog end 2017-12-24 05:41:59 1353 [Note] InnoDB: FTS optimize thread exiting. 2017-12-24 05:41:59 1353 [Note] InnoDB: Starting shutdown... 2017-12-24 05:42:00 1353 [Note] InnoDB: Shutdown completed; log sequence number 1626134 OK Filling help tables...2017-12-24 05:42:00 0 [Note] /usr/sbin/mysqld (mysqld 5.6.28-log) starting as process 1376 ... 2017-12-24 05:42:00 1376 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-12-24 05:42:00 1376 [Note] InnoDB: The InnoDB memory heap is disabled 2017-12-24 05:42:00 1376 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-12-24 05:42:00 1376 [Note] InnoDB: Memory barrier is not used 2017-12-24 05:42:00 1376 [Note] InnoDB: Compressed tables use zlib 1.2.3 2017-12-24 05:42:00 1376 [Note] InnoDB: Using Linux native AIO 2017-12-24 05:42:00 1376 [Note] InnoDB: Using CPU crc32 instructions 2017-12-24 05:42:00 1376 [Note] InnoDB: Initializing buffer pool, size = 64.0M 2017-12-24 05:42:00 1376 [Note] InnoDB: Completed initialization of buffer pool 2017-12-24 05:42:00 1376 [Note] InnoDB: Highest supported file format is Barracuda. 2017-12-24 05:42:00 1376 [Note] InnoDB: 128 rollback segment(s) are active. 2017-12-24 05:42:00 1376 [Note] InnoDB: Waiting for purge to start 2017-12-24 05:42:00 1376 [Note] InnoDB: 5.6.28 started; log sequence number 1626134 2017-12-24 05:42:01 1376 [Note] Binlog end 2017-12-24 05:42:01 1376 [Note] InnoDB: FTS optimize thread exiting. 2017-12-24 05:42:01 1376 [Note] InnoDB: Starting shutdown... 2017-12-24 05:42:02 1376 [Note] InnoDB: Shutdown completed; log sequence number 1626144 OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h 192.168.178.161 password 'new-password' Alternatively you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd mysql-test ; perl mysql-test-run.pl Please report any problems at http://bugs.mysql.com/ The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at http://shop.mysql.com WARNING: Found existing config file /usr/my.cnf on the system. Because this file might be in use, it was not replaced, but was used in bootstrap (unless you used --defaults-file) and when you later start the server. The new default config file was created as /usr/my-new.cnf, please compare it with your file and take the changes you need. WARNING: Default config file /etc/my.cnf exists on the system This file will be read by default by the MySQL server If you do not want to use this, either remove it, or use the --defaults-file argument to mysqld_safe when starting the server 6、 启动mysql [root@node001 etc]#service mysql start Starting MySQL....... SUCCESS! 7、重置密码 查看初始化密码 [root@node001 etc]#cat /root/.mysql_secret # The random password set for the root user at Sun Dec 24 05:39:11 2017 (local time):DMBe85LznCxRo16N [root@node001 etc]#mysql -u root -pDMBe85LznCxRo16N Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.28-log Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>set password=password('mysql'); Query OK, 0 rows affected (0.00 sec) mysql>show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.00 sec) 8、远程授权 原因:默认远程无法连接 授权命令: mysql>grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option; Query OK, 0 rows affected (0.00 sec) mysql>flush privileges; Query OK, 0 rows affected (0.01 sec)

优秀的个人博客,低调大师

CentOS6.5上golang环境配置

一、下载和解压go环境包 cd /usr/local/src/ wget -c --no-check-certificate https://golangtc.com/static/go/1.7.6/go1.7.6.linux-amd64.tar.gz tar zxvf go1.7.6.linux-amd64.tar.gz -C /usr/local 二、设置系统环境变量 vi /etc/profile export GOPATH=/usr/local/go/ export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN 三、 编译,使其生效 source /etc/profile 四、验证,查看是否配置成功 go version

优秀的个人博客,低调大师

centos7安装配置memcached

1.memcached的安装 yum install memcached memcached -h vim /etc/sysconfig/memcached PORT=”11211″ USER=”memcached” MAXCONN=”1024″ CACHESIZE=”64″ OPTIONS=”" systemctl restart memcached systemctl start memcached systemctl enable memcached systemctl status memcached systemctl stop memcached memcached-tool 127.0.0.1:11211 stats memcached-tool 127.0.0.1:11211 # Item_Size Max_age Pages Count Full? Evicted Evict_Time OOM 2 120B 727s 1 7 yes 0 0 0 4 192B 7243s 1 3 yes 0 0 0 5 240B 72693s 1 14 yes 0 0 0 9 600B 0s 1 0 yes 0 0 0 10 752B 79s 1 1 yes 0 0 0 # slab class编号 Item_Size chunk大小 Max_age LUR内最旧的记录生存时间 Pages 分配给slab的页数 Count slab内的记录数 Full? slab内是否含有空闲chunk 2./etc/php.d/memcache.ini详解 ; ----- Enable memcache extension module extension=memcache.so ; ----- Options for the memcache module ; see http://www.php.net/manual/en/memcache.ini.php ; Whether to transparently failover to other servers on errors ;memcache.allow_failover=1 (连接出错时Memcache扩展是否故障转移到其他服务器上默认为1) ; Data will be transferred in chunks of this size ;memcache.chunk_size=32768 (控制数据传输的大小) ; Autocompress large data ;memcache.compress_threshold=20000 ; The default TCP port number to use when connecting to the memcached server ;memcache.default_port=11211 (设置连接Memcache所使用的TCP端口) ; Hash function {crc32, fnv} ;memcache.hash_function=crc32 ; Hash strategy {standard, consistent} ;memcache.hash_strategy=consistent (哈希策略) ; Defines how many servers to try when setting and getting data. ;memcache.max_failover_attempts=20 (限制连接到持久性数据或检索数据的服务器数目) ; The protocol {ascii, binary} : You need a memcached >= 1.3.0 to use the binary protocol ; The binary protocol results in less traffic and is more efficient ;memcache.protocol=ascii ; Redundancy : When enabled the client sends requests to N servers in parallel ;memcache.redundancy=1 ;memcache.session_redundancy=2 ; Lock Timeout ;memcache.lock_timeout = 15 ; ----- Options to use the memcache session handler ; RPM note : save_handler and save_path are defined ; for mod_php, in /etc/httpd/conf.d/php.conf ; for php-fpm, in /etc/php-fpm.d/*conf ; Use memcache as a session handler ;session.save_handler=memcache ; Defines a comma separated of server urls to use for session storage;session.save_path="tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15" 2.php操作memcache的使用测试 2.1创建KEY值数据 vi test1.php <?php $mem = new memcache; $mem->connect("127.0.0.1", 11211); $mem->set('key20', 'This is a test!', 0, 60); $val = $mem->get('key20'); echo $val; ?> 2.2替换KEY值数据 vi test2.php <?php $mem = new memcache; $mem->connect("127.0.0.1", 11211); $mem->replace('key20', 'This is replace value', 0, 60); $val = $mem->get('key20'); echo $val; ?> 2.3删除KEY值数据 vi test3.php <?php $mem = new memcache; $mem->connect("127.0.0.1", 11211); $mem->delete('key20'); $val = $mem->get('key20'); echo $val; ?> php -f test1.php(执行php -h看帮助) 命令帮助: Memcache::add // 添加一个值,如果已经存在,则返回false Memcache::addServer // 添加Memcache地址 Memcache::close // 关闭一个Memcache的连接 Memcache::connect // 打开一个到Memcache的连接 Memcache::decrement // 对保存的某个key中的值进行减法操作 Memcache::delete // 删除一个Memcache上的key值 Memcache::flush // 刷新所有Memcache上保存的项目(类似于删除所有的保存的项目) Memcache::get // 从Memcache上获取一个key值 Memcache::getExtendedStats // 获取进程池中所有进程的运行系统统计 Memcache::getServerStatus // 获取运行服务器的参数 Memcache::getStats //获取当前Memcache服务器运行的状态 Memcache::getVersion // 返回运行的Memcache的版本信息 Memcache::increment // 对保存的某个key中的值进行加法操作 Memcache::pconnect // 打开一个到Memcache的长连接 Memcache::replace // 替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set) Memcache::set // 向Memcache添加一个值,如果已经存在,则覆写 Memcache::setCompressThreshold // 对大于某一大小的数据进行压缩 Memcache::setServerParams // 在运行时修改服务器的参数 2.查看memcached性能状态 2.1查看服务器性能信息 #telnet localhost 11211 stats(此处输入stats命令) STAT pid 1277 (进程ID) STAT uptime 176145 (服务器运行秒数,秒) STAT time 1448592684 (服务器当前unix时间戳) STAT version 1.4.15 (服务器版本) STAT libevent 2.0.21-stable STAT pointer_size 64 (操作系统字大小 32/64位) STAT rusage_user 3.869494 (进程累计用户时间,秒) STAT rusage_system 4.636292 (进程累计系统时间,秒) STAT curr_connections 11 (当前打开连接数) STAT total_connections 21 (曾打开的连接总数) STAT connection_structures 12 (服务器分配的连接结构数) STAT reserved_fds 20 STAT cmd_get 483 (执行get命令总数) STAT cmd_set 144 (执行set命令总数) STAT cmd_flush 0 (指向flush_all命令总数) STAT cmd_touch 0 STAT get_hits 369 (get未命中次数) STAT get_misses 114 (get未命中次数) STAT delete_misses 0 (delete未命中次数) STAT delete_hits 0 (delete命中次数) STAT incr_misses 0 (incr未命中次数) STAT incr_hits 0 (incr命中次数) STAT decr_misses 0 (decr未命中次数) STAT decr_hits 0 (decr命中次数) STAT cas_misses 0 (cas未命中次数) STAT cas_hits 0 (cas命中次数) STAT cas_badval 0 (使用擦拭次数) STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 82819 (读取字节总数) STAT bytes_written 104266 (写入字节总数) STAT limit_maxbytes 67108864 (分配的内存数(字节)) STAT accepting_conns 1 (目前接受的连接数) STAT listen_disabled_num 0 STAT threads 4 (线程数) STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 524288 STAT hash_is_expanding 0 STAT bytes 4789 (存储item字节数) STAT curr_items 20 (item个数) STAT total_items 144 (item总数) STAT expired_unfetched 15 STAT evicted_unfetched 0 STAT evictions 0 (获取空间删除item的总数) STAT reclaimed 36 END quit(此处输入quit退出memcached状态查看) 2.2查看每个slab中存储items的详细信息 #telnet localhost 11211 stats items(此处输入stats命令) STAT items:4:number 3 STAT items:4:age 2140(当前数据中缓存最久的时间,一般小于evicted_time(不为0)时间) STAT items:4:evicted 0(如果evicted不是0,说明slab开始提前剔除数据,需要注意) STAT items:4:evicted_nonzero 0 STAT items:4:evicted_time 0(最后被剔除数据的缓存时间,不是发生LRU就memcached负载过量) STAT items:4:outofmemory 0 STAT items:4:tailrepairs 0 STAT items:4:reclaimed 6 STAT items:4:expired_unfetched 1 STAT items:4:evicted_unfetched 0 STAT items:5:number 15 STAT items:5:age 67590 STAT items:5:evicted 0 STAT items:5:evicted_nonzero 0 STAT items:5:evicted_time 0 STAT items:5:outofmemory 0 STAT items:5:tailrepairs 0 STAT items:5:reclaimed 22 STAT items:5:expired_unfetched 10 STAT items:5:evicted_unfetched 0 STAT items:10:number 1 STAT items:10:age 283 STAT items:10:evicted 0 STAT items:10:evicted_nonzero 0 STAT items:10:evicted_time 0 STAT items:10:outofmemory 0 STAT items:10:tailrepairs 0 STAT items:10:reclaimed 13 STAT items:10:expired_unfetched 7 STAT items:10:evicted_unfetched 0 END 2.3查看slab内存分配信息 #telnet localhost 11211 stats slabs(此处输入stats命令) STAT 4:chunk_size 192 (当前slab每个chunk的大小,固定值) STAT 4:chunks_per_page 5461(每个page能够存放的chunk数,固定值) STAT 4:total_pages 1 (分配给当前slab的page总数,单位M。slab剔除严重,该值会太少) STAT 4:total_chunks 5461 (当前slab最多能够存放的chunk数,=chunks_per_page*total_pages) STAT 4:used_chunks 3 (已经被占用的chunks总数) STAT 4:free_chunks 5458 (过期数据空出的chunk里还没有被使用的chunk数) STAT 4:free_chunks_end 0 (新分配但还没有被使用的chunk数) STAT 4:mem_requested 555 STAT 4:get_hits 136 STAT 4:cmd_set 9 STAT 4:delete_hits 0 STAT 4:incr_hits 0 STAT 4:decr_hits 0 STAT 4:cas_hits 0 STAT 4:cas_badval 0 STAT 4:touch_hits 0 STAT 5:chunk_size 240 STAT 5:chunks_per_page 4369 STAT 5:total_pages 1 STAT 5:total_chunks 4369 STAT 5:used_chunks 14 STAT 5:free_chunks 4355 STAT 5:free_chunks_end 0 STAT 5:mem_requested 3158 STAT 5:get_hits 158 STAT 5:cmd_set 43 STAT 5:delete_hits 0 STAT 5:incr_hits 0 STAT 5:decr_hits 0 STAT 5:cas_hits 0 STAT 5:cas_badval 0 STAT 5:touch_hits 0 STAT 10:chunk_size 752 STAT 10:chunks_per_page 1394 STAT 10:total_pages 1 STAT 10:total_chunks 1394 STAT 10:used_chunks 1 STAT 10:free_chunks 1393 STAT 10:free_chunks_end 0 STAT 10:mem_requested 646 STAT 10:get_hits 104 STAT 10:cmd_set 105 STAT 10:delete_hits 0 STAT 10:incr_hits 0 STAT 10:decr_hits 0 STAT 10:cas_hits 0 STAT 10:cas_badval 0 STAT 10:touch_hits 0 STAT active_slabs 3 STAT total_malloced 3145360 END 报错1:执行memcached -vv报错can't run as root without the -u switch 解决1:memcached -vv -u root 3.增加memcache缓存日志 yum -y install php-pecl-memcache 如果是PHP56版本的应该运行 yum -y install php56w-pecl-memcache 防火墙放开11211 firewall-cmd --permanent --zone=public --add-port=11211/tcp 检查端口是否开放 echo stats | nc memcache_host_name_or_ip 11211 增加日志 /bin/memcached -d -m 512 -l 127.0.0.1 -p 10000 -u root -vv >> /tmp/memcached.log 2>&1 tail -f /tmp/memcached.log 4.memcache缓存mysql的测试页面 vi mysql-memcache.php <?php $host = 'IP:3306'; $user = 'guowang'; $passwd = '123456'; $db = 'test'; $conn = mysql_connect($host,$user,$passwd); mysql_select_db($db,$conn); $sql = 'select * from t order by id desc'; $result = mysql_query($sql,$conn); while ($row = mysql_fetch_array($result,MYSQL_ASSOC)){ $test_key[] = $row; } $sql = md5($sql); $mem = new Memcache; $mem->connect("IP", 11211); $mem->set($sql,$test_key, MEMCACHE_COMPRESSED, 600); print_r($mem->get($sql)); ?> 5.memcached禁止外网访问 lnmp默认安装的memcached是可以外网访问的,对于我这个小站来说外网不会用到,所以只允许内网用。修改文件vi /etc/init.d/memcached PORT=11211 USER=root MAXCONN=1024 CACHESIZE=32 OPTIONS="" IP=127.0.0.1 RETVAL=0 prog="memcached" start () { echo -n $"Starting $prog: " memcached -d -l $IP -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /var/run/memcached.pid $OPTIONS RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached } 如果有安装iptables的话可以用iptables来禁止外网访问 本文转自 guowang327 51CTO博客,原文链接:http://blog.51cto.com/guowang327/1709503,如需转载请自行联系原作者

优秀的个人博客,低调大师

CentOS修改主机名永久生效

查看主机命令: [root@linux_epm2 ~]# hostname localhost.localdomain localhost.localdomain即为默认的主机名。 修改network文件: 用root用户登录,如果不是root用户,使用su命令切换为root用户: [guoky@linux_epm2 root]$ su Password: [root@linux_epm2 ~]# 然后修改/etc/sysconfig下的network文件: [root@linux_epm2 ~]# cd /etc/sysconfig [root@linux_epm2 sysconfig]# vi network NETWORKING=yes HOSTNAME= localhost.localdomain 修改前: 修改后: 修改hosts文件: 修改/etc下的hosts文件: [root@linux_epm2 sysconfig]# cd /etc [root@linux_epm2 etc]# vi hosts 127.0.0.1localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1localhost localhost.localdomain localhost6 localhost6.localdomain6 修改前: 修改后: reboot重启: 命令: [root@linux_epm2 etc]# reboot 查看效果: 重启之后重新查看主机名: [root@linux_epm2 ~]# hostname linux_epm2.1

优秀的个人博客,低调大师

CentOS7安装和配置FTP

1. 安装vsftpd #安装vsftpd yum install -y vsftpd #设置开机启动 systemctl enable vsftpd.service # 重启 service vsftpd restart # 查看vsftpd服务的状态 systemctl status vsftpd.service 2. 配置vsftpd.conf #备份配置文件 cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak #执行以下命令 sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf' sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" '/etc/vsftpd/vsftpd.conf' sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g" '/etc/vsftpd/vsftpd.conf' sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf' sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" '/etc/vsftpd/vsftpd.conf' sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" '/etc/vsftpd/vsftpd.conf' sed -i "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" '/etc/vsftpd/vsftpd.conf' sed -i "s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTP service./g" '/etc/vsftpd/vsftpd.conf' #添加下列内容到vsftpd.conf末尾 use_localtime=YES listen_port=21 chroot_local_user=YES idle_session_timeout=300 guest_enable=YES guest_username=vsftpd user_config_dir=/etc/vsftpd/vconf data_connection_timeout=1 virtual_use_local_privs=YES pasv_min_port=10060 pasv_max_port=10090 accept_timeout=5 connect_timeout=1 3. 建立用户文件 #第一行用户名,第二行密码,不能使用root为用户名 vi /etc/vsftpd/virtusers chris 123456 chang 123456 4. 生成用户数据文件 db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db #设定PAM验证文件,并指定对虚拟用户数据库文件进行读取 chmod 600 /etc/vsftpd/virtusers.db 5. 修改/etc/pam.d/vsftpd文件 # 修改前先备份 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak # 将auth及account的所有配置行均注释掉 vi /etc/pam.d/vsftpd auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers # 如果系统为32位,上面改为lib 6. 新建系统用户vsftpd,用户目录为/home/vsftpd #用户登录终端设为/bin/false(即:使之不能登录系统) useradd vsftpd -d /home/vsftpd -s /bin/false chown -R vsftpd:vsftpd /home/vsftpd 7.建立虚拟用户个人配置文件 mkdir /etc/vsftpd/vconf cd /etc/vsftpd/vconf #这里建立两个虚拟用户配合文件 touch chris chang #建立用户根目录 mkdir -p /home/vsftpd/chris/ #编辑chris用户配置文件,内容如下,其他用户类似 vi chris local_root=/home/vsftpd/chris/ write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES 8. 防火墙设置 vi /etc/sysconfig/iptables #编辑iptables文件,添加如下内容,开启21端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT 9. 重启vsftpd服务器 service vsftpd restart 10. 使用xftp等软件连接测试

优秀的个人博客,低调大师

centos7 防火墙 配置

1.查看Firewall 服务状态 systemctl status firewalld 2.查看Firewall 的状态 firewall-cmd --state 注意: firewalld默认配置文件有两个:/usr/lib/firewalld/(系统配置,尽量不要修改)和/etc/firewalld/(用户配置地址) [root@localhost ~]# vi /usr/lib/firewalld/services/ssh.xml 先把ssh的端口改下 防止不能远程操作了 3、开启、重启、关闭、firewalld.service服务 #开启 systemctl start firewalld.service #重启 systemctl restart firewalld.service #关闭 systemctl stop firewalld.service 4、查看防火墙规则 firewall-cmd --list-all 5、查询、开放、关闭端口 #查询端口是否开放 firewall-cmd --query-port=8080/tcp #开放80端口 firewall-cmd --permanent --add-port=80/tcp #移除端口 firewall-cmd --permanent --remove-port=8080/tcp #重启防火墙(修改配置后要重启防火墙) firewall-cmd --reload #参数解释 1、firwall-cmd:是Linux提供的操作firewall的一个工具; 2、--permanent:表示设置为持久; 3、--add-port:标识添加的端口; 6.限制只允许指定的ip可以访问(也可以做内网之间不限制,外网不能访问) 1 [root@localhost / ] # firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.16.255.113/32" port protocol="tcp" port="3306" accept" 7.移除这条策略 1 [root@localhost / ] # firewall-cmd --permanent --remove-rich-rule 'rule family=ipv4 source address=172.16.255.113/32 port port=3306 protocol=tcp accept' 8.开机禁用或者启用firewall 1 systemctl disable /enable firewalld.service

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册