MyBlog


Arthas实践

<h1>命令监听</h1> <p>watch com.alibaba.youku.search.business.proc.merger.AllMergerProc resetStandardBaseList '{params,returnObj}' 'params[0].utdid==&quot;YUWpMk2PeaADAGXxltQFQ/xb&quot;' -n 5 -x 3 watch com.alibaba.youku.search.business.standard.sort.StandardComplexSort sort '{params,returnObj}' 'params[2].utdid==&quot;YUWpMk2PeaADAGXxltQFQ/xb&quot;' -n 5 -x 2 watch com.alibaba.youku.search.business.standard.util.BtsUtil isModuleRank '{params,returnObj}' 'params[0].utdid==&quot;YUWpMk2PeaADAGXxltQFQ/xb&quot;' -n 5 -x 3 watch com.alibaba.youku.search.business.proc.AppendChannelPageProc buildHeaderNode '{params,returnObj}' -n 5 -x 3 watch com.alibaba.youku.search.business.proc.AppendChannelPageProc buildTabItems '{params[1].getRequestQuery(&quot;originalParamMap&quot;),returnObj}' 'params[0].ugcChannelTag == &quot;1076737516@219642&quot;' -n 5 -x 3 </p> <h1>监听命令并回放</h1> <p>tt -t com.alibaba.youku.search.business.proc.ranker.ModuleDocRankerProc getModuleMap 'params[5].utdid==&quot;YUWpMk2PeaADAGXxltQFQ/xb&quot;' tt -t com.alibaba.youku.search.business.proc.merger.AllMergerProc resetStandardBaseList 'params[0].utdid==&quot;YUWpMk2PeaADAGXxltQFQ/xb&quot;' tt -t com.alibaba.youku.search.business.standard.sort.StandardComplexSort sort 'params[2].utdid==&quot;YUWpMk2PeaADAGXxltQFQ/xb&quot;' tt -t com.alibaba.youku.search.business.standard.convert.ScgShowConvertUtilSd processShowScgInfo 'params[1].utdid==&quot;YUWpMk2PeaADAGXxltQFQ/xb&quot;' tt -t com.alibaba.youku.search.business.standard.util.BtsUtil isModuleRank 'params[0].utdid==&quot;YUWpMk2PeaADAGXxltQFQ/xb&quot;' </p> <h1>热更新文件</h1> <h2>反编译代码</h2> <p>jad --source-only com.alibaba.youku.search.service.service.impl.SearchServiceImpl &gt; /tmp/SearchServiceImpl.java</p> <h2>编辑反编译之后的代码,加了一行日志看效果</h2> <p>vim /tmp/SearchServiceImpl.java</p> <h2>sc查找加载SearchServiceImpl的ClassLoader</h2> <p>sc -d *SearchServiceImpl | grep classLoaderHash</p> <h2>mc内存编绎代码(-c指定classLoaderHash)</h2> <p>mc -c 3c153a1 /tmp/SearchServiceImpl.java -d /tmp 编译完会有一个class到输出路径,如: /tmp/com/alibaba/youku/search/service/service/impl/SearchServiceImpl.class</p> <h2>redefine热更新代码</h2> <p>redefine /tmp/com/alibaba/youku/search/service/service/impl/SearchServiceImpl.class</p> <p>Arthas实践--使用redefine排查应用奇怪的日志来源 <a href="https://github.com/alibaba/arthas/issues/263">https://github.com/alibaba/arthas/issues/263</a></p>

页面列表

ITEM_HTML