- doris集群
warrah
岁月云——大数据杂烩doris
开发doris的团队厉害,这个百度工程师确实也干了一些实事,不像领导层只会跑火车。1参数配置1.1文件句柄数vim/etc/security/limits.conf*softnofile655350*hardnofile6553501.2关闭透明大页echonever>/sys/kernel/mm/transparent_hugepage/enabledechonever>/sys/kernel/
- /etc/security/limits.d/90-nproc.conf
一千二
linux命令
步骤解读:/etc/security/limits.d/90-nproc.conf与/etc/security/limits.conf都是系统用户资源配置文件/etc/security/limits.d/90-nproc.conf配置文件:[root@~]#cat/etc/security/limits.d/90-nproc.conf#Defaultlimitfornumberofuser'spr
- ElasticSearch中的JVM性能调优
java领域
springspringbootjava后端mysql
ElasticSearch6.3.2中的JVM性能调优前一段时间被人问了个问题:在使用ES的过程中有没有做过什么JVM调优措施?在我搭建ES集群过程中,参照important-settings官方文档来的,并没有对JVM参数做过多的调整。但谈到JVM配置参数,少不了操作系统层面上的一些配置参数,比如pagecache和文件描述符的个数:(/etc/security/limits.conf)。另外E
- Linux环境下ElasticSearch7.9.1安装
码小蛋
linuxelasticsearch服务器
通用配置步骤:一、编辑/etc/security/limits.conf,追加以下内容;*softnofile65536*hardnofile65536*softnproc5000*hardnproc5000此文件修改后需要重新登录用户,才会生效二、编辑/etc/sysctl.conf,追加以下内容:vm.max_map_count=655360保存后,执行:sysctl-p新建elasticse
- 程序默认栈空间大小
tadus_zeng
操作系统
linuxlinux下线程的默认栈大小是8M$ulimit-s8192#8*1024KB查看单个进程暂用堆栈的信息$strace-f-p{PID}临时改变栈空间的大小ulimit-s102400#改为100MBulimit-sunlimited#不限制永久修改栈空间大大小echo-ne"*softstack102400">>/etc/security/limits.conf或者$sudoecho'
- efk8.0.1部署
glnullops
运维运维
1.初始化系统1.1修改文件限制vi/etc/security/limits.conf*softnofile65536*hardnofile65536*softnproc4096*hardnproc40961.2调整虚拟内存最大并发连接vim/etc/sysctl.confvm.max_map_count=262144fs.file-max=655360vm.swappiness=0sysctl-
- 7 centos 查看程序文件数量_CentOS7修改单个进程可打开的最大文件句柄数
阳光泉
7centos查看程序文件数量
对于“linux修改单个进程可打开的最大文件句柄数”,在网上搜索了很多教程,基本都说得不全或者已经过时了,经过亲自试验,修改成功,现总结如下:1./etc/security/limits.conf中指定的nofile的值,nofile有上限,不是无穷大。nofile由内核参数nr_open定义的.“在2.6.25内核之前有个宏定义,定义了这个值的最大值,为1024*1024,正好是100万,而在2
- SpringBoot+Elasticsearch
weixin_34199405
大数据java数据库
前言1.1.集成方式SpringBoot中集成Elasticsearch有4种方式:本文用后面两种方式来分别连接并操作Elasticsearch1.2.环境与配置服务端:elasticsearch-6.3.21台客户端:elasticsearch6.4.1服务端配置文件:elasticsearch.yml/etc/security/limits.conf/etc/sysctl.conf1.3.版本
- Cetnos7之修改open files大小引发的故障及处理方式
小袁搬码
LinuxCentos7Centos7Linux
Cetnos7之修改openfiles大小引发的故障及处理方式文章目录Cetnos7之修改openfiles大小引发的故障及处理方式1.修改openfiles大小时引发的一次错误2.重启后登录出现了问题:3.解决方法1.修改openfiles大小时引发的一次错误使用命令“unlimit-a”查看openfiles的大小为1024,于是使用"vim/etc/security/limits.conf"
- Ubuntu开启生成Core Dump的方法
在Ubuntu系统中开启生成CoreDump,可以通过以下步骤实现:配置系统参数:打开终端,输入以下命令以设置core文件的大小无限制:ulimit-cunlimited修改配置文件:编辑/etc/security/limits.conf文件,添加以下两行:*softcoreunlimited*hardcoreunlimited设置core文件生成路径:编辑/etc/sysctl.conf文件,添
- limits.conf
梦李寻欢
Linuxlinux
在Ubuntu中,各种资源限制的配置文件是limits.conf,位置在/etc/security/limits.conf。limits.conf的格式如下:domain:指定被限制的对象(用户或用户组),用户组使用@group语法,通配符*用于默认条目。通配符%,也可以与%group语法一起使用,用于maxlogin限制。注意:组合通配符限制不适用与root用户,要对root用户应用限制,必须指
- Linux系统常见问题解决日记
tmaczt
linuxlinux
ToomanyopenfilesLinux是有文件句柄限制的(openfiles),Linux默认一般是1024,高并发生产服务器很容易就达到这个值。还有压测场景也特别容易出现。在linux中执行ulimit-a即可查询linux相关的参数,如下所示:ulimit-a临时更改:ulimit-n10240永久生效【修改limits配置文件】cat>>/etc/security/limits.conf
- Linux系统内核-TCP连接数和网络等待时间设置优化
2021-5-5
linux运维服务器
一、TCP连接数优化Linux服务器默认支持1024个tcp连接,在实际压测时,无论是压力机还是服务器都需要对tcp参数进行优化1.参看系统当前支持tcp连接数ulimit-n2.设置系统最大连接数vi/etc/security/limits.conf在最后一行添加:*softnofile1000000*hardnofile1000000二、TCP连接等待时间优化Tcp三次握手和四次挥手,第四次挥
- centos7安装单机elasticsearch7.7.1
vah101
elasticsearch搜索引擎大数据
1.下载安装包:进入页面,下载linuxx86_64安装包:Elasticsearch7.7.1|Elastic并将程序解压缩到/opt/elasticsearch-7.7.12.创建用户和用户组:groupaddesuseraddes-geschownes:es-R/opt/elasticsearch-7.7.13.修改最大打开文件数:vim/etc/security/limits.conf在文
- ElasticSearch 集群 7.9.0 linux (CentOS 7部署)包含Mysql动态加载同义词、基础词、停用词,Hanlp分词器,ik分词器,x-pack)
SunForYou
笔记笔记
linux服务器配置要求:/etc/sysctl.conf文件最后添加一行vm.max_map_count=262144/sbin/sysctl-p验证是否生效修改文件/etc/security/limits.conf,最后添加以下内容。*softnofile65536*hardnofile65536*softnproc32000*hardnproc32000*hardmemlockunlimit
- 8.OpenResty系列之2W并发实践
沈健_算法小生
高并发openresty
本文的目标是,成功压测OpenResty接口达到10W并发.高并发其实就是能够扛助某一时刻流量,往往就呢几秒中,真正秒杀下单支付的流量是很小一部分.1.配置最大可打开文件数#临时生效ulimit-n65535#永久生效修改该文件vim/etc/security/limits.conf,新增以下两行*softnofile65535*hardnofile65535(base)[root@shenjia
- elasticsearch-6.5.4集群部署(图文详细)及常见错误
夜灬狼丶
运维elasticsearchelasticsearch运维
目录服务器规划部署包下载服务器初始化(所有节点都要操作)内核参数修改/etc/security/limits.conf修改/etc/sysctl.conf文件修改禁用selinux关闭防火墙创建es用户安装jdkes部署单节点(节点1)部署部署包上传解压配置文件修改修改文件属组部署包分发单节点(节点2)部署配置文件修改修改文件属组单节点(节点3)部署配置文件修改修改文件属组启动ES集群验证单节点验
- Centos6.5下安装oracle11g过程图文详解
大叶梧桐
oracle学习笔记oracle安装过程shmallshmmax设置
linuxcentosoracle11g单机完整部署分享Oracle11g包:linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip无论安装什么版本的Oracle,在安装之前,都需要配置/etc/pam.d/login/etc/profile/etc/security/limits.conf这三个文件那这三个文件究竟是做
- ## 理解RHEL上安装oracle的配置参数 :/etc/security/limits.conf, /etc/profile, /etc/pam.d/login
大叶梧桐
oracle学习笔记安装oracle的配置参数/et
##理解RHEL上安装oracle的配置参数:/etc/security/limits.conf,/etc/profile,/etc/pam.d/login**无论安装什么版本的Oracle,在安装之前,都需要配置*/etc/pam.d/login/etc/profile/etc/security/limits.conf*这三个文件那这三个文件究竟是做什么用的呢?答案就是设置对oracle用户的s
- Linux 限制 SSH 最大连接数 / 限制用户最大连接数
云果龙
linuxlinuxssh服务器
通过修改/etc/security/limits.conf来限制用户登录数(root用户不受限制)需求1:限制zs01用户的最大登录数为3,则在文件末尾追加zs01hardmaxlogins3例子:echo"zs01hardmaxlogins3">>/etc/security/limits.conf需求2:限制每个用户的最大登录数为2,则在文件末尾追加*hardmaxlogins2
- Ubuntu上安装ElasticSearch
犀牛_2046
ElasticSearchElasticSearch安装ESUbuntu安装ES
目录1.ElasticSearch简介2.ElasticSearch安装2.1安装JDK2.2创建ES用户2.3下载ElasticSearch安装包2.4修改配置文件2.5修改/etc/security/limits.conf文件增加配置2.6启动ElasticSearch1.ElasticSearch简介Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎Ap
- centos7.5普通用户登录提示 cannot modify limit
快乐人丶老朱
CENTOS7.5普通用户登录的时候有个提示-bash:ulimit:openfiles:cannotmodifylimit:Operationnotpermitted一般来说我们都是修改文件/etc/security/limits.conf,我在文件中的配置如下softnproc65535hardnproc65535softnofile65535hardnofile65535通过命令ulimit
- Linux服务器性能调优之I/O调优详解
linux大本营
1.进程可以打开的文件数(高并发时常用)ulimit-n#查看一个进程可以打开的文件数修改进程可以打开的最大文件数临时修改:ulimit-n[进程数]永久修改:修改限制用户资源配置文件vim/etc/security/limits.conf末尾添加*softnofile102400*hardnofile102400------------------------------------------
- Centos系统如何限制用户内存使用上限
种地的pele
以用户xiaoming为例,将其最大使用内存限制为2G,执行以下三条命令即可。以root身份登陆echo"xiaominghardrss2097152">>/etc/security/limits.confecho"#Setsupuserlimitsaccordingto/etc/security/limits.conf">/etc/pam.d/loginecho"sessionrequiredp
- fsnotify 与 too many open files
fananchong2
linuxGo语言杂文fsnotifydockertoomanyopenopenfilesulimit
fsnotifyfsnotify是用来监听文件、目录变化的一个golang开源库在Linux系统使用中,遇到了toomanyopenfiles问题首次尝试通常,有2处配置太小,会触发toomanyopenfiles错误:/etc/sysctl.conf文件中的fs.file-max/etc/security/limits.conf文件中的hardnofile与hardnofile因此,更改了相关值
- linux文件描述符耗尽,linux文件描述符数量的坑
weixin_39626369
linux文件描述符耗尽
ulimit-n查看单进程或线程,可打开的最大文件描述符数通过ulimit-n10240设置文件描述符数:(当前shell生效,这真是个坑啊)永久生效:(需要重启系统,也是个坑,好好的系统是不会去重启的)[root@linux2~]#cat/etc/security/limits.conf*softnofile65535*hardnofile65535*softnproc65535*hardnpr
- 解决ssh报错:shell request failed on channel 0
向往风的男子
网络ssh服务器linux
背景:解决ssh报错:shellrequestfailedonchannel0分析原因:目标主机的用户连接线程数太小,导致连接被阻断。解决:需要修改/etc/security/limits.conf文件中的值,把4096改大一点,如65535,如不设限制则改为unlimited,且一般指定用户,不设置为全局。#cat/etc/security/limits.conf#source/etc/secu
- 在Ubuntu系统中,要优化文件句柄数、线程和网络
ascarl2010
乌班图ubuntu网络php
在Ubuntu系统中,要优化文件句柄数、线程和网络,通常涉及到系统限制和内核参数的调整。下面是一些常见的优化步骤,它们可以通过重启来应用:优化文件句柄数(FileDescriptors):编辑/etc/security/limits.conf文件,增加或修改以下行来增加文件句柄的限制:*softnofile65536*hardnofile65536这里65536是示例值,您可以根据需要进行调整。优
- Elasticsearch调优
Okami_
系统参数修改系统最大打开文件描述符数vi/etc/security/limits.conf,增加配置,用户退出后重新登录生效*softnofile65535*hardnofile65535修改用户可以打开的最大线程数vi/etc/security/limits.conf,增加配置,用户退出后重新登录生效*softnproc4096*hardnproc4096单个jvm能开启的最大线程数vi/etc
- 记录一次 ulimit不生效解决方法
R谢荣
linux服务器运维
第一步、vim/etc/security/limits.conf打开limits文件在最后添加softnofile100000hardnofile100000rootsoftnofile100000roothardnofile100000softcoreunlimitedhardcoreunlimitedrootsoftcoreunlimitedroothardcoreunlimited如果只设置
- redis学习笔记——不仅仅是存取数据
Everyday都不同
returnSourceexpire/delincr/lpush数据库分区redis
最近项目中用到比较多redis,感觉之前对它一直局限于get/set数据的层面。其实作为一个强大的NoSql数据库产品,如果好好利用它,会带来很多意想不到的效果。(因为我搞java,所以就从jedis的角度来补充一点东西吧。PS:不一定全,只是个人理解,不喜勿喷)
1、关于JedisPool.returnSource(Jedis jeids)
这个方法是从red
- SQL性能优化-持续更新中。。。。。。
atongyeye
oraclesql
1 通过ROWID访问表--索引
你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高.
2 共享SQL语句--相同的sql放入缓存
3 选择最有效率的表
- [JAVA语言]JAVA虚拟机对底层硬件的操控还不完善
comsci
JAVA虚拟机
如果我们用汇编语言编写一个直接读写CPU寄存器的代码段,然后利用这个代码段去控制被操作系统屏蔽的硬件资源,这对于JVM虚拟机显然是不合法的,对操作系统来讲,这样也是不合法的,但是如果是一个工程项目的确需要这样做,合同已经签了,我们又不能够这样做,怎么办呢? 那么一个精通汇编语言的那种X客,是否在这个时候就会发生某种至关重要的作用呢?
&n
- lvs- real
男人50
LVS
#!/bin/bash
#
# Script to start LVS DR real server.
# description: LVS DR real server
#
#. /etc/rc.d/init.d/functions
VIP=10.10.6.252
host='/bin/hostname'
case "$1" in
sta
- 生成公钥和私钥
oloz
DSA安全加密
package com.msserver.core.util;
import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
public class SecurityUtil {
- UIView 中加入的cocos2d,背景透明
374016526
cocos2dglClearColor
要点是首先pixelFormat:kEAGLColorFormatRGBA8,必须有alpha层才能透明。然后view设置为透明glView.opaque = NO;[director setOpenGLView:glView];[self.viewController.view setBackgroundColor:[UIColor clearColor]];[self.viewControll
- mysql常用命令
香水浓
mysql
连接数据库
mysql -u troy -ptroy
备份表
mysqldump -u troy -ptroy mm_database mm_user_tbl > user.sql
恢复表(与恢复数据库命令相同)
mysql -u troy -ptroy mm_database < user.sql
备份数据库
mysqldump -u troy -ptroy
- 我的架构经验系列文章 - 后端架构 - 系统层面
agevs
JavaScriptjquerycsshtml5
系统层面:
高可用性
所谓高可用性也就是通过避免单独故障加上快速故障转移实现一旦某台物理服务器出现故障能实现故障快速恢复。一般来说,可以采用两种方式,如果可以做业务可以做负载均衡则通过负载均衡实现集群,然后针对每一台服务器进行监控,一旦发生故障则从集群中移除;如果业务只能有单点入口那么可以通过实现Standby机加上虚拟IP机制,实现Active机在出现故障之后虚拟IP转移到Standby的快速
- 利用ant进行远程tomcat部署
aijuans
tomcat
在javaEE项目中,需要将工程部署到远程服务器上,如果部署的频率比较高,手动部署的方式就比较麻烦,可以利用Ant工具实现快捷的部署。这篇博文详细介绍了ant配置的步骤(http://www.cnblogs.com/GloriousOnion/archive/2012/12/18/2822817.html),但是在tomcat7以上不适用,需要修改配置,具体如下:
1.配置tomcat的用户角色
- 获取复利总收入
baalwolf
获取
public static void main(String args[]){
int money=200;
int year=1;
double rate=0.1;
&
- eclipse.ini解释
BigBird2012
eclipse
大多数java开发者使用的都是eclipse,今天感兴趣去eclipse官网搜了一下eclipse.ini的配置,供大家参考,我会把关键的部分给大家用中文解释一下。还是推荐有问题不会直接搜谷歌,看官方文档,这样我们会知道问题的真面目是什么,对问题也有一个全面清晰的认识。
Overview
1、Eclipse.ini的作用
Eclipse startup is controlled by th
- AngularJS实现分页功能
bijian1013
JavaScriptAngularJS分页
对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能。既然在整个应用中这是一种很常见的需求,那么把这一功能抽象成一个通用的、可复用的分页(Paginator)服务是很有意义的。
&nbs
- [Maven学习笔记三]Maven archetype
bit1129
ArcheType
archetype的英文意思是原型,Maven archetype表示创建Maven模块的模版,比如创建web项目,创建Spring项目等等.
mvn archetype提供了一种命令行交互式创建Maven项目或者模块的方式,
mvn archetype
1.在LearnMaven-ch03目录下,执行命令mvn archetype:gener
- 【Java命令三】jps
bit1129
Java命令
jps很简单,用于显示当前运行的Java进程,也可以连接到远程服务器去查看
[hadoop@hadoop bin]$ jps -help
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:
- ZABBIX2.2 2.4 等各版本之间的兼容性
ronin47
zabbix更新很快,从2009年到现在已经更新多个版本,为了使用更多zabbix的新特性,随之而来的便是升级版本,zabbix版本兼容性是必须优先考虑的一点 客户端AGENT兼容
zabbix1.x到zabbix2.x的所有agent都兼容zabbix server2.4:如果你升级zabbix server,客户端是可以不做任何改变,除非你想使用agent的一些新特性。 Zabbix代理(p
- unity 3d还是cocos2dx哪个适合游戏?
brotherlamp
unity自学unity教程unity视频unity资料unity
unity 3d还是cocos2dx哪个适合游戏?
问:unity 3d还是cocos2dx哪个适合游戏?
答:首先目前来看unity视频教程因为是3d引擎,目前对2d支持并不完善,unity 3d 目前做2d普遍两种思路,一种是正交相机,3d画面2d视角,另一种是通过一些插件,动态创建mesh来绘制图形单元目前用的较多的是2d toolkit,ex2d,smooth moves,sm2,
- 百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
bylijinnan
java算法面试百度招聘
import java.util.Arrays;
/**
* 最早是在陈利人老师的微博看到这道题:
* #面试题#An array with n elements which is K most sorted,就是每个element的初始位置和它最终的排序后的位置的距离不超过常数K
* 设计一个排序算法。It should be faster than O(n*lgn)。
- 获取checkbox复选框的值
chiangfai
checkbox
<title>CheckBox</title>
<script type = "text/javascript">
doGetVal: function doGetVal()
{
//var fruitName = document.getElementById("apple").value;//根据
- MySQLdb用户指南
chenchao051
mysqldb
原网页被墙,放这里备用。 MySQLdb User's Guide
Contents
Introduction
Installation
_mysql
MySQL C API translation
MySQL C API function mapping
Some _mysql examples
MySQLdb
- HIVE 窗口及分析函数
daizj
hive窗口函数分析函数
窗口函数应用场景:
(1)用于分区排序
(2)动态Group By
(3)Top N
(4)累计计算
(5)层次查询
一、分析函数
用于等级、百分点、n分片等。
函数 说明
RANK() &nbs
- PHP ZipArchive 实现压缩解压Zip文件
dcj3sjt126com
PHPzip
PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流。这里整理一下常用的示例供参考。
一、解压缩zip文件 01 02 03 04 05 06 07 08 09 10 11
- 精彩英语贺词
dcj3sjt126com
英语
I'm always here
我会一直在这里支持你
&nb
- 基于Java注解的Spring的IoC功能
e200702084
javaspringbeanIOCOffice
- java模拟post请求
geeksun
java
一般API接收客户端(比如网页、APP或其他应用服务)的请求,但在测试时需要模拟来自外界的请求,经探索,使用HttpComponentshttpClient可模拟Post提交请求。 此处用HttpComponents的httpclient来完成使命。
import org.apache.http.HttpEntity ;
import org.apache.http.HttpRespon
- Swift语法之 ---- ?和!区别
hongtoushizi
?swift!
转载自: http://blog.sina.com.cn/s/blog_71715bf80102ux3v.html
Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:
var stringValue : String
//
- centos7安装jdk1.7
jisonami
jdkcentos
安装JDK1.7
步骤1、解压tar包在当前目录
[root@localhost usr]#tar -xzvf jdk-7u75-linux-x64.tar.gz
步骤2:配置环境变量
在etc/profile文件下添加
export JAVA_HOME=/usr/java/jdk1.7.0_75
export CLASSPATH=/usr/java/jdk1.7.0_75/lib
- 数据源架构模式之数据映射器
home198979
PHP架构数据映射器datamapper
前面分别介绍了数据源架构模式之表数据入口、数据源架构模式之行和数据入口数据源架构模式之活动记录,相较于这三种数据源架构模式,数据映射器显得更加“高大上”。
一、概念
数据映射器(Data Mapper):在保持对象和数据库(以及映射器本身)彼此独立的情况下,在二者之间移动数据的一个映射器层。概念永远都是抽象的,简单的说,数据映射器就是一个负责将数据映射到对象的类数据。
&nb
- 在Python中使用MYSQL
pda158
mysqlpython
缘由 近期在折腾一个小东西须要抓取网上的页面。然后进行解析。将结果放到
数据库中。 了解到
Python在这方面有优势,便选用之。 由于我有台
server上面安装有
mysql,自然使用之。在进行数据库的这个操作过程中遇到了不少问题,这里
记录一下,大家共勉。
python中mysql的调用
百度之后能够通过MySQLdb进行数据库操作。
- 单例模式
hxl1988_0311
java单例设计模式单件
package com.sosop.designpattern.singleton;
/*
* 单件模式:保证一个类必须只有一个实例,并提供全局的访问点
*
* 所以单例模式必须有私有的构造器,没有私有构造器根本不用谈单件
*
* 必须考虑到并发情况下创建了多个实例对象
* */
/**
* 虽然有锁,但是只在第一次创建对象的时候加锁,并发时不会存在效率
- 27种迹象显示你应该辞掉程序员的工作
vipshichg
工作
1、你仍然在等待老板在2010年答应的要提拔你的暗示。 2、你的上级近10年没有开发过任何代码。 3、老板假装懂你说的这些技术,但实际上他完全不知道你在说什么。 4、你干完的项目6个月后才部署到现场服务器上。 5、时不时的,老板在检查你刚刚完成的工作时,要求按新想法重新开发。 6、而最终这个软件只有12个用户。 7、时间全浪费在办公室政治中,而不是用在开发好的软件上。 8、部署前5分钟才开始测试。