)]}'
{"doc/source/contributor/testing/eventlet-profiling.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"67d20c1ffa93e563ae901da8cae66fb211d707ae","unresolved":false,"context_lines":[{"line_number":195,"context_line":"Change to that directory and view the profile using the pstats"},{"line_number":196,"context_line":"`interactive mode`_::"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    python3 -m pstats ef044142-f3b8-409d-9af6-c60cea39b273.prof"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Sort stats by their cumulative time::"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_a589756f","line":198,"range":{"start_line":198,"start_character":4,"end_line":198,"end_character":11},"updated":"2019-08-19 21:56:21.000000000","message":"fwiw, my devstack was running in py2 and running this with py3 didn\u0027t work","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17ac8bbe813ea369d616ff4b1df21040dc2eebd4","unresolved":false,"context_lines":[{"line_number":195,"context_line":"Change to that directory and view the profile using the pstats"},{"line_number":196,"context_line":"`interactive mode`_::"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    python3 -m pstats ef044142-f3b8-409d-9af6-c60cea39b273.prof"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Sort stats by their cumulative time::"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_9a6d3205","line":198,"range":{"start_line":198,"start_character":4,"end_line":198,"end_character":11},"in_reply_to":"7faddb67_8459578f","updated":"2019-08-27 15:24:33.000000000","message":"\u003e Huh.\n \u003e \n \u003e Do you think we can change it yet?\n\nhttps://review.opendev.org/#/c/649097/ - would have to take it up with gmann.","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"919a850591a4e41533b97cd6500707fdf2b76618","unresolved":false,"context_lines":[{"line_number":195,"context_line":"Change to that directory and view the profile using the pstats"},{"line_number":196,"context_line":"`interactive mode`_::"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    python3 -m pstats ef044142-f3b8-409d-9af6-c60cea39b273.prof"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Sort stats by their cumulative time::"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_8459578f","line":198,"range":{"start_line":198,"start_character":4,"end_line":198,"end_character":11},"in_reply_to":"7faddb67_84b3970a","updated":"2019-08-27 13:59:05.000000000","message":"Huh.\n\nDo you think we can change it yet?","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"f7f0da288c0783c7ea1c767150c3508153f9078b","unresolved":false,"context_lines":[{"line_number":195,"context_line":"Change to that directory and view the profile using the pstats"},{"line_number":196,"context_line":"`interactive mode`_::"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    python3 -m pstats ef044142-f3b8-409d-9af6-c60cea39b273.prof"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Sort stats by their cumulative time::"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_b549278f","line":198,"range":{"start_line":198,"start_character":4,"end_line":198,"end_character":11},"in_reply_to":"7faddb67_a589756f","updated":"2019-08-27 10:40:53.000000000","message":"What year are you in?","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2d4ab0f59b8f3d943c741715b629436ba02d7990","unresolved":false,"context_lines":[{"line_number":195,"context_line":"Change to that directory and view the profile using the pstats"},{"line_number":196,"context_line":"`interactive mode`_::"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    python3 -m pstats ef044142-f3b8-409d-9af6-c60cea39b273.prof"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Sort stats by their cumulative time::"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_84b3970a","line":198,"range":{"start_line":198,"start_character":4,"end_line":198,"end_character":11},"in_reply_to":"7faddb67_b549278f","updated":"2019-08-27 13:47:30.000000000","message":"\u003e What year are you in?\n\nWhile funny, devstack still defaults to py2. I\u0027ve only recently updated my local.conf(s) to force py3.","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d43280875dbca1eb928a76a5f3e953e357022c07","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"Real world use indicates that the eventlet profiler is not perfect. There are"},{"line_number":239,"context_line":"situations where it will not always track switches between greenlets as well as"},{"line_number":240,"context_line":"it could. This can result in profile data that doesn\u0027t make sense or random"},{"line_number":241,"context_line":"slowdowns in the system being profiled. There is no one size fits all solution"},{"line_number":242,"context_line":"to these issues; profiling eventlet services is more an art than science."},{"line_number":243,"context_line":"However, this section tries to provide a (hopefully) growing body of advice on"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_73980068","line":240,"range":{"start_line":240,"start_character":47,"end_line":240,"end_character":54},"updated":"2019-08-21 16:29:58.000000000","message":"nit: avoid contractions in docs for non-native English speakers.","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d43280875dbca1eb928a76a5f3e953e357022c07","unresolved":false,"context_lines":[{"line_number":247,"context_line":"--------------"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"* Try to profile chunks of code that operate mostly within one module or class"},{"line_number":250,"context_line":"  and do not have many collaborators. The more spaghetti-like the path through"},{"line_number":251,"context_line":"  the code, the more confused the profiler gets."},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"* Similarly, where possible avoid profiling code that will trigger many"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_73b1e0df","line":250,"range":{"start_line":250,"start_character":47,"end_line":250,"end_character":61},"updated":"2019-08-21 16:29:58.000000000","message":"nit: let\u0027s say convoluted for non-natives or people used to this jargon","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d43280875dbca1eb928a76a5f3e953e357022c07","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"* If possible, avoid RPC."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"In Nova Compute"},{"line_number":260,"context_line":"---------------"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"The creation of this caveat section was inspired by issues experienced while"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_93dd7c15","line":259,"range":{"start_line":259,"start_character":3,"end_line":259,"end_character":15},"updated":"2019-08-21 16:29:58.000000000","message":"nova-compute? Nova and Compute (service) are kind of synonymous and used for all nova services sometimes, like nova-conductor/scheduler etc, rather than the nova-compute \u0027binary\u0027. So if we\u0027re just talking about the nova-compute service, let\u0027s use that term.","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d43280875dbca1eb928a76a5f3e953e357022c07","unresolved":false,"context_lines":[{"line_number":264,"context_line":"speak with a database server directly. Instead communication is mediated"},{"line_number":265,"context_line":"through the conductor, communication happening via ``oslo.versionedobjects``"},{"line_number":266,"context_line":"and remote calls. Profiling methods such as ``_update_available_resources`` in"},{"line_number":267,"context_line":"the Resource Tracker, which needs information from the database, results in"},{"line_number":268,"context_line":"useless profile data."},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"This can be worked around by temporarily changing ``nova-compute`` to allow it"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_33f5a883","line":267,"range":{"start_line":267,"start_character":4,"end_line":267,"end_character":20},"updated":"2019-08-21 16:29:58.000000000","message":"ResourceTracker?","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"67d20c1ffa93e563ae901da8cae66fb211d707ae","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    -    cmd_common.block_db_access(\u0027nova-compute\u0027)"},{"line_number":284,"context_line":"    -    objects_base.NovaObject.indirection_api \u003d conductor_rpcapi.ConductorAPI()"},{"line_number":285,"context_line":"    +    # Temporarily allow access to the database. Also update the config file"},{"line_number":286,"context_line":"    +    # used by this process to set [database]/connection to the cell1 database."},{"line_number":287,"context_line":"    +    # cmd_common.block_db_access(\u0027nova-compute\u0027)"},{"line_number":288,"context_line":"    +    # objects_base.NovaObject.indirection_api \u003d conductor_rpcapi.ConductorAPI()"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_73734a17","line":285,"range":{"start_line":285,"start_character":53,"end_line":285,"end_character":80},"updated":"2019-08-19 21:56:21.000000000","message":"implies that that\u0027s being done by this code snippet, which (afaict) it is not\n\nif the point is to remind the reader to do that thing, the section below serves that purpose.","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"67d20c1ffa93e563ae901da8cae66fb211d707ae","unresolved":false,"context_lines":[{"line_number":290,"context_line":"         server \u003d service.Service.create(binary\u003d\u0027nova-compute\u0027,"},{"line_number":291,"context_line":"                                         topic\u003dcompute_rpcapi.RPC_TOPIC)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"The configuration file used by the ``nova-compute`` process must also be update"},{"line_number":294,"context_line":"to ensure that it contains a setting for the relevant database:"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":".. code-block:: ini"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_936e062a","line":293,"range":{"start_line":293,"start_character":73,"end_line":293,"end_character":79},"updated":"2019-08-19 21:56:21.000000000","message":"updated","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"67d20c1ffa93e563ae901da8cae66fb211d707ae","unresolved":false,"context_lines":[{"line_number":296,"context_line":".. code-block:: ini"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    [database]"},{"line_number":299,"context_line":"    connection \u003d mysql+pymysql://root:secret@127.0.0.1/nova_cell1?charset\u003dutf8"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"In a single node devstack setup ``nova_cell1`` is the right choice. The"},{"line_number":302,"context_line":"connection string will vary in other settings."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_45852159","line":299,"range":{"start_line":299,"start_character":0,"end_line":299,"end_character":78},"updated":"2019-08-19 21:56:21.000000000","message":"I couldn\u0027t make this work, but it\u0027s probably because I\u0027m too stupid and don\u0027t understand what I\u0027m doing.\n\n(I was trying to profile _poll_unconfirmed_resizes because it would run with a periodic so I didn\u0027t need to do anything special to trigger it. And it looked like it would want to go to the database - objects.MigrationList.get_unconfirmed_by_dest_compute(). And I was able to get prof data before I tried doing the database thing described here.)","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"f7f0da288c0783c7ea1c767150c3508153f9078b","unresolved":false,"context_lines":[{"line_number":296,"context_line":".. code-block:: ini"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    [database]"},{"line_number":299,"context_line":"    connection \u003d mysql+pymysql://root:secret@127.0.0.1/nova_cell1?charset\u003dutf8"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"In a single node devstack setup ``nova_cell1`` is the right choice. The"},{"line_number":302,"context_line":"connection string will vary in other settings."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_b8259eb0","line":299,"range":{"start_line":299,"start_character":0,"end_line":299,"end_character":78},"in_reply_to":"7faddb67_45852159","updated":"2019-08-27 10:40:53.000000000","message":"Yeah, you\u0027ll get profile data, it just won\u0027t be useful. I\u0027ve made that more clear above.\n\nWhat went wrong when \"couldn\u0027t make this work\"?","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"67d20c1ffa93e563ae901da8cae66fb211d707ae","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    connection \u003d mysql+pymysql://root:secret@127.0.0.1/nova_cell1?charset\u003dutf8"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"In a single node devstack setup ``nova_cell1`` is the right choice. The"},{"line_number":302,"context_line":"connection string will vary in other settings."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"Once these changes are made, and the profiler changes indicated in the example"},{"line_number":305,"context_line":"above, ``nova-compute`` can be restarted and with luck some useful profiling"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_135c567b","line":302,"range":{"start_line":302,"start_character":37,"end_line":302,"end_character":45},"updated":"2019-08-19 21:56:21.000000000","message":"setups?","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"67d20c1ffa93e563ae901da8cae66fb211d707ae","unresolved":false,"context_lines":[{"line_number":301,"context_line":"In a single node devstack setup ``nova_cell1`` is the right choice. The"},{"line_number":302,"context_line":"connection string will vary in other settings."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"Once these changes are made, and the profiler changes indicated in the example"},{"line_number":305,"context_line":"above, ``nova-compute`` can be restarted and with luck some useful profiling"},{"line_number":306,"context_line":"data will emerge."},{"line_number":307,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_9347e6a3","line":304,"range":{"start_line":304,"start_character":29,"end_line":304,"end_character":32},"updated":"2019-08-19 21:56:21.000000000","message":"along with?","commit_id":"40d60629256279cd952d8cddde16152ec4bf4dc4"}]}
