nginx做反向代理proxy_pass,proxy_redirect的使用 - Snooda - Snooda's Blog
今天用nginx作为trac的反代,发现一个问题,就是登入登出跳转的时候是白页,看了下网页相应内容,发现相应的location是空的。查了一下发现是只单纯用了proxy_pass,没有使用proxy_redirect.
假设前端url是example.com。后端server域名是in.com,那么后端server在返回refresh或location的时候,host为in.com,显然这个信息直接返回给客户端是不行的,需要nginx做转换,这时可以设置:
proxy_redirect http://in.com /
nginx会将host及port部分替换成自身的server_name及listen port。不过这种配置对server_name有多个值的情况下支持不好。
我们可以用nginx内部变量来解决这一问题:
proxy_redirect http://in.com http://$host:$server_port
如果nginx的监听端口不是默认的80端口,改为其他端口如81端口。
后端服务器中request.getServerPort()无法获得正确的端口,返回的仍然是80;
在response.sendRedirect()时,客户端可能无法获得正确的重定向url。
正确的配置方法为
在 $host之后加上端口号,如$host:81
server {
listen 83;
server_name localhost;
location / {
proxy_pass http://147.16.24.175:9500 ;
proxy_set_header Host $host:83;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
}
weblogic性能调优 - rznice的专栏 - 博客频道 - CSDN.NET
注:在下面做的介绍都是以Weblogic8.1为例的,其它版本的Weblogic可能会有些许不同。
1) 设置JAVA参数;
a) 编辑Weblogic Server启动脚本文件;
BEA_HOME\user_projects\domains\domain-name\startWebLogic.cmd(startWebLogic.sh on Unix)
BEA_HOME\user_projects\domains\domain-name\startManagedWebLogic.cmd(startManagedWebLogic.sh on Unix) --这个是做集群的时候用的
b) 编辑set JAVA_OPTIONS命令,如:set JAVA_OPTIONS=-Xms256m CXmx256m;
(在UNIX下把MEM_ARGS="-Xms1024m -Xmx1024m -Xmn128m"加到上述两个.sh文件中即可)
c) 保存,重启即可。
注:在WebLogic中,为了获得更好的性能,BEA公司推荐最小Java堆等于最大Java堆。
(这个偶们的设置都是1024M的,反正偶们内存大大的4G呢)
2) 开发模式 vs. 产品模式;
开发模式和产品模式的一些参数的默认值不同,可能会对性能造成影响,下面是对性能有影响的参数列表:
参数 开发模式默认值 产品模式默认值
Execute Queue: Thread Count 15 threads 25 threads
JDBC Connection Pool: MaxCapacity 15 connnections 25 connections
通过启动管理控制台,在域(如:mydomain)> 配置 > 常规选择产品模式。
(这个在创建weblogic的domain的时候是有选择的,选择“产品”模式就可以了,如果后期需要修改,可以按照上面的方法修改)
3) 尽量开启本地I/O;
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> 配置 > 调整选择启用本地I/O。
注:此值也可通过手动的修改config.xml配置文件。
(这个没有试验过,不晓得有什么效果和好处,知道的告诉偶下下。)
4) 调优执行队列线程;
a) 修改默认执行线程数
在这里,执行队列的线程数表示执行队列能够同时执行的操作的数量。但此值不是设的越大越好,应该恰到好处的去设置它,太小了,执行队列中将会积累很多待处理的任务,太大了,则会消耗大量的系统资源从而影响整体的性能。在产品模式下默认为25个执行线程。
(点:一般来说,其上限是每个CPU对应50个线程,其按照CPU个数线性增长.)
为了设置理想的执行队列的线程数,我们可以启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> 监视 > 性能中监控最大负载时执行队列的吞吐量和队列中的等待请求数,据此确定理想的数值。
理想的默认执行线程数是由多方面的因素决定的,比如机器CPU性能、总体体系架构、I/O、操作系统的进程调度机制、JVM的线程调度机制。随着CPU个数的增加,WebLogic可以近乎线性地提高线程数。线程数越多,花费在线程切换的时间也就越多;线程数越小,CPU可能无法得到充分的利用。为获取一个理想的线程数,需要经过反复的测试。在测试中,可以以25*CPU个数为基准进行调整。当空闲线程较少,CPU利用率较低时,可以适当增加线程数的大小(每五个递增)。对于PC Server和Windows 2000,则最好每个CPU小于50个线程,以CPU利用率为90%左右为最佳。
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> Execute Queue > weblogic.kernel.Defalt > 配置中修改线程计数。
b) 设定执行队列的溢出条件;
Weblogic Server提供给默认的执行队列或用户自定义的执行队列自定义溢出条件的功能,当满足此溢出条件时,服务器改变其状态为“警告”状态,并且额外的再分配一些线程去处理在队列中的请求,而达到降低队列长度的目的。
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> Execute Queue > weblogic.kernel.Defalt > 配置下面几项:
●队列长度:此值表示执行队列中可容纳的最大请求数,默认值是65536,最后不要手动改变此值。
●队列长度阈值百分比:此值表示溢出条件,在此服务器指出队列溢出之前可以达到的队列长度大小的百分比。
●线程数增加:当检测到溢出条件时,将增加到执行队列中的线程数量。如果CPU和内存不是足够的高,尽量不要改变默认值“0”。因为Weblogic一旦增加后不会自动缩减,虽然最终可能确实起到了降低请求的作用,但在将来的运行中将影响程序的性能。
●最大线程数:为了防止创建过多的线程数量,可以通过设定最大的线程数进行控制。
在实际的应用场景中,应根据具体情况适当的调整以上参数。
c) 设定执行队列监测行为
Weblogic Server能够自动监测到当一个执行线程变为“阻塞”。变为“阻塞”状态的执行线程将无法完成当前的工作,也无法再执行新请求。如果执行队列中的所有执行线程都变为“阻塞”状态,Weblogic server可能改变状态为“警告”或“严重”状态。如果Weblogic server变为“严重”状态,可以通过Node Manager来自动关闭此服务器并重新启动它。具体请参考:Node Manager Capabilities文档。
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置 > 调整下可配置下面几项:
●阻塞线程最长时间:在此服务器将线程诊断为阻塞线程之前,线程必须连续工作的时间长度(秒)。默认情况下,WebLogic Server 认为线程在连续工作 600 秒后成为阻塞线程。
●阻塞线程计时器间隔:WebLogic Server 定期扫描线程以查看它们是否已经连续工作了 "阻塞线程最长时间" 字段中指定的时间长度的间隔时间(秒)。默认情况下,WebLogic Server 将此时间间隔设置为 600 秒。
5) 调优TCP连接缓存数;
WebLogic Server用Accept Backlog参数规定服务器向操作系统请求的队列大小,默认值为50。当系统重载负荷时,这个值可能过小,日志中报Connection Refused,导致有效连接请求遭到拒绝,此时可以提高Accept Backlog 25%直到连接拒绝错误消失。对于Portal类型的应用,默认值往往是不够的。
Login Timeout和SSL Login Timeout参数表示普通连接和SSL连接的超时时间,如果客户连接被服务器中断或者SSL容量大,可以尝试增加该值。
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置 > 调整下可配置“接受预备连接”。
6) 改变Java编译器;
标准的Java编译器是javac,但编译JSP servlets速度太慢,为了提高编译速度,可以使用sj或jikes编译器取代javac编译器。下面说说更改Java编译器:
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置 > 常规下改变Java 编译器,默认为javac。输入完整路径,如:c:\visualcafe31\bin\sj.exe。然后打开高级选项,在预规划到类路径填写编译 Java 代码时为 Java 编译器类路径预规划的选项,如:BEA_HOME\jdk141_02\jre\lib\rt.jar。
7) 使用Webogic Server集群提高性能;
具体关于如何配置Weblogic集群,我就不细说了。详情可参考:Introduction to WebLogic Server Clustering。
8) Weblogic EJB调优
由于EJB2.0已经很少项目在用了,EJB3.0再成熟一点,我再补充这一部分吧!
9) JDBC应用调优
JDBC Connection Pool的调优受制于WebLogic Server线程数的设置和数据库进程数,游标的大小。通常我们在一个线程中使用一个连接,所以连接数并不是越多越好,为避免两边的资源消耗,建议设置连接池的最大值等于或者略小于线程数。同时为了减少新建连接的开销,将最小值和最大值设为一致。
增加Statement Cache Size对于大量使用PreparedStatement对象的应用程序很有帮助,WebLogic能够为每一个连接缓存这些对象,此值默认为10。在保证数据库游标大小足够的前提下,可以根据需要提高Statement Cache Size。比如当你设置连接数为25,Cache Size为10时,数据库可能需要打开25*10=250个游标。不幸的是,当遇到与PreparedStatement Cache有关的应用程序错误时,你需要将Cache Size设置为0。
尽管JDBC Connection Pool提供了很多高级参数,在开发模式下比较有用,但大部分在生产环境下不需调整。这里建议最好不要设置测试表, 同时Test Reserved Connections和Test Released Connections也无需勾上。 当然如果你的数据库不稳定,时断时续,你就可能需要上述的参数打开。
最后提一下驱动程序类型的选择,以Oracle为例,Oracle提供thin驱动和oci驱动,从性能上来讲,oci驱动强于thin驱动,特别是大数据量的操作。但在简单的数据库操作中,性能相差不大,随着thin驱动的不断改进,这一弱势将得到弥补。而thin驱动的移植性明显强于oci驱动。所以在通常情况下建议使用thin驱动。而最新驱动器由于WebLogic server/bin目录下的类包可能不是最新的,请以Oracle网站为准: http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html。
10) JSP调优
设置jsp-param pageCheckSeconds=-1;
设置serlet-reload-check=-1或ServletReloadCheckSecs=-1;
设置jsp-param precompile=true,关闭JSP预编译选项。
Tags: weblogic, java, 性能调优
一个牛人给出的参考:
系统的线程池配置考虑以下因素:
1, 机器的计算能力;
2, 子系统每个线程的计算复杂性;
3, 整个系统的均衡性。
因此,建议设定一个标准范围,例如(举例说明,具体数值根据情况斟酌):
机型:DL380G4/2*3G/4G,线程池大小范围:80-120(无特殊情况一般设为100);
机型:DL380G5/2*2G/4G,线程池大小范围:100-120(无特殊情况一般设为110);
机型:BL460C/2*3G/4G,线程池大小范围:100-120(无特殊情况一般设为110);
Post by iceskysl on 2007, September 18, 11:50 AM #1
系统文件描述符数目不足
Log中有“too many open files”的错误
表示达到了系统对一个进程能同时打开的文件数的限制
ulimit Ca CH 可以查看当前限制
ulimit Cn number可以来更改当前环境的设置,建议至少设到4096
Solaris上可以通过/usr/proc/bin/pfiles pid来查看指定进程的限制和当前使用的file descriptor数目
Solaris上root用户可以通过/usr/proc/bin/plimit -n soft,hard pid 来动态更改进程的文件描述符的限制
Post by iceskysl on 2007, September 18, 11:55 AM #2
系统内存不足
JVM的heap区大小
通过java命令行中的-Xms,-Xmx指定,建议最小值和最大值设成一样
可以通过weblogic console上server/monitor/performance来观察其使用情况
建议生产系统最少256M,一般情况下可以设置为系统剩余物理内存的80%
Post by iceskysl on 2007, September 18, 11:57 AM #3
failureException: Error initializing Embedded LDAP Server - with nested exception: [java.lang.ClassCastException] java.lang.ClassCastException at weblogic.ldap.EmbeddedLDAP.initialize(EmbeddedLDAP.java:266)
改权限chown -R weblogic.weblogic /home/webogic
Post by iceskysl on 2007, September 18, 4:37 PM #4
修改文件句柄数:
1、修改/etc/security/limits.conf,需要root权限
vi /etc/security/limits.conf
# 确认包含下面的内容:
* soft nofile 8192
* hard nofile 8192
修改后,su到目标用户,用ulimit CHn和ulimit CSn确认修改已生效
2、修改startManagedWebLogic.sh,找到resetFD那行,注释掉。然后在脚本最后启动JAVA进程的前面加上下面的内容,检查系统文件句柄数是否修改:
echo
echo "-----------------------------------------------"
echo "Begin to check the file descriptor limit"
fd=`ulimit -n`
if [ $fd -lt 8192 ];
then
echo "Fatal Error!"
echo "The file descriptor limit is only '"$fd"'!"
echo "Please make it more than 8192!"
exit
fi
echo "OK, the file descriptor limit is" $fd
echo "-----------------------------------------------"
echo
echo
Post by iceskysl on 2007, September 18, 5:26 PM #5
查看文件句柄数:
/usr/sbin/lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
Post by iceskysl on 2007, September 20, 10:53 AM #6
我遇到的weblogic运行600秒超时主要有两个原因:
1)SQL语句运行时线程阻塞
2)out.println语句运行时线程阻塞
第一种问题的解决办法,编写一个java桌面应用,测试运行的SQL语句是否可以正常运行,并返还正确结果。若无法正常运行,就需要通过视图或其他的方式调整和优化SQL语句。
这里需要注意:数据库的不同版本可能需要相应版本的数据库驱动。SQL语句不能正常运行,通常都是由驱动引起的。
第二种情况的解决办法,weblogic或其他的中间件产品,服务端大多都会使用缓冲发送数据机制,当数据量大的时候会分批发送出去,若数据中出现过多的回车(\n或直接的回车)就会有一定的几率出线线程阻塞的情况,解决办法就是消除回车符,尽量使输出的数据是连续的字符流。
Post by iceskysl on 2007, September 22, 9:39 PM #7
分析线程堆栈:
http://bbs.sinoweb.com.cn/archiver/tid-405.html
Post by iceskysl on 2007, September 23, 2:13 AM #8
http://www.cntesting.com/portal/html/testing-technique/load-test/20070509/178.html
Post by iceskysl on 2007, September 23, 2:25 AM #9
最近生产环境下的系统经常出现以下的错误提示,
####<2007-7-2 下午04时07分20秒 CST> <Error> <WebLogicServer> <gis> <portalServer> <weblogic.health.CoreHealthMonitor> <<WLS Kernel>> <> <BEA-000337> <ExecuteThread: '5' for queue: 'default' has been busy for "1,165" seconds working on the request "Http Request: /tzzmWeb/saye/regie/census/customertoMtn/custcheckout.do", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
该问题是由于处理custcheckout.do请求超时引起的,系统配置的处理时间是600s,但是该线程处理了1165s后,仍然没将请求释放,所以报了这个错误。如果发送该请求较多,很有可能会导致weblogic的线程阻塞,严重会引起weblogic挂起现象。
可以通过以下几种方法解决:
1)修改StuckThreadMaxTime参数,将默认的600s改成1200s,或者其它适合的值。
2)增大线程数,防止线程阻塞问题。
3)优化程序,减少处理时间。
如何修改weblogic默认线程池大小?
weblogic 9开始使用了线程自调优技术。通过以下方法设置,可以指定默认线程的最大最小值。
方法一:修改启动脚本参数
在启动脚本中,增加如下参数
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%
-Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy
-Dweblogic.threadpool.MinPoolSize=100 -Dweblogic.threadpool.MaxPoolSize=500
%PROXY_SETTINGS% %SERVER_CLASS%
方法二:修改config.xml
在config.xml中,增加如下参数
<server>
<name>AdminServer</name>
<self-tuning-thread-pool-size-min>100</self-tuning-thread-pool-size-min>
<self-tuning-thread-pool-size-max>500</self-tuning-thread-pool-size-max>
<listen-port>7923</listen-port>
<listen-address></listen-address>
</server>
经过测试,以上两种方法适合weblogic9,10,11g
如何在一周内摸清一个行业?
在和咨询、投行、投资、猎头这些行业的人聊天的时候,我反复听到“一周”这个时间,于是我也开始好奇:你们是在什么情况下需要在一个星期之内了解一个行业?你们都是如何做到在一个星期之内摸清一个行业的?
在一周之内“摸清”一个行业依然不可能成为这个行业的顶尖专家,也不可能成为这个行业的一个高管。但是,你能了解一个行业的全局,现今状况、过去、未来一段时间内可能的发展趋势,熟悉那个行业的行话,拿捏这个行业的基本信息。
这有什么用?
你能和那个行业内的人自如对话,你能站在局外人的角度结合你自己的知识和经验看到新的机遇,你能在你的客户面前让他刮目相看,你还能拿到一份好工作,了解你的上司在做决策的时候会考虑什么...
所以我们微信公共账号“改变自己”邀请了三个嘉宾来和我们说,他们是如何做到在一周之内摸清一个行业的。
—————————— 第一期 咨询公司的人如何在一周内摸清一个行业——————————
有一个咨询公司的创始人招聘员工时,布置了这样一份任务——一周之内给我一份某一个行业的报告。来投简历并写报告书的不乏国内外名校的学生,可是他失望的发现没有一个应聘者达标了,他收到的那些报告书都没有一个亮点。
一个星期之内如何摸清一个行业的情况呢?让他来和我们说说吧。
一默是恒嘉智略咨询有限公司的创始人,《销售无处不在》的作者。
他说:
“了解一个行业”这件事本身不太可能快速完成。不过,如果我们只是想摸清楚最基本的情况,我们可以通过问对几个关键问题着手。这些关键问题围绕着一个根本问题:这个行业的链条是如何运转起来的?
1 这个行业的存在是因为它提供了什么价值?
2 这个行业从源头到终点都有哪些环节?
3 这个行业的终端产品售价都由谁分享?
4 每个环节凭借什么关键因素,创造了什么价值获得他所应得的利益?
5 谁掌握产业链的定价权?
6 这个行业的市场集中度如何?
而信息获取的渠道,则包括:
1 金融投资机构的行业报告;
2 咨询公司的分析报告;
3 行业交流网站或论坛的热门帖子;
4 业内企业的培训课件;
5 参加行业展会或者论坛;
6 从业者的私下交流。
其中1-4,都可以通过网络搜索获得。
——————————第二期 IT咨询公司的人如何在一周之内摸清一个行业——————————
有一个IT界的小牛,在IT咨询公司工作。
我问他:“做咨询是不是经常要在短时间内摸清一个行业啊?”
他说:“是啊。”
“要多久?”
“一个星期吧。”
“哈哈,一个星期就可以?能打败那个行业的多少人? ”
"90%吧。"
他就是我们今天的嘉宾,熊节。他在IT咨询公司ThoughtWorks已经工作8年了,也是《重构》的译者,看看他的经验之谈吧:
五天之内,三步读懂一个行业
作为职业咨询师,在很短时间内熟悉一个行业,是我经常要面对的工作内容,我也很愿意分享自己的心得。根据我的经验,对于掌握了基本商业知识的咨询师而言,一个星期之内熟悉一个之前陌生的行业并非难事。当然一个星期不会让一个新鲜人成为行业专家,但是足以让一名咨询师在这个行业里顺利开展工作。
这有限的五个工作日,必须高效地利用。我的建议是分三步走:首先,确保自己不会乱开黄腔;其次,让自己进入这个行业的对话;第三,争取提出令人眼前一亮的观点。
* 第一步:首先不要开黄腔
进入一个新的行业,首先应该了解这个行业里的领导企业——很可能正是你马上需要去服务的企业。了解一个领导企业最直接的方式,就是读它的财务报表。上市企业的财务报表都是公开的,并且通常会附上很有用的董事长致投资者函。阅读一份财报,就可以了解很多基本的信息:这家企业的所有权性质、主要业务、主要客户、收入结构、成本结构、员工规模、人才结构、战略方向、主要风险……即便你真正想了解的企业是非上市企业(比如华为),它也必定与其最主要的竞争对手(比如中兴)有很多相似之处。所以阅读财报可以让你对这个行业里的主要玩家有一个基本的了解,不至于提一些太离谱的问题或者建议。
如何阅读财务报表,一个比较常用的分析方法是杜邦分析法。我有一篇文章介绍过如何用杜邦分析法来解读一家知名上市企业(中兴通讯)的财务报表和企业经营状况,(文章见此)在我做了这个练习一年后,中兴通讯2012年中期财报报出巨亏,利润率持续走低正是导致该企业及其几家主要竞争对手从2012年起开始大幅裁员的直接原因之一。
花一天时间读完一两家企业的财报之后,接着就得下点死工夫,读一本这个行业的综述性书籍,例如对于保险行业我推荐《风险管理与保险》。读这样一本书的目的,第一是更深入地理解这个行业的商业模式和惯例,比如你得知道财产险和寿险存在一些根本性的差异所以它们的经营也会很不同;第二是掌握一些行业里的“黑话”,比如当你听到“承保”、“核保”时你得知道这都是指什么。我个人而言,读这本书是用业余时间,加起来用了8小时左右。
* 第二步:进入行业对话
做到了不开黄腔也还不足以跟行业里的CxO们展开对话,因为大家平时不会谈论那些最基本的东西。要进入一个行业的对话,你得了解这个行业当下的趋势。有些人会推荐跟行业里的朋友去聊天。但作为一个时间紧迫的内向型人,我个人更愿意以研究材料为主,与朋友聊天为辅。
行业趋势的最佳来源是麦肯锡之类管理咨询公司做的行业分析。我个人尤其推荐麦肯锡季刊(McKinsey Quarterly,http://www.mckinseyquarterly.com)发布的研究报告,以及经济学人(The Economist,http://www.economist.com/)的行业分析。从这两个网站搜出最近五年所有与你关注的行业相关的文章,花一到两天时间全部通读一遍,你应该就能把握住这个行业的脉搏。
在中国市场上工作,我们会担心来自麦肯锡和经济学人的分析不够“中国特色”。我的经验是,一方面可以适当补充一些本土内容;另一方面,中国各行各业的发展基本上与世界先进水平保持3~5年的差距,也就是说欧美发达国家在三五年前发生过的应该就是中国当前正在发生的,欧美发达国家一两年前发生过的应该会在一两年后在中国发生。比起“中国特色”,很多时候简单的市场规律和时间差更有效。
与此同时,在这整个一周时间里,你要让自己浸泡到这个行业的上下文中。办法很简单:订阅一堆与这个行业、与你想要针对的目标企业直接相关的新闻RSS,把其他的RSS频道都暂时屏蔽,在地铁上、咖啡馆里、床头上、马桶上……所有的空闲时间都用来看这个行业、这家企业最近发生了什么。比如我在关注澳洲保险行业的阶段,就订阅了Google News的“australia insurance”关键字和我客户公司的名字,客户公司出什么重大理赔案或是高层人事变动,我能比客户的大多数员工还先知道消息,于是就有了很多可以谈论的话题。
* 第三步:以我为主,提出观点
开始这个连载的时候彭萦讲了一个故事,说某咨询公司的创始人要应聘者一周内给出一份行业报告,但回头他发现这些名校毕业生做的报告都没有一个亮点。且不论这个故事是真是假,在我看来,“没有亮点”的症结恐怕就在于应聘者是“毕业生”:虽然是研究另一个行业,其实“亮点”的关键不在对那个行业研究得多好,而在研究者自身的专业技能。所谓“功夫在诗外”,就是这个道理。
举个例子来说。如果你看麦肯锡去年所做的中国寿险行业分析,首先你会发现它遵循了前面说的两步:数据详实,术语准确,而且把握住了行业脉搏。但它的亮点在于它指出了中国寿险行业的几大痛点,并且从战略和管理的角度提出了对应的解决方案。归根到底这才是行业里的CxO们期望你作为一个专业人士拿出来的东西,也是你之所以要去快速了解这个行业的根本目的:快速了解一个行业不是为了显示自己的学习能力,而是为了使自己的专业技能在这个行业中得到运用。
所以关键在于把你自己的专业、技能、知识、经验和这个行业的情况相结合,提出一点别人没有提过的东西。
所以,在做了前两步功课之后,你至少应该给自己留出一整天的时间来回答这样三个问题:
1. 这个行业所面临的痛点有哪些?
2. 哪些痛点对于业内人士是最紧迫的?
3. 如何把自己的专业技能与这些痛点结合起来?
其中前两个问题的答案应该是相对客观的。也就是说,你大可以把麦肯锡的寿险行业分析打印出来,扔掉最后的“解决方案”部分,然后结合自己的专业领域,来尝试给它所列举的几大痛点寻找解决方案。如何用IT手段改善寿险销售?寿险行业需要何种人力资源战略?甚至何种MBTI人格更适合从事高水平的寿险服务?凡此种种不一而足。提出观点这部分,就是专业人士站在自己专业领域的命题作文,能不能讲出亮点,第一靠快速理解目标行业的小聪明,最重要的还是看在自己专业领域里的造诣。
——————————第三期 一个猎头来和我们说如何在一周之内摸清一个行业——————————
今天我们请来了一个猎头来和我们说说这个话题。 Chris给自己的介绍是——混迹于职场,狩猎于城市。城市猎头人。
听听他为什么要在一个星期之内摸清一个行业吧:
在动手写这篇文章之前,我从未如此定量地思考过这个问题,现在回想起猎头工作中的很多Case,其实都做到了一周内摸清一个行业。
在阐述如何做到这一点之前,我先要作个说明:每个行业都包含了多个维度的内容,如行业历史、现状及未来、市场容量、消费规模、与经济、政治的相互影响方式和程度、行业内企业的生存状况、行业人才的分布及动态等等,当我们需要短期内摸清某一行业时,都是基于当前工作的实际需求来进行的。因此,下文主要是从一个猎头的角度来说明如何做到一周内摸清一个行业。
猎头的工作流程一般如下:
客户提出招聘需求 —— 猎头进行职位分析 —— 确定匹配人才来源(行业/企业) —— 设定人才搜寻计划(即如何接触到目标人选) —— 评估潜在人选 —— 推荐匹配人选面试 —— ... —— 合格人选入职
通常,从猎头接到一个新的职位委托到推荐第一批匹配人选给客户所需时间为7-10天,这就要求做单的猎头顾问,在一周之内摸清一个或两三个行业,挖掘客户需要的人才并对其进行综合评价。对于今天这个话题,我们只要讨论到猎头工作的“与目标人选沟通”这一环节就可以了,其实现的整体思路和操作可简述如下:
1、圈定对应行业,或拓展至相关行业。
a. 客户提供行业基本信息,如竞争对手;
b. 咨询相关行业内朋友;
c. 通过互联网、行业杂志、产业报告等,了解行业上下游企业的产品/服务/业务模式等。
2、确定行业内TOP5或TOP10企业名单,并关注名单排序的标准,及近几年排名变化。
a. 咨询行业内朋友;
b. 参考每年的 Fortune Top 500;可适当拓展了解近3-5年排名变化情况;
c. 通过互联网、行业协会、上市公司信息披露等渠道查询企业排名(如销售额、增长率、零售终端数等),同时关注企业的战略调整、市场布局、新产品发布、收并购信息等;
d. 查阅PE/VC、证券等金融机构的行业/企业分析、案例分析、产品分析、行业预测等报告。
3、锁定所列企业组织架构中的对应岗位的目标人选,通过各种渠道接触到目标人选。
a. 联系/咨询行业/企业内的朋友,或朋友的朋友;(人脉资源)
b. 搜索猎头公司自身数据库人才资源;
c. 第三方人才库资源(如 linkedin、微博等);
d. Cold Call (陌生电话)
重点:
a. 联系到的每一个人,都详细沟通,最大限度地通过这些人挖掘其所属企业、竞争对手的具体岗位/员工/业务/产品/服务等的数据和信息;
b. 及时转化吸收所得信息,并用于此后所联系到的人,同时相互印证这些信息的准确度、可靠性。
当做到第2点的时候,其实已经可以了解到一个行业的70-80% (笔者凭经验估计)甚至更多,而大多数人可能会觉得第3 点的实现有些困难,其实情况并没有你想象得糟,因为你有很多的朋友,而你的朋友又有很多朋友,更别说“六度分割理论”带给你的无限人脉资源,只要你想挖掘,你现有的人脉资源带给你的信息就能使你在已有的70-80%的基础上增加10-20%,保守地说,这个时候你已经是这个行业的半个专家了。
举一个例子来说明。
我曾经做过一个Case,为一家国际Top 3的糖业集团寻找South China GM的人选。刚接触这个职位时,我对糖业完全是个门外汉,只知道日常生活中接触到的蔗糖、白砂糖、红糖这些概念,及各种果汁、咖啡、饼干中添加的糖之类的,对其他一概不知,更别说去挖人并评估其是否胜任了。
启动项目后,按照上述的方法。我们按照客户的要求,根据职位的任职资格,进行如下操作:
1、圈定行业
首先在网上搜索“制糖 企业”、“糖业 排名”之类的关键词,从搜索结果中了解到国内制糖企业几乎为本土民企和国企,并分为以蔗糖为主的南方和以甜菊糖为主的北方制糖企业。
其次,从“制糖 行业 分析”、“糖业 研究报告”的搜索结果中,了解到糖业在中国的产业布局、优势省份、产品特色、产业上下游产品等,了解到糖业上游的种植(甘蔗、甜叶菊的种植)、中游的制造(榨糖厂、渣料处理等)、下游的分销(食品加工企业、饮料生产商、食品添加剂公司等、现货/期货市场等)。
最后,拓展到产业上下游相关联的国际集团在华开展相应业务的公司,如国际食品集团、国际四大粮商、雀巢、百事、正大饲料等企业所属的行业。
2、确定行业内企业名单
a. 国内糖业公司:洋浦南华、广西农垦、贵糖、东亚糖业、南宁糖业、凤糖、英茂糖业等;
b. 国际四大粮商ABCD、国内的中粮;
c. 根据Fortune Top 500,根据企业产品分类,确定其中的食品制造或零售企业名单:Nestlé、Pepsi、Kraft、Coca-Cola、AB InBev、Tyson等;
3、根据企业名单摸排对应岗位的目标人选,并最大限度获取企业/行业信息,丰富前两步的内容。
因本文主要以摸清行业为目标,故第3步不再赘述。通过前1、2步的信息收集、整理、分析,加上第3步的信息细化及相互印证(亦可称之为人脉资源利用),我已经在不到一周的时间内摸清了一个行业,甚至相关行业的情况,并基于此,完成客户的委托。
以上,是一个猎头从业者分享给大家的方法。