一、 tensorflow 离线训练导出格式

  1. Tensorflow 离线训练的结果可以使用某种格式导出,如 SessionBundle、SavedModel、FreezedGraph,本次在使用SavedModel方式保持模型,进行在线预估。

二、在线预估代码

  1. 模型加载逻辑
bool TensorModel::LoadModel(const std::string& model_path) {tensorflow::SessionOptions session_options;tensorflow::RunOptions run_options;std::unordered_set<std::string> saved_model_tags;saved_model_tags.insert(tensorflow::kSavedModelTagServe);tensorflow::Status status = tensorflow::LoadSavedModel(session_options, run_options, model_path,saved_model_tags, &model_bundle_);if (!status.ok()) {         LOG(ERROR) << "LoadSavedModel Failed: " << status.ToString();return false;}return true;
}
  1. 在线预估逻辑,发现在预估的时候此处出现了hang住的请求,没有反应
tensorflow::Status status = model_bundle_.session->Run(tf_feature.input, {out_tname}, {}, &outputs);
  1. 具体堆栈
Thread 14 (Thread 0x7f738b7ce700 (LWP 7641)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f748835a55c in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /tmp/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/gthr-default.h:864
#2  std::condition_variable::wait (this=<optimized out>, __lock=...) at ../../../.././libstdc++-v3/src/c++11/condition_variable.cc:52
#3  0x0000000002ba4874 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WaitForWork(Eigen::EventCount::Waiter*, tensorflow::thread::EigenEnvironment::Task*) ()
#4  0x0000000002ba52a2 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WorkerLoop(int) ()
#5  0x0000000002ba4208 in std::_Function_handler<void (), tensorflow::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#6  0x00007f748835e1e0 in std::(anonymous namespace)::execute_native_thread_routine (__p=<optimized out>) at ../../../.././libstdc++-v3/src/c++11/thread.cc:84
#7  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 13 (Thread 0x7f738afcd700 (LWP 7642)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f748835a55c in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /tmp/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/gthr-default.h:864
#2  std::condition_variable::wait (this=<optimized out>, __lock=...) at ../../../.././libstdc++-v3/src/c++11/condition_variable.cc:52
#3  0x0000000002ba4874 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WaitForWork(Eigen::EventCount::Waiter*, tensorflow::thread::EigenEnvironment::Task*) ()
#4  0x0000000002ba52a2 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WorkerLoop(int) ()
#5  0x0000000002ba4208 in std::_Function_handler<void (), tensorflow::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#6  0x00007f748835e1e0 in std::(anonymous namespace)::execute_native_thread_routine (__p=<optimized out>) at ../../../.././libstdc++-v3/src/c++11/thread.cc:84
#7  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 12 (Thread 0x7f738a7cc700 (LWP 7643)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f748835a55c in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /tmp/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/gthr-default.h:864
#2  std::condition_variable::wait (this=<optimized out>, __lock=...) at ../../../.././libstdc++-v3/src/c++11/condition_variable.cc:52
#3  0x0000000002ba4874 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WaitForWork(Eigen::EventCount::Waiter*, tensorflow::thread::EigenEnvironment::Task*) ()
#4  0x0000000002ba52a2 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WorkerLoop(int) ()
#5  0x0000000002ba4208 in std::_Function_handler<void (), tensorflow::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#6  0x00007f748835e1e0 in std::(anonymous namespace)::execute_native_thread_routine (__p=<optimized out>) at ../../../.././libstdc++-v3/src/c++11/thread.cc:84
#7  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 11 (Thread 0x7f7389fcb700 (LWP 7644)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f748835a55c in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /tmp/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/gthr-default.h:864
#2  std::condition_variable::wait (this=<optimized out>, __lock=...) at ../../../.././libstdc++-v3/src/c++11/condition_variable.cc:52
#3  0x0000000002ba4874 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WaitForWork(Eigen::EventCount::Waiter*, tensorflow::thread::EigenEnvironment::Task*) ()
#4  0x0000000002ba52a2 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WorkerLoop(int) ()
#5  0x0000000002ba4208 in std::_Function_handler<void (), tensorflow::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#6  0x00007f748835e1e0 in std::(anonymous namespace)::execute_native_thread_routine (__p=<optimized out>) at ../../../.././libstdc++-v3/src/c++11/thread.cc:84
#7  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 10 (Thread 0x7f73897ca700 (LWP 7645)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f748835a55c in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /tmp/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/gthr-default.h:864
#2  std::condition_variable::wait (this=<optimized out>, __lock=...) at ../../../.././libstdc++-v3/src/c++11/condition_variable.cc:52
#3  0x0000000002ba4874 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WaitForWork(Eigen::EventCount::Waiter*, tensorflow::thread::EigenEnvironment::Task*) ()
#4  0x0000000002ba52a2 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WorkerLoop(int) ()
#5  0x0000000002ba4208 in std::_Function_handler<void (), tensorflow::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#6  0x00007f748835e1e0 in std::(anonymous namespace)::execute_native_thread_routine (__p=<optimized out>) at ../../../.././libstdc++-v3/src/c++11/thread.cc:84
#7  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 9 (Thread 0x7f7388fc9700 (LWP 7646)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f748835a55c in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /tmp/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/gthr-default.h:864
#2  std::condition_variable::wait (this=<optimized out>, __lock=...) at ../../../.././libstdc++-v3/src/c++11/condition_variable.cc:52
#3  0x0000000002ba4874 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WaitForWork(Eigen::EventCount::Waiter*, tensorflow::thread::EigenEnvironment::Task*) ()
#4  0x0000000002ba52a2 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WorkerLoop(int) ()
#5  0x0000000002ba4208 in std::_Function_handler<void (), tensorflow::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#6  0x00007f748835e1e0 in std::(anonymous namespace)::execute_native_thread_routine (__p=<optimized out>) at ../../../.././libstdc++-v3/src/c++11/thread.cc:84
#7  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 8 (Thread 0x7f73887c8700 (LWP 7647)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f748835a55c in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /tmp/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/gthr-default.h:864
#2  std::condition_variable::wait (this=<optimized out>, __lock=...) at ../../../.././libstdc++-v3/src/c++11/condition_variable.cc:52
#3  0x0000000002ba4874 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WaitForWork(Eigen::EventCount::Waiter*, tensorflow::thread::EigenEnvironment::Task*) ()
#4  0x0000000002ba52a2 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WorkerLoop(int) ()
#5  0x0000000002ba4208 in std::_Function_handler<void (), tensorflow::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#6  0x00007f748835e1e0 in std::(anonymous namespace)::execute_native_thread_routine (__p=<optimized out>) at ../../../.././libstdc++-v3/src/c++11/thread.cc:84
#7  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 7 (Thread 0x7f7387fc7700 (LWP 7648)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f748835a55c in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /tmp/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/gthr-default.h:864
#2  std::condition_variable::wait (this=<optimized out>, __lock=...) at ../../../.././libstdc++-v3/src/c++11/condition_variable.cc:52
#3  0x0000000002ba4874 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WaitForWork(Eigen::EventCount::Waiter*, tensorflow::thread::EigenEnvironment::Task*) ()
#4  0x0000000002ba52a2 in Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::WorkerLoop(int) ()
#5  0x0000000002ba4208 in std::_Function_handler<void (), tensorflow::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#6  0x00007f748835e1e0 in std::(anonymous namespace)::execute_native_thread_routine (__p=<optimized out>) at ../../../.././libstdc++-v3/src/c++11/thread.cc:84
#7  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 6 (Thread 0x7f73b0f81700 (LWP 7655)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x000000000072a5e7 in gpr_cv_wait ()
#2  0x000000000071b1b4 in executor_thread(void*) ()
#3  0x000000000072a08d in thread_body(void*) ()
#4  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 5 (Thread 0x7f73b1782700 (LWP 7656)):
#0  0x00007f74888bfd42 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x000000000072a637 in gpr_cv_wait ()
#2  0x0000000000710165 in timer_thread(void*) ()
#3  0x000000000072a08d in thread_body(void*) ()
#4  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 4 (Thread 0x7f73b1f83700 (LWP 7659)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f748835a55c in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /tmp/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/gthr-default.h:864
#2  std::condition_variable::wait (this=<optimized out>, __lock=...) at ../../../.././libstdc++-v3/src/c++11/condition_variable.cc:52
#3  0x0000000002d3bd64 in nsync::nsync_mu_semaphore_p_with_deadline(nsync::nsync_semaphore_s_*, timespec) ()
#4  0x0000000002d3c191 in nsync::nsync_sem_wait_with_cancel_(nsync::waiter*, timespec, nsync::nsync_note_s_*) ()
#5  0x0000000002d3aa14 in nsync::nsync_cv_wait_with_deadline_generic(nsync::nsync_cv_s_*, void*, void (*)(void*), void (*)(void*), timespec, nsync::nsync_note_s_*) ()
#6  0x0000000002d3af4d in nsync::nsync_cv_wait(nsync::nsync_cv_s_*, nsync::nsync_mu_s_*) ()
#7  0x00000000007b5fab in tensorflow::serving::BatchingSession::Run(tensorflow::RunOptions const&, std::vector<std::pair<std::string, tensorflow::Tensor>, std::allocator<std::pair<std::string, tensorflow::Tensor> > > const&, std::vector<std::string, std::allocator<std::string> > const&, std::vector<std::string, std::allocator<std::string> > const&, std::vector<tensorflow::Tensor, std::allocator<tensorflow::Tensor> >*, tensorflow::RunMetadata*) ()
#8  0x0000000000753678 in tensorflow::serving::(anonymous namespace)::SavedModelPredict(tensorflow::RunOptions const&, tensorflow::serving::ServerCore*, tensorflow::serving::PredictRequest const&, tensorflow::serving::PredictResponse*) ()
#9  0x0000000000756a66 in tensorflow::serving::TensorflowPredictor::Predict(tensorflow::RunOptions const&, tensorflow::serving::ServerCore*, tensorflow::serving::PredictRequest const&, tensorflow::serving::PredictResponse*) ()
#10 0x00000000004f0944 in (anonymous namespace)::PredictionServiceImpl::Predict(grpc::ServerContext*, tensorflow::serving::PredictRequest const*, tensorflow::serving::PredictResponse*) ()
#11 0x00000000006b3b96 in std::_Function_handler<grpc::Status (tensorflow::serving::PredictionService::Service*, grpc::ServerContext*, tensorflow::serving::PredictRequest const*, tensorflow::serving::PredictResponse*), std::_Mem_fn<grpc::Status (tensorflow::serving::PredictionService::Service::*)(grpc::ServerContext*, tensorflow::serving::PredictRequest const*, tensorflow::serving::PredictResponse*)> >::_M_invoke(std::_Any_data const&, tensorflow::serving::PredictionService::Service*, grpc::ServerContext*, tensorflow::serving::PredictRequest const*, tensorflow::serving::PredictResponse*) ()
#12 0x00000000006b8150 in grpc::internal::RpcMethodHandler<tensorflow::serving::PredictionService::Service, tensorflow::serving::PredictRequest, tensorflow::serving::PredictResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&) ()
#13 0x00000000006c2839 in grpc::Server::SyncRequestThreadManager::DoWork(void*, bool) ()
#14 0x00000000006c6f07 in grpc::ThreadManager::MainWorkLoop() ()
#15 0x00000000006c7024 in grpc::ThreadManager::WorkerThread::Run() ()
#16 0x00007f748835e1e0 in std::(anonymous namespace)::execute_native_thread_routine (__p=<optimized out>) at ../../../.././libstdc++-v3/src/c++11/thread.cc:84
#17 0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#18 0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 3 (Thread 0x7f73b2784700 (LWP 7765)):
#0  0x00007f7487dc7183 in epoll_wait () from /lib64/libc.so.6
#1  0x0000000000724ca8 in pollset_work ()
#2  0x0000000000701aa6 in cq_next(grpc_completion_queue*, gpr_timespec, void*) ()
#3  0x00000000007022bb in grpc_completion_queue_next ()
#4  0x00000000006c7a11 in grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) ()
#5  0x00000000006bc999 in grpc::Server::SyncRequestThreadManager::PollForWork(void**, bool*) ()
#6  0x00000000006c6e41 in grpc::ThreadManager::MainWorkLoop() ()
#7  0x00000000006c7024 in grpc::ThreadManager::WorkerThread::Run() ()
#8  0x00007f748835e1e0 in std::(anonymous namespace)::execute_native_thread_routine (__p=<optimized out>) at ../../../.././libstdc++-v3/src/c++11/thread.cc:84
#9  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#10 0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 2 (Thread 0x7f740cff9700 (LWP 7766)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x000000000072a5e7 in gpr_cv_wait ()
#2  0x0000000000710165 in timer_thread(void*) ()
#3  0x000000000072a08d in thread_body(void*) ()
#4  0x00007f74888bbe25 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f7487dc6bad in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f74890ec8c0 (LWP 7422)):
#0  0x00007f74888bf995 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f748835a55c in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /tmp/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/gthr-default.h:864
#2  std::condition_variable::wait (this=<optimized out>, __lock=...) at ../../../.././libstdc++-v3/src/c++11/condition_variable.cc:52
#3  0x00000000006c1eaa in grpc::Server::Wait() ()
#4  0x0000000000420f45 in main ()

三、问题总结

由于hang住没有任何信息,尝试看堆栈,看源码,打日志都没有办法定位问题,感觉很无助,最开始一直怀疑是input的问题,于是尝试使用tf_serving进行加载模型预估也存在同样的问题。
最终定位还是离线在使用savedmodle模型进行保存模型方式不对,保存的网络图结构不对,没有保存正确的output图节点,导致预估找不到结果。

tensorflow c++进行在线预估卡死hang住相关推荐

  1. 基于TensorFlow Serving的深度学习在线预估

    一.前言 随着深度学习在图像.语言.广告点击率预估等各个领域不断发展,很多团队开始探索深度学习技术在业务层面的实践与应用.而在广告CTR预估方面,新模型也是层出不穷: Wide and Deep[1] ...

  2. HANA 数据库备份hang住的解决办法

    今天遇到 HANA 数据库备份hang住的情况.经过查 SAP NOTE 解决,记录一下过程.两个NOTE如下: 2452735 - HANA Backup failing with "[4 ...

  3. oracle删除表不等待,oracle故障处理之删除大表空间hang住

    背景 数据库分区表数据越来越大,需要对过期话的数据进行迁移,以及大的分区表需要进行数据的清理和删除,达到释放磁盘空间的目的. 问题说明 环境:linux 6.X 数据库:oracle 11.2.0.4 ...

  4. c++排查线程hang住_Kafka学习笔记之kafka高版本Client连接0.9Server引发的血案排查 - 时光飞逝,逝者如斯...

    0x00 概述 kafka server虽然原则上是兼容详细的client,但只是高版本的Server端兼容低版本的Client端: 在有高版本Client端连接时,会导致低版本Server集群会ha ...

  5. OGG目标端复制Sequence时Hang住的问题

    昨天遇到一个问题一个OGG的复制进程在复制序列(Sequence)时Hang住不动,进程状态一直是Running状态但是不往前进行复制,导致进程延迟6个多小时 GGSCI (ctm-3) 2> ...

  6. mysql 备库 hang住_mysql主键的缺少导致备库hang住

    最近线上频繁的出现slave延时的情况,经排查发现为用户在删除数据的时候,由于表主键的主键的缺少,同时删除条件没有索引,或或者删除的条件过滤性极差,导致slave出现hang住,严重的影响了生产环境的 ...

  7. mysql客户端hang_MySQL所有操作hang住了,怎么破?

    <MySQL所有操作hang住了,怎么破?>要点: 本文介绍了MySQL所有操作hang住了,怎么破?,希望对您有用.如果有疑问,可以联系我们. 作者介绍 王松磊,现任职于UCloud,从 ...

  8. plsql一直正在编译_使用plsql/devlop编译过程hang住案列小结

    今天有位同事在使用plsql/devleop编译存储过程时老是导致整个操作界面hang住长时间无法响应,以下是我的处理过程,简要记录之. 1.查询v$session视图确定hang住的会话相关信息,比 ...

  9. oracle数据库延迟执行,如何诊断oracle数据库运行缓慢或hang住的问题

    为了诊断oracle运行缓慢的问题首先要决定收集哪些诊断信息,可以采取下面的诊断方法: 1.数据库运行缓慢这个问题是常见还是在特定时间出现 如果数据库运行缓慢是一个常见的问题那么可以在问题出现的时候收 ...

最新文章

  1. 怎么获得combobox的valueField值
  2. notepad++打开一个某个工程目录
  3. struts2的OGNL表达式理解(一)
  4. sql server try...catch使用
  5. SecureCRT连接Linux的操作步骤
  6. REVERSE-PRACTICE-CthulhuOJ
  7. flask框架+mysql数据库并与前台数据交互
  8. 2018蓝桥C++B:煤球数目;生日蜡烛(枚举年龄和枚举次数)
  9. weixin-api生成二维码
  10. POJ-2034 Anti-prime Sequences dfs
  11. 制造业升级智造业,阿里云提炼了9大场景
  12. excel下拉速度太慢_全靠这些Excel、Word一键录入技巧,我才能用10分钟完成3小时工作...
  13. 2015 2020 r4烧录卡 区别_奥美拉唑、雷贝拉唑、艾司奥美拉唑的区别
  14. 如何撰写专利说明书摘要?
  15. 最新PHP全开源京东淘宝唯品会自动抢单系统源码
  16. websphere java和进程管理_Websphere 学习(一)
  17. 【翻译论文】A Progressive Morphological Filter for Removing Nonground Measurements From Airborne LIDAR Dat
  18. 在Mac下载安装win10虚拟机教程及分辨率等问题。
  19. 基于STM32F103的单相在线式不间断电源设计
  20. 22岁少年破解史上最严重网络攻击,拯救全球互联网,三个月后却被FBI逮捕……

热门文章

  1. 程序员晒晒你的【神器】!
  2. 如何在局域网使用手机访问电脑文件?
  3. Excel 截取某个字符前的数据
  4. OpenVpnCentos7脚本
  5. SDM845 虚拟地址分配
  6. 明渠式紫外线消毒杀菌器
  7. 多张图片怎么调整dpi?教你一招批量调整dpi的小技巧
  8. 智慧餐饮远程监控解决方案,让您吃的放心吃的安心
  9. 关于 Windows Subsystem for Android 以及 Windows 11 运行 Android 应用的更多细节
  10. 【VSCode】安装教程